Terkwood / AugustDB

Key/value store backed by LSM Tree architecture.
MIT License
8 stars 1 forks source link

feat: red black tree in rust (again) #102

Closed Terkwood closed 3 years ago

Terkwood commented 3 years ago

An attempt at #96 -- one which did not bear fruit! 🍎

This pull request implemented the Memtable using a Red Black Tree written in Rust. 🦀

But it doesn't look like much of an improvement, now that I have dirty_memtable.flush implemented.

Memory was quite a bit higher (1.7GB vs 400MB). PUT speed was quite a bit slower (55ms vs 37ms). GET/DELETE speeds were comparable.

Seems like it makes sense to keep the elixir agent implementation, which is simpler and easier to maintain.

1000 users spamming - rust version CSV

1000 users spamming - elixir version CSV

tasks

alternatives

For our particular load test (raw spam of PUT/GET/PUT/DELETE of individual records, not intended to be a good proxy for any particular use case), Mutex performed better than RwLock.

Other things we tried, unsuccessfully:

Terkwood commented 3 years ago

rpds-1000-users-5s-ramp-summary.csv

Terkwood commented 3 years ago

.

Terkwood commented 3 years ago

flush-rust-summary.csv