[Date Prev][Date Next]
[Chronological]
[Thread]
[Top]
Re: Non OpenLDAP use of LMDB
- To: Harry B <harrysungod@gmail.com>, openldap-technical@openldap.org
- Subject: Re: Non OpenLDAP use of LMDB
- From: Howard Chu <hyc@symas.com>
- Date: Wed, 10 Sep 2014 00:52:29 +0100
- In-reply-to: <CAMG7=yXFjjdwk+VWqOL6c2K_84F7NXSrCZ5QQW99Gf4SBWLAmg@mail.gmail.com>
- References: <CAMG7=yXFjjdwk+VWqOL6c2K_84F7NXSrCZ5QQW99Gf4SBWLAmg@mail.gmail.com>
- User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:30.0) Gecko/20100101 Firefox/30.0 SeaMonkey/2.27a1
Harry B wrote:
Hello,
I am planning to use LMDB to create a resonably large database, few TBs, >
500mil keys, on a Fusion IO flash storage. Memory to storage ratio of the
available hardware is about 1:10
Assuming the caching of "5 to 10%" of most-frequently-accessed data is good
enough for my use-case, is this a valid/legitimate use of LMDB ? Or am I using
the wrong tool for the job?
The information you've provided isn't relevant to answering the question. The
most important question is, what is your read/write ratio? LMDB is designed
for read-heavy workloads. We've gotten good performance on it even with a 1:50
memory to storage ratio, but that's with an 80:20 read:write ratio.
My other choices are RocksDB (haven't looked at it) or Postgres (using a
limited subset of features), the latter mainly because we already use it
across the company.
My tests shows that RocksDB uses about 3x as much memory as LMDB for a given
workload. Postgres is (at least) an order of magnitude larger/slower. If these
are your only two alternatives, I'd guess that LMDB will be the best choice.
But asking questions like this is pointless. The only way to get a meaningful
answer is to prototype your workload and actually profile it for each of your
potential solutions. Otherwise you're just guessing.
Any advice is appreciated.
Thanks
--
Harry
--
-- Howard Chu
CTO, Symas Corp. http://www.symas.com
Director, Highland Sun http://highlandsun.com/hyc/
Chief Architect, OpenLDAP http://www.openldap.org/project/