Skip to content

sjmonson/lmdb-lab

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

41 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

lmdb

  • Testing out lmdb

Dependencies

  • bison
  • flex
  • googletest
  • lmdb
  • lmdbxx
  • hsql-parser

Notes

  • Ran into an issue 'llmdb.so could not be opened' -> add $LD_LIBRARY_PATH
  • Ran into an issue with MDB_val constructor, it seems like the function signatures are switched?
  • lmdb forces transactions
    • BDB doesn't require transactions to be used
    • db handle creation must take place in a transaction
  • lmdb has only one access method: key-value store
    • unlike BDB where we have multiple access methods, e.g. RECNO
  • lmdb uses B+ tree data structure
    • which means we can only implement a BTree internal representation
  • lmdb does not want you to modify the memory inside MDB_val's data
    • copy the data and modify it, then put it into the DB.

Minor Notes

  • call mdb_env_set_mapsize after calling mdb_env_create and before mdb_env_open
  • we get bt_ndata stat in the BDB version even though we are using a BTree access method because it has stores the amount of records in the DB if it was set with RECNO access method
  • view snippets of the C API being used in this repo
  • using MDB_APPEND will cause duplicate blocks to exist in your DB!

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 96.9%
  • Nix 2.0%
  • Makefile 1.1%