Skip to content
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

Revamp Multi-store Functionality #7101

Closed
aaronc opened this issue Aug 18, 2020 · 5 comments
Closed

Revamp Multi-store Functionality #7101

aaronc opened this issue Aug 18, 2020 · 5 comments
Labels

Comments

@aaronc
Copy link
Member

aaronc commented Aug 18, 2020

This is linked to meta-issue #7096.

Summary

It was mentioned that the SDK's current multi-store is suboptimal. I believe because it uses several IAVL trees underneath. Can you share any more details @alexanderbez or @ethanfrey ?

@alexanderbez
Copy link
Contributor

alexanderbez commented Aug 19, 2020

The main issues I see are:

  1. The code is a mess.
  2. Certain abstractions are either completely unnecessary or are over abstracted
  3. Logical commits are not atomic

@alexanderbez alexanderbez self-assigned this Aug 20, 2020
@alexanderbez
Copy link
Contributor

This is something I wanted to take a look at when first mentioned. Being that we're nearly wrapped up for stargate, I'm going to start taking a look at design now...

@ethanfrey
Copy link
Contributor

For 99% of use cases, with the possible exception of ethermint, we can simple have one iavl tree and then all substores are just prefixedstores on top of the iavl tree.

You get isolation and you get one tree with atomic commits.

You do not get to mix different storage formats and database backends. Do you need that for the transient stores?

@alexanderbez
Copy link
Contributor

Correct @ethanfrey, I already have this in mind and will try to come up with a solution that allows for both paths.

@tac0turtle
Copy link
Member

closing in favour of other issues

@tac0turtle tac0turtle moved this to 👏 Done in Cosmos-SDK Oct 21, 2022
@tac0turtle tac0turtle removed this from Cosmos-SDK Nov 16, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
No open projects
Development

No branches or pull requests

4 participants