The synchronous writes benchmark is interesting. This is normally bound by # seeks your disk can do per second, which is mostly a function of rotational speed. With 7200RPM drive you get 7200/60 = 120 of these a second. So the 100 and 110 numbers for competitors make sense. 2,400 for LevelDB does not. Is LevelDB batching writes or is there something more interesting going on?
LevelDB: A Fast Persistent Key-Value Store
61–66 of 66 posts
Re: LevelDB: A Fast Persistent Key-Value Store
#62The synchronous writes benchmark is interesting. This is normally bound by # seeks your disk can do per second, which is mostly a function of rotational speed. With 7200RPM drive you get 7200/60 = 120 of these a second. So the 100 and 110 numbers for competitors make sense. 2,400 for LevelDB does not. Is LevelDB batching writes or is there something more interesting going on?
If you are writing sequentially, then you can write more than the number of seeks. And that is exactly what LevelDB is doing: writing a log (sequential), and when the memorychunk is full, it is writing it to disk sorted (this is also sequential).
Re: LevelDB: A Fast Persistent Key-Value Store
#63The synchronous writes benchmark is interesting. This is normally bound by # seeks your disk can do per second, which is mostly a function of rotational speed. With 7200RPM drive you get 7200/60 = 120 of these a second. So the 100 and 110 numbers for competitors make sense. 2,400 for LevelDB does not. Is LevelDB batching writes or is there something more interesting going on?
Data structures which require a disk seek per random insert are obsolete. LevelDB is using a Log-Structured Merge Tree, one of many write-optimized data structures (but not the best).
Re: LevelDB: A Fast Persistent Key-Value Store
#64Earlier quoted context omitted.
How does this compare to other persistent key-value stores such as Membase?
Membase is a clustered data storage service your application uses. LevelDB is a persistence library. That makes LevelDB the kind of thing you plug into membase to get the unique properties it has to offer (or at least for fun).
Re: LevelDB: A Fast Persistent Key-Value Store
#65Re: LevelDB: A Fast Persistent Key-Value Store
#66An interesting development a while back that I'm surprised hasn't received more attention was Oracle's release of a SQLite-based interface to BDB: http://www.oracle.com/technetwork/database/berkeleydb/overvi... It's essentially drop-in compatible with SQLite, but with added concurrency and speed for most operations. (The concurrency addresses a major issue usually keeping SQLite as a prototyping/single-user-only opti…
> SQLite-based interface to BDB One thing I didn't get about SQL API for BDB, how does something like select * from users where name!='tom' work ?