top | item 38808955

(no title)

hoytech | 2 years ago

LMDB works like this. The MDB_env struct keeps pointers to both meta pages:

https://github.com/LMDB/lmdb/blob/30288c72573ceac719627183f1...

Which meta-page used is determined by the transaction ID (even IDs use first, odd IDs second).

This is the earliest description I can find of the "shadow paging" concept: https://dl.acm.org/doi/10.1145/320521.320540

And I believe its first implementation was in IBM's System R.

discuss

order

ww520|2 years ago

LMDB is the poster child of COW btree implementation. That paper is a good find. Thanks.