osmosis-labs / cosmos-sdk

:chains: A Framework for Building High Value Public Blockchains :sparkles:
https://cosmos.network/
Apache License 2.0
14 stars 34 forks source link

Start CacheKV store v2 #390

Closed ValarDragon closed 1 year ago

ValarDragon commented 1 year ago

What is the purpose of the change

Start CacheKV store v2, that separates responsibilities, cleans up code significantly.

Should eliminate dead lock risks, and significantly improve performance.

TY to @dangush for helpful discussions around spec leading to this. (Feel free to help contribute with this!)

The architecture of this is based on separating the roles of whats going on.

We acknowledge that the cache kv store has two responsibilities, and explicitly make two different internal structs and compose them together. Responsibilities

This lets us re-use and improve each component independently, keeps each component pretty simple, and advance the clear API breaking roadmaps for improvement for each. (And joint performance measurement / improvement remains pretty simple)

Current status

Base write buffer written, need to add iterator.

Barely any docs

Brief Changelog

(for example:)

Testing and Verifying

(Please pick one of the following options)

This change is a trivial rework / code cleanup without any test coverage.

(or)

This change is already covered by existing tests, such as (please describe tests).

(or)

This change added tests and can be verified as follows:

(example:)

Documentation and Release Note

alexanderbez commented 1 year ago

Super stoked for this @ValarDragon. LMK how I can help.

github-actions[bot] commented 1 year ago

This pull request has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.