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

Re: Avoiding read() of meta pages

Howard Chu writes:
> From: Howard Chu <hyc@symas.com>
> To: Hallvard Breien Furuseth <h.b.furuseth@usit.uio.no>, 
>  openldap-devel@openldap.org
> Subject: Re: Avoiding read() of meta pages
> Date: Tue, 15 Jan 2013 20:56:40 +0000
> Hallvard Breien Furuseth wrote:
>> I presume this can only be a problem when other processes have the
>> database open?  In that situation, I think the read() can be avoided
>> by maintaining a copy of the relevant MDB_meta information in the
>> lock file.  The read() only needs enough info to know how to map
>> the data file.
>> This would require a version increase for the lock file and programs
>> using it, but not for the database file.
> Since, as you note, the read only needs to see the map size, none of this work 
> is necessary.

Why not?  The mapsize can change.  mdb_env_write_meta(): /* Persist any
increases of mapsize config */.  It can also shrink during env_open, but
I think that was a mistake as written.  Will get back to that later.