I'm really surprised LSM trees didn't get more commentary. 'All are targeted at server workloads' - sure, but they're also incredibly popular and appear to be as close to the 'one-size-fits-all solution for storage' as we've found.
Also typically more complicated and require a separate compaction process. They're good for writing lots of data, but not so great for random reads.
Author of Badger here. Our design of separating keys and values has gotten us incredibly fast writes, while still keeping the read latencies neck-to-neck against B+ trees. Worth checking out: https://github.com/dgraph-io/badger
This looks very interesting. Do you have any builtin compression or tips on compressing data?
Badger is really good, i'm using it.
Badger looks nicely done! Did you end up needing to change much in implementing Badger from what was described in the WiscKey paper?