glass: ordered set data structure for client-side order books
Viktor Krapivensky

TL;DR
This paper introduces a trie-based ordered set data structure optimized for market data, achieving significant speedups over standard implementations through novel caching, hardware acceleration, and market-specific features.
Contribution
The paper presents a new trie-based ordered set implementation with optimizations for market data, including caching, hardware acceleration, and memory management techniques.
Findings
6x-20x faster modifications compared to std::map
30x faster lookups on market data
Significant speedups in real market data scenarios
Abstract
The "ordered set" abstract data type with operations "insert", "erase", "find", "min", "max", "next" and "prev" is ubiquitous in computer science. It is usually implemented with red-black trees, -trees, or -trees. We present our implementation of ordered set based on a trie. It only supports integer keys (as opposed to keys of any strict weakly ordered type) and is optimized for market data, namely for what we call sequential locality. The following is the list of what we believe to be novelties: * Cached path to exploit sequential locality, and fast truncation thereof on erase operation; * A hash table (or, rather, a cache table) with hard O(1) time guarantees on any operation to speed up key lookup (up to a pre-leaf node); * Hardware-accelerated "find next/previous set bit" operations with BMI2 instruction set extension on x86-64; * Order book-specific features: the…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Code & Models
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsSemantic Web and Ontologies · Advanced Database Systems and Queries · Data Management and Algorithms
