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

Remove the serialization logic from the storage layer #7174

Closed
4 tasks
robert-zaremba opened this issue Aug 26, 2020 · 5 comments
Closed
4 tasks

Remove the serialization logic from the storage layer #7174

robert-zaremba opened this issue Aug 26, 2020 · 5 comments

Comments

@robert-zaremba
Copy link
Collaborator

Summary

It seams that IAVL is responsible for both specific data serialization and the storage mechanism. This creates a tight coupling between the logic layer and storage layer. As a general principle, storage shouldn't depend on the data serialization required by the upper layers.

Problem Definition

Any future changes on state commitment layer will impact re-implementation of the serialization layer. It's only the

Proposal

Move the serialization layer out of the IAVL and enable clear interface between the layers: app, storage driver, storage engine.

For Admin Use

  • Not duplicate issue
  • Appropriate labels applied
  • Appropriate contributors tagged
  • Contributor assigned/self-assigned
@alexanderbez
Copy link
Contributor

alexanderbez commented Aug 27, 2020

Given that IAVL stores are logical stores, where do you see the serialization? The IAVL KVStore doesn't serialize anything -- it works on raw bytes.

@robert-zaremba
Copy link
Collaborator Author

This is what I've got when discussing with @amaurymartiny on #6194
@clevinson

@amaury1093
Copy link
Contributor

That was the impression I got when reading issues like cosmos/iavl#242. But I also started looking into IAVL code ~10 days ago, so am definitely lacking big picture context for IAVL. Sorry if I misled someone into wrong directions.

@robert-zaremba
Copy link
Collaborator Author

Shall we close this issue?

@alexanderbez
Copy link
Contributor

Seems like this should be moved to the IAVL repo then? I don't see what the SDK has to do with anything here.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

3 participants