4 ms·
When I implemented this, long ago, I had a expanded page structure containing the old page plus the new key. So it had more memory than 1 page. Then the expan
by hyperman1 3y ago
When I implemented this, long ago, I had a expanded page structure containing the old page plus the new key. So it had more memory than 1 page. Then the expanded page, when writing it back, becomes 2 pages if a split is needed.
I did it this way for a few reasons. One was I could release old key pages after new pages were written, avoiding data loss in IO errors. Second was key (prefix) compression became a lot more easy. I never realised it, but it avoids the trouble in both blog post too.
It comes with some copy overhead, unfortunately.