Swordfish, el motor de DolphinDB que lleva el scripting al rendimiento de C++

Fuentes: C++ Speed Without C++ Pain: Inside a Microsecond-Level Low-Latency Engine

DolphinDB presentó Swordfish, su motor de procesamiento de flujos de datos de baja latencia, en una sesión técnica emitida el 18 de diciembre dentro de la serie 'DolphinDB Core Technology Uncovered'. La herramienta está pensada para entornos donde cada microsegundo cuenta, como la negociación cuantitativa y el procesamiento de datos de alta frecuencia, y permite a los desarrolladores escribir la lógica de sus estrategias en DLang, el lenguaje de scripting propietario de DolphinDB, obteniendo un rendimiento equiparable al de C++ sin necesidad de reescribir el código.

El artículo repasa los cuatro pilares de optimización de bajo nivel sobre los que se asienta Swordfish: estructuras de datos orientadas a fila con tuplas alineadas a líneas de caché de 64 bytes; pools de memoria personalizados basados en PMR que eliminan la asignación dinámica en el camino crítico; uso de flat_map en lugar de árboles rojo-negro para mejorar entre un 40 % y un 100 % la velocidad de búsqueda en libros de órdenes; y punteros inteligentes intrusivos (intrusive_ptr) que sustituyen al shared_ptr convencional, reduciendo a una sola asignación por objeto y eliminando la sincronización atómica en variantes mono-hilo.

Sobre esta base, el motor de scripting añade tres optimizaciones: simplificación del flujo de control eliminando variables intermedias redundantes, cálculo in-place con inferencia de esquemas en el motor de streaming para escribir directamente sobre buffers preasignados, y especialización de tipos en tiempo de compilación para operadores aritméticos y funciones frecuentes como rowSum y rowMax. El resultado, según DolphinDB, son scripts en DLang cuya secuencia de instrucciones equivale a la de C++ escrito a mano en sistemas de latencia de microsegundos.