refactor(store/v2)!: simplify storage (#22683)

This commit is contained in:
Marko
2024-12-03 16:18:19 +00:00
committed by GitHub
parent 5426cd8f34
commit 94cfcc11aa
52 changed files with 375 additions and 4701 deletions
+3 -3
View File
@@ -591,7 +591,7 @@ func TestConsensus_Query(t *testing.T) {
c := setUpConsensus(t, 100_000, cometmock.MockMempool[mock.Tx]{})
// Write data to state storage
err := c.store.GetStateStorage().ApplyChangeset(&store.Changeset{
err := c.store.GetStateCommitment().WriteChangeset(&store.Changeset{
Version: 1,
Changes: []store.StateChanges{
{
@@ -691,9 +691,8 @@ func setUpConsensus(t *testing.T, gasLimit uint64, mempool mempool.Mempool[mock.
)
require.NoError(t, err)
ss := cometmock.NewMockStorage(log.NewNopLogger(), t.TempDir())
sc := cometmock.NewMockCommiter(log.NewNopLogger(), string(actorName), "stf")
mockStore := cometmock.NewMockStore(ss, sc)
mockStore := cometmock.NewMockStore(sc)
am := appmanager.New(appmanager.Config{
ValidateTxGasLimit: gasLimit,
@@ -786,6 +785,7 @@ func TestOptimisticExecution(t *testing.T) {
Txs: ppReq.Txs,
}
fbResp, err := c.FinalizeBlock(context.Background(), fbReq)
require.Nil(t, fbResp)
require.Error(t, err)
require.ErrorContains(t, err, "test error") // from optimisticMockFunc
require.Equal(t, 1, calledTimes)
@@ -39,7 +39,7 @@ func NewMockReader(v uint64, rs *MockStore, actor []byte) *MockReader {
}
func (roa *MockReader) Has(key []byte) (bool, error) {
val, err := roa.store.GetStateStorage().Has(roa.actor, roa.version, key)
val, err := roa.store.GetStateCommitment().Has(roa.actor, roa.version, key)
if err != nil {
return false, err
}
@@ -48,7 +48,7 @@ func (roa *MockReader) Has(key []byte) (bool, error) {
}
func (roa *MockReader) Get(key []byte) ([]byte, error) {
result, err := roa.store.GetStateStorage().Get(roa.actor, roa.version, key)
result, err := roa.store.GetStateCommitment().Get(roa.actor, roa.version, key)
if err != nil {
return nil, err
}
@@ -57,9 +57,9 @@ func (roa *MockReader) Get(key []byte) ([]byte, error) {
}
func (roa *MockReader) Iterator(start, end []byte) (corestore.Iterator, error) {
return roa.store.GetStateStorage().Iterator(roa.actor, roa.version, start, end)
return roa.store.GetStateCommitment().Iterator(roa.actor, roa.version, start, end)
}
func (roa *MockReader) ReverseIterator(start, end []byte) (corestore.Iterator, error) {
return roa.store.GetStateStorage().ReverseIterator(roa.actor, roa.version, start, end)
return roa.store.GetStateCommitment().ReverseIterator(roa.actor, roa.version, start, end)
}
+3 -21
View File
@@ -11,21 +11,12 @@ import (
"cosmossdk.io/store/v2/commitment/iavl"
dbm "cosmossdk.io/store/v2/db"
"cosmossdk.io/store/v2/proof"
"cosmossdk.io/store/v2/storage"
"cosmossdk.io/store/v2/storage/pebbledb"
)
type MockStore struct {
Storage storev2.VersionedWriter
Committer storev2.Committer
}
func NewMockStorage(logger log.Logger, dir string) storev2.VersionedWriter {
storageDB, _ := pebbledb.New(dir)
ss := storage.NewStorageStore(storageDB, logger)
return ss
}
func NewMockCommiter(logger log.Logger, actors ...string) storev2.Committer {
treeMap := make(map[string]commitment.Tree)
for _, actor := range actors {
@@ -36,8 +27,8 @@ func NewMockCommiter(logger log.Logger, actors ...string) storev2.Committer {
return sc
}
func NewMockStore(ss storev2.VersionedWriter, sc storev2.Committer) *MockStore {
return &MockStore{Storage: ss, Committer: sc}
func NewMockStore(sc storev2.Committer) *MockStore {
return &MockStore{Committer: sc}
}
func (s *MockStore) GetLatestVersion() (uint64, error) {
@@ -59,12 +50,7 @@ func (s *MockStore) StateLatest() (uint64, corestore.ReaderMap, error) {
}
func (s *MockStore) Commit(changeset *corestore.Changeset) (corestore.Hash, error) {
err := s.Storage.ApplyChangeset(changeset)
if err != nil {
return []byte{}, err
}
err = s.Committer.WriteChangeset(changeset)
err := s.Committer.WriteChangeset(changeset)
if err != nil {
return []byte{}, err
}
@@ -81,10 +67,6 @@ func (s *MockStore) StateAt(version uint64) (corestore.ReaderMap, error) {
return NewMockReaderMap(version, s), nil
}
func (s *MockStore) GetStateStorage() storev2.VersionedWriter {
return s.Storage
}
func (s *MockStore) GetStateCommitment() storev2.Committer {
return s.Committer
}
-2
View File
@@ -127,7 +127,6 @@ func New[T transaction.Tx](
indexEvents[e] = struct{}{}
}
ss := store.GetStateStorage().(snapshots.StorageSnapshotter)
sc := store.GetStateCommitment().(snapshots.CommitSnapshotter)
snapshotStore, err := GetSnapshotStore(srv.config.ConfigTomlConfig.RootDir)
@@ -155,7 +154,6 @@ func New[T transaction.Tx](
snapshotStore,
srv.serverOptions.SnapshotOptions(cfg),
sc,
ss,
nil, // extensions snapshotter registered below
logger,
)
+1
View File
@@ -105,6 +105,7 @@ func Benchmark_Iterate(b *testing.B) {
// makeBranchStack creates a branch stack of the given size and initializes it with unique key-value pairs.
func makeBranchStack(b *testing.B, stackSize int) Store[store.KVStore] {
b.Helper()
parent := coretesting.NewMemKV()
branch := NewStore[store.KVStore](parent)
for i := 1; i < stackSize; i++ {
+4 -3
View File
@@ -375,10 +375,11 @@ func createSnapshotsManager(
}
sm := snapshots.NewManager(
snapshotStore, snapshots.NewSnapshotOptions(interval, uint32(keepRecent)),
snapshotStore,
snapshots.NewSnapshotOptions(interval, uint32(keepRecent)),
store.GetStateCommitment().(snapshots.CommitSnapshotter),
store.GetStateStorage().(snapshots.StorageSnapshotter),
nil, logger)
nil,
logger)
return sm, nil
}