[Date Prev][Date Next]
[Chronological]
[Thread]
[Top]
Re: (ITS#7651) LMDB: Uncontrolled database when opened from multiple processes
Howard Chu writes:
> h.b.furuseth@usit.uio.no wrote:
>> I'd call this two doc bugs:
>>
>> Something should mention that once a page has been used, the file will
>> never shrink below that page. (Can't quite say that the file never
>> shrinks, since WRITEMAP and Windows will set it to exact re-configurable
>> mapsize in some cases. If I remember correctly.)
>
> You cannot shrink the mapsize below that last used page, and the last used
> page is a non-decreasing number.
Yes. Duh, that's already roughly stated under mdb_env_set_mapsize().
>> mdb_env_copy() and mdb_env_copyfd() should document that
>>
>> @node This call can trigger siginficant file size growth if run in
>> parallel with write transactions, because it employs a read-only
>> transaction. See long-lived transactions under Caveats.
I'll add this one though.
>> I wonder that means these functions should have a flag parameter.
>> For some databases, users might prefer a _write_ transaction while
>> reading the DB, blocking writes while copying.
>
> No one has ever wanted a hot-backup function that halts writes. You
> might as well not do a hot-backup at all.
Yes, nevermind about a mdb_env_copy() flag. An mdb_txn_begin
timeout would make it a viable choice - but if that is implemented
someday, those two behaviors together could go in an MDB_env flag.
--
Hallvard