3 votes

Comment éviter la réallocation dans un environnement à faible latence ?

Dans un carnet d'ordres d'une plateforme de négociation (environnement à faible latence), vous devez stocker chaque ID d'ordre, au moins pour vérifier que chaque ordre est unique. Le nombre d'ID d'ordres que vous pouvez recevoir au cours d'une journée de négociation est illimité. En dehors de l'analyse des données historiques, il n'y a pas de nombre que vous pouvez "deviner" de manière appropriée pour préallouer votre structure de données. Quels sont les mécanismes permettant d'éviter les réaffectations intrajournalières de conteneurs d'identifiants d'ordres ?

3voto

Jon Harrop Points 26951

Dans un carnet d'ordres d'une plateforme de négociation (environnement à faible latence), vous devez stocker chaque ID d'ordre, au moins pour vérifier que chaque ordre est unique. Le nombre d'ID d'ordres que vous pouvez recevoir au cours d'une journée de négociation est illimité. En dehors de l'analyse des données historiques, il n'y a pas de nombre que vous pouvez "deviner" de manière appropriée pour préallouer votre structure de données. Quels sont les mécanismes permettant d'éviter les réaffectations intrajournalières de conteneurs d'identifiants d'ordres ?

Bonne question. Une solution consiste à utiliser des structures de données arborescentes où chaque branche est une allocation de tas distincte. C'est ainsi que la plupart des structures de données purement fonctionnelles (par ex. Set y Map en OCaml et F#) et les rend incrémentiels, de sorte que l'insertion et la suppression sont toujours O(log n ) dans le pire des cas.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X