Christopher Berner
Christopher Berner
I did a bit more research into `sync_file_range` because I wanted to know why lmdb still uses `fsyncdata`. As far as I can tell, `sync_file_range` is only safe to use...
This can't be implemented in a nice way. drain() is suppose to remove the entries even if the iterator is dropped. However, removing from a redb Database must allocate pages...
Actually this can be. All the removals just need to be done during the drain iterator creation, and only the page freeing during `Drop`
Seems like it should be easy, but I think it requires generic associated types. Do you have any ideas for getting around this lifetime error? I pushed the code to...
@casey I think I've got tuple types working on my branch with GATs :) https://github.com/cberner/redb/tree/tuples There's one oddity. For the `&str` and `&[u8]` types, I have currently implemented them for...
It seems like `read()` even via IO uring is a lot slower than mmap, so I'm going to close this as won't fix. Here are IO uring benchmarks: https://github.com/cberner/redb/pull/61
For sure, hope you or someone else finds it useful! Ya, I think that's a good argument for reconsidering an async read interface. I'll take another look into this.
Not a lot of thought. My thinking was that a 2x improvement in commit latency for small transactions was better than the ~20% improvement in write throughput. It's so workload...
Lemme know what your benchmark shows. I ran my own configured to be similar to the ord write pattern, and I think `Checksum` is a better default. It's faster for...
A few MB probably. I think my benchmark used 1.2kB values, and even with 1000 inserts per transaction checksum is faster.