LMDB key value backend for ldb_tdb (to be renamed ldb_key_val)

Howard Chu hyc at highlandsun.com
Mon Apr 16 13:11:06 UTC 2018


From: William Brown <william at blackhats.net.au>
>> > re-thinking the overall architecture e.g. consolidating the
>> > partitions
>> > into a single file using LMDB sub databases.
> 
> There are some arguments both ways here I think.
> 
> Keeping them seperate means that you can easily identify any component
> that has a size blow out (specific index, changelog etc), and
> potentially resolve it. This is pretty nice for admins to be able to
> deal with. It also makes it easier to export/import large files to
> resize them (lmdb files can't be resized iirc). If you have a combined
> DB and it's say ... 8GB, then you have to have at least 8GB free to
> export and import to a new db. If this was spilt to many files (say
> 0.5GB each) it becomes easier to manage this.

mdb_stat will tell you the sizes of each subDB. You can use "mdb_dump -s" to 
export a specific subDB. And "mdb_drop -s" to delete a specific subDB. Not 
sure what you mean about "LMDB files can't be resized" - sure they can, that's 
what mdb_env_set_mapsize() does.

> However, joining these would be good for simpler transaction
> managament, especially to prevent deadlocking if tables are locked out-
> of-order. 

-- 
   -- Howard Chu
   CTO, Symas Corp.           http://www.symas.com
   Director, Highland Sun     http://highlandsun.com/hyc/
   Chief Architect, OpenLDAP  http://www.openldap.org/project/



More information about the samba-technical mailing list