[Date Prev][Date Next]
[Chronological]
[Thread]
[Top]
Re: openldap.git branch mdb.master updated. 0ce6bb4be0034120c850917bc4f59b4d4efc1432
I wrote:
> A simple variant of page ranges, to save space and simplify range handling:
> /* Page range: (pagecount << MDB_PGNO_BITS) | (pageno + pagecount) */
> typedef pgno_t mdb_pages_t;
>
> Lone pages get pagecount=1. With MDB_PGCOUNT_BITS = (64bit 4 ? 19 : 12)
MDB_PGCOUNT_BITS = sizeof(mdb_pages_t)*CHAR_BIT - MDB_PGNO_BITS,
i.e. mdb_pages_t's remainig bits.
> and page size 4096, that limits MDB to a 128 petabyte DB and 2G entry
> size. Or 4G database and 16M entry size on 32-bit machines. (I'd call
> limiting the entry size a bonus compared to today's mdb: The current
> freelist doesn't exactly handle 2 billion freed pages gracefully.)
2/4096 billion.
--
Hallvard