4

I am dealing with lmdb and lmdb is really fast . But one problem with it is lmdb isn't distributed . Everytime i need to do some maintenance , lmdb has to taken down and sites is unavailable for few hours . I researching on making lmdb a distributed one , implementing replication capabilites . So far the closest i have been close to it a dynomite code base by netflix .
Issue with that it is currently applicable for redis and memcache ,but it say generic so it can be used for lmdb also .I am handling lmdb with python using py-lmdb bindings

I am out of clue how to approach it from lmdb perspective in python world , since code has to be written in python bindings also .

Any help will be greatly appreciated .

igauravsehrawat
  • 3,696
  • 3
  • 33
  • 46

2 Answers2

4

LMDB is meant to only be an embedded DB engine. Distribution/replication belong to a higher layer. You could use HyperDex with the LMDB backend, for example. https://github.com/hyc/HyperDex/tree/lmdb. There's also memcachedb built on LMDB, and ardb or ledisdb for redis-compatible servers running on top of LMDB.

https://gitorious.org/mdb/memcachedb/source/9f2e5415e4d9017889caf61c100a9b8652825319:

So you could use them with dynomite if you want.

hyc
  • 1,387
  • 8
  • 22
3

You can drop LMDB (embeded in ARDB) to replace Redis in Dynomite to make LMDB a distributed system. We have done a POC on this and they worked.

For more information, you can look into our opening issues at https://github.com/Netflix/dynomite/issues/254

Minh Do
  • 329
  • 3
  • 7