erthink / libmdbx

One of the fastest embeddable key-value ACID database without WAL. libmdbx surpasses the legendary LMDB in terms of reliability, features and performance.
https://erthink.github.io/libmdbx/
Other
1.16k stars 111 forks source link

Alter the terminology #137

Open erthink opened 3 years ago

erthink commented 3 years ago

Historically libmdbx uses the terminology (i.e. environment, database, sub-database, DBI, etc) inherited from the LMDB. However, the terms suggested by @snej seem to me so much more successful and appropriate.

snej commented 3 years ago

Thanks 😊 I've been using those terms in my code for a while, but I hadn't proposed them for libmdbx because I figured you'd want to stay consistent with LMDB.

AskAlexSharov commented 3 years ago

unclear why need special term "snapshot"? why "read transaction" is not enough?

snej commented 3 years ago

When learning LMDB I initially found "transaction" confusing for a read-only mode, especially since it's required for any access to keys/values.

Also, my wrapper has an OO API, with regular transactions a subclass of read-only ones, and I always find it a bad sign when a base class name is an extension of a subclass name.

mahlonsmith commented 3 years ago

For what it's worth, I adopted @snej 's terminology for the Ruby bindings. Coming from ZFS systems, "snapshot" feels the perfect term for its behavior.