-
Notifications
You must be signed in to change notification settings - Fork 661
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
why tx.db.grow() is not needed in tx.root.spill() #285
Comments
It's interesting question... What I wanted to say is that 'grow' is postponed till tx.commitFreelist() is called: Lines 239 to 240 in b654ce9
But... the commitFreelist is only called when we are NOT operating in NoFreelistSync (that's getting more popular): Lines 174 to 175 in b654ce9
Intuitively the growing part should be migrated out of the 'commitFreelist' call. I think it justifies an attempt to create a repro test for this issue. |
From the git history |
My understanding is both |
I'm learning the source code of boltdb recently. In
Commit
tx.root.spill()
would shifttx.meta.pgid
possiblely when there is no enough room infreelist
, but without atx.db.grow()
. If the following freelist serialization find a feat page in the freelist, thetx.db.grow()
would be eliminated, is it the expected behave?Thanks a lot
The text was updated successfully, but these errors were encountered: