On 1.2.2016 12:05, Florian Weimer wrote:
On 01/31/2016 04:17 PM, Jonathan Underwood wrote:
> On 29 Jan 2016 10:03 pm, "Richard W.M. Jones" <rjones(a)redhat.com>
wrote:
>>
>>
>> FWIW I found the new database backend (not mentioned anywhere in the
>> original submission). It is here:
>>
>>
http://rpm.org/gitweb?p=rpm.git;a=tree;f=lib/backend/ndb
>>
>> Since this change has (rashly) been approved by FESCO, I guess we're
>> going to be copying this code into some libguestfs tools, and we'll
>> have to keep up with changes to RPM. It's a drag compared to using a
>> real key-value store.
>>
>>
>
> I wonder if the MDB (or LMDB) database from the openldap team was evaluated
> as a possible BDB replacement?
LMDB seems a poor match because it requires the administrator to set a
maximum database size, its key length is limited compared to Berkeley DB
(which supports multi-megabyte keys). This means integrating it takes
more than just rewriting the API calls.
Florian
For the wider audience, some more information about LMDB backend for RPM can
be found in:
https://bugzilla.redhat.com/show_bug.cgi?id=1086784
In short:
- Maximum database size is just "sanity limit" set by application. It can be
hunderds of GB if you wish.
- Working around key length really needs some work, yes. On the other hand, it
is clearly possible because SQLite was ported to LMDB as proof-of-concept, and
was actually faster than original implementation. See the README here:
https://github.com/LMDB/sqlightning
--
Petr Spacek @ Red Hat