cosmos / iavl

Merkleized IAVL+ Tree implementation in Go
Apache License 2.0
409 stars 256 forks source link

feat(v1.x.x): async pruning of orphan nodes #876

Closed czarcas7ic closed 4 months ago

czarcas7ic commented 5 months ago

This feature prevents the multiple hour long waiting period when chains upgrade from previous versions of IAVL to IAVL v1. The time comes from pruning orphan nodes. This synchronously prunes them. This branch has been tested successfully against osmosis mainnet.

cool-develope commented 5 months ago

overall, looks good to me! could you please add the changelog?

czarcas7ic commented 5 months ago

Done here https://github.com/cosmos/iavl/pull/876/commits/8b53289e2f724d510d7bc992dd3778004378398a

@cool-develope would you consider making a minor v1 release that includes this? If not we can just use our fork but would be nice to just use a tag from iavl proper.

czarcas7ic commented 4 months ago

@cool-develope would we be able to get this in a v1 release? I am also refraining from merging since I am not aware of the rules/requirements for this repo.

cool-develope commented 4 months ago

@tac0turtle ☝️

tqin7 commented 4 months ago

Thanks for working on this! @cool-develope are you looking to create a minor release off this and if so, may I ask when we should expect it?

tac0turtle commented 4 months ago

we can do a release this week for it

BrendanChou commented 4 months ago

Nit: the PR description should say "asynchronously" ?