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

[wip]Elerer/no row cache #2631

Open
wants to merge 12 commits into
base: master
Choose a base branch
from

Conversation

cloudnoize
Copy link
Contributor

  • Problem Overview
    < a few sentences about what problem we want to solve with our change(e.g. description of the bug we are fixing) >
  • Testing Done
    < describe automated and/or manual test scenarios >

cloudnoize and others added 12 commits May 15, 2022 23:33
In this PR a kvbc_adapter layer is created which contains various
concrete implementation of the KVBC interfaces. Any component outside
KVBC will access all the features of KVBC using these interfaces. We
have various adaptations or comcrete implementations of these interfaces
as below:
1) Replica Adapter: This adapter is the main entry point which will now
encapsulate all the interfaces of kvbc
2) KV Blockchain Adapter : This adapter implement the IReader and IAdder
interfaces
3) Blocks Deleter Adapter : This adapter implements the IBlocksDeleter
Interface.
4) App State Adapter : This adapter implements the IAppState interface.
5) State Snapshot Adapter : This adapter implements the interfaces
required for Replica State Snapshot.

Replica is another concrete implementation available at a higher level.
All the code which chooses the DB interface between readonly replica and
replica adapter is kept in Replica class.

In future all the boiler plate code which will be needed for all the
different versions of blockchain, will be in the replica_adapter. And
the code which is required only for the corresponding blockchain version
will be kept in the corresponding blockchain specific adapter.
Moving the categorization adapters in categorization folder and adding
another namespace.
As these adapters are abstracted within kvbc, this change donot
require any change in any other component.
In this PR following is added:
1) LatestKeys is added with the functionality of getting the latest
value and version.
2) Blockchain is updated to provide the get and multiGet functionality.
3) Finally all these are added to V4BlockChain and then all these will
be wired with reader adapter for V4.
Copy link
Contributor

@teoparvanov teoparvanov left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Locking the master branch until made stable.

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

Successfully merging this pull request may close these issues.

4 participants