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 ?
Réponse
Trop de publicités?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.