Makes sense, sounds interesting!
An example might be log merge trees en.m.wikipedia.org/wiki/Log-str...
Makes sense, sounds interesting!
An example might be log merge trees en.m.wikipedia.org/wiki/Log-str...
Isn't that basically memory-mapping?
In sux-rs we have mmap compatible data structures so we can access them even if they don't fit in memory. We designed epserde-rs to make it easier to do in Rust. github.com/vigna/epserd...
PtrHash has a DOI, At last! 1.5y after starting the project.
- 2.4 bits/key
- 1.75x faster lookup than PTHash&PHOBIC for 3e8 string keys (44ns)
- 12ns per query for 1e9 int keys
- 8ns with streaming/prefetching; basically fully saturating RAM bandwidth (limit is ~7.5ns).
arxiv.org/abs/2502.15539
Example of a static search three with elements 0..17 and a 3-layer tree on top of it, with B=2 elements per node and branching factor 3.
Some results of various improvements. First binary search, then eytzinger layout, and then a number of iterations on the S+ tree search.
Building on Algorithmica's post on S-trees and the famous "Array layouts for comparison based searching" paper, I did a little project on making an optimized implementation of the S+ tree.
The result is 40x speedup over plain binary search!
๐งต
curiouscoding.nl/posts/static...
This sounds like a graph compression, have you tried webgraph? It works well for skewed outdegree distributions. For the optimal ordering we use LLP.
fascinating result about the performance of memory-safe PNG decoders and the usefulness of autovectorization in real projects www.reddit.com/r/rust/comme...
I think it is part of stmt_expr_attr github.com/rust-lang/ru...
Adding attributes to closures is unstable right?