| ▲ | fuzzybear3965 2 hours ago | |
Of course mileage may vary with different workloads, but are there any good benchmarks/suites to use for comparison in cases like these? They used YCSB but I don't know if those workloads ([1]) are relevant to modern/typical access patterns nor if they're applicable to SQL databases. You thinking about running some benchmarks in a bcachefs branch (:pray:)? I want to see this data structure prototyped in PostgreSQL. [1]: https://github.com/brianfrankcooper/YCSB/tree/master/workloa... | ||
| ▲ | koverstreet an hour ago | parent [-] | |
I've got microbenchmarks for the bcachefs btree here: https://evilpiepirate.org/git/bcachefs.git/tree/fs/bcachefs/... They're ancient, I only have pure random and sequential benchmarks - no zipf distribution, which really should be included. Feel free to play around with them if you want :) I could even find the driver code, if you want. I've always been curious about PostgreSQL's core b-tree implementation. I ran into a PostgreSQL developer at a conference once, and exchanged a few words that as I recall were enough to get me intrigued, but never learned anything about it. In a system as big, complex and well optimized as either bcachefs or postgres, the core index implementation is no longer the main consideration - there's layers and layers, and the stuff that's fun to optimize and write paper about eventually gets buried (and you start thinking a lot more about how to lay out your data structures and less about optimizing the data structures themselves). But you know in something like that there's going to be some clever tricks, that few people know about or even remember anymore :) | ||