[Date Prev][Date Next] [Chronological] [Thread] [Top]

Re: openldap.git branch mdb.master updated. 14fb1f59c7e119a100952890f947377d7e95f135



Hallvard Breien Furuseth wrote:
> Howard Chu writes:
>>>     Append mode now does no key comparisons, input must be in sorted order.
>>>     page_split was not updating cursor parents correctly.
>>
>> MDB_APPEND mode is meant to be used for bulk loading of pre-sorted
>> keys.  (e.g., if someone wanted to write an mdb_load utility and the
>> corresponding mdb_dump program, you would use this mode for the
>> loader.) New key/data pairs are simply appended to the last page of
>> the database, with no key comparisons at all.  (...)
> 
> As a user, I'd feel safer with a mode which kept the DB consistent:
> Return failure if (key to append) < (current max key).  Presumably
> that'd mean 1 key comparison per added entry.  And maybe giving the
> root pages a reference to the last key, I don't know.

I had a check for (key == current last key) but now I've changed it to (key <=
current last key).

> Does this affect OpenLDAP (slapadd -q) users, or should I be saying
> "as a libmdb user"?

Yes, this affects slapadd (not just -q). Append mode is used for the id2entry
DB since new entries all get consecutively incremented entryIDs. Append mode
is also used for the dn2id DB when adding a new entry. Append mode is also
used for index records if adding a new entryID to an index slot that already
exists.

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