Proyectos de prácticas de verano de Jane Street: JSQL más rápido, mejoras en las conexiones de Torch y gestión de memoria entre procesos

2025-08-29
Proyectos de prácticas de verano de Jane Street: JSQL más rápido, mejoras en las conexiones de Torch y gestión de memoria entre procesos

Jane Street destaca tres proyectos sobresalientes del programa de prácticas de verano de este año: el evaluador JSQL de Leo Gagnon, que logra una aceleración de cientos de veces mediante la indexación; las conexiones mejoradas de OCaml Torch de Aryan Khatri, aprovechando OxCaml para una gestión de memoria de GPU segura y eficiente; y la biblioteca de gestión de memoria entre procesos de Anthony Li, que elimina la sobrecarga de serialización con el recuento de referencias. Estos proyectos no solo mejoran la eficiencia de las herramientas internas, sino que también contribuyen con código valioso a la comunidad de código abierto.

Leer más
Desarrollo

Cazando un Higgs-Bugson: Depurando un Problema de NFS/Kerberos a Nivel de Kernel

2025-07-03
Cazando un Higgs-Bugson: Depurando un Problema de NFS/Kerberos a Nivel de Kernel

Los ingenieros encontraron un error difícil de reproducir que causaba fallos en la copia de archivos (-EACCES) en Gord, un sistema crítico de datos de trading. Deshabilitar Kerberos resolvió el problema, indicando problemas de autenticación. La investigación reveló que el kernel obtiene credenciales Kerberos a través del demonio rpc_gssd, pero los registros no mostraron anomalías. Las pruebas exhaustivas, incluida la creación de un sistema de archivos falso en memoria y el uso de bpftrace para el rastreo del kernel, finalmente identificaron el problema: una alta carga del servidor NFS provocó retransmisiones de solicitudes. El kernel manejó mal las solicitudes/respuestas con XIDs idénticos pero números de secuencia GSS diferentes, lo que provocó discrepancias de suma de comprobación y errores. El ingeniero corrigió el kernel para evitar la retransmisión inmediata debido a discrepancias en el número de secuencia.

Leer más
Desarrollo error del kernel

Representacion de Memoria Eficiente con GADTs en OCaml

2025-05-12
Representacion de Memoria Eficiente con GADTs en OCaml

Este artículo explora el uso de Tipos de Datos Algebraicos Generalizados (GADTs) en OCaml para optimizar la representación de la memoria. El autor primero explica las limitaciones del polimorfismo de OCaml, particularmente la ineficiencia de espacio de List.iter al manejar diferentes tipos de datos debido a la representación uniforme de la memoria. Los intentos de crear un tipo `Compact_array` usando variantes ordinarias y objetos fallan debido a problemas de inferencia de tipo y asignación de memoria. Finalmente, usando GADTs, el autor crea con éxito una representación de memoria flexible y eficiente para matrices de diferentes tipos de datos, mostrando la utilidad de los GADTs más allá de la escritura de compiladores, particularmente en aplicaciones de alto rendimiento que requieren un control preciso de la memoria.

Leer más
Desarrollo

El viaje de una década de Jane Street: de Jenga a Dune

2025-01-30
El viaje de una década de Jane Street: de Jenga a Dune

Jane Street inicialmente construyó Jenga, un sistema de construcción OCaml, pero sus limitaciones llevaron a su adopción limitada e incluso a una reversión de su estado de código abierto. Luego, crearon el Jbuilder más simple, que inesperadamente ganó popularidad debido a su velocidad, eventualmente evolucionando a Dune. Después de años de esfuerzo, el equipo de Jane Street migró con éxito su sistema de construcción interno de Jenga a Dune para sus 70 millones de líneas de código, aumentando las velocidades de construcción y estableciendo una base sólida para el futuro de Dune.

Leer más
Desarrollo