Nice work! Code looks good and I love the name.
A few things:
I see you mention transactions with snapshot isolation. Could you provide a brief overview of the concurrency control impl? I think I found some of it in transaction.ex.
Keeping a lock per SST is a valid approach, but I am personally more fond of maintaining a global snapshot window and deleting SSTs outside of that window. I can’t remember which one RocksDB does, though.
I know you’re probably at a stage where benchmarks aren’t really meaningful, but would you be willing to share roughly what numbers you’re seeing? I ask only because I’m literally implementing an Elixir LSM right now and I’m curious what to expect.
Anyway, please keep at it! The ecosystem needs more databases ![]()






















