Christopher Berner

Results 118 comments of Christopher Berner

> 1. I was wondering why it is a list, not a tree. Wouldn't a tree help the database to be smaller? The fact that redb must use consecutive pages,...

Ya, it'll probably take me a bit, since I'm unfamiliar with Windows APIs and am currently focused on stabilizing the file format. I want to keep the dependencies of this...

Ya, I'm planning to add support for custom types! I haven't quite decided on how it should work, so would love your input actually. What's your use case, and how...

Can you give [this branch](https://github.com/cberner/redb/tree/gat) a try? I added the `VariableWidthValue` trait, which provides a simpler interface than directly exposing `RedbValue` & `RedbKey`

Well that's not good! How can I reproduce the crash? I have a test for that code path, but it's not super thorough: https://github.com/cberner/redb/blob/475c2139a98d6f90b919e4f0b99c91d06c64454e/src/tree_store/page_store/page_manager.rs#L1648

Oh, of course. I found the problem. I even thought of this while implementing 1PC+C, but then forgot to address it =P `.insert_reserve()` corrupts the database when used with checksums...

Hmm, that's not good. What backtrace do you get?

Ya, I'm pretty sure there are no guarantees about write ordering. Linux doesn't even have an API for write barriers, although OSX does have F_BARRIERFSYNC

I think `F_BARRIERFSYNC` just guarantees that everything written before the call to fsync will be stored durably, before anything written after it, so it's only 1 bit of ordering data....

Notes to self, mainly. I started on an implementation in [use_write](https://github.com/cberner/redb/tree/use_write). However, this turned out be more complicated. Write performance is ~2x slower for 2PC, and 4x slower for 1PC+C...