From 728d84a0cbe2c91c9b40acbac79c8eff5eff34c8 Mon Sep 17 00:00:00 2001 From: Dan Laine Date: Thu, 24 Aug 2023 12:07:44 -0400 Subject: [PATCH] move and rename methods --- x/merkledb/db.go | 74 +++++++++++++++++++--------------------- x/merkledb/proof_test.go | 6 ++-- x/merkledb/trie_test.go | 2 +- 3 files changed, 40 insertions(+), 42 deletions(-) diff --git a/x/merkledb/db.go b/x/merkledb/db.go index af43bb9475ec..18245f13e091 100644 --- a/x/merkledb/db.go +++ b/x/merkledb/db.go @@ -177,6 +177,15 @@ type merkleDB struct { childViews []*trieView } +// New returns a new merkle database. +func New(ctx context.Context, db database.Database, config Config) (MerkleDB, error) { + metrics, err := newMetrics("merkleDB", config.Reg) + if err != nil { + return nil, err + } + return newDatabase(ctx, db, config, metrics) +} + func newDatabase( ctx context.Context, db database.Database, @@ -284,15 +293,6 @@ func (db *merkleDB) rebuild(ctx context.Context) error { return db.nodeDB.Compact(nil, nil) } -// New returns a new merkle database. -func New(ctx context.Context, db database.Database, config Config) (MerkleDB, error) { - metrics, err := newMetrics("merkleDB", config.Reg) - if err != nil { - return nil, err - } - return newDatabase(ctx, db, config, metrics) -} - func (db *merkleDB) CommitChangeProof(ctx context.Context, proof *ChangeProof) error { db.commitLock.Lock() defer db.commitLock.Unlock() @@ -398,12 +398,6 @@ func (db *merkleDB) Close() error { return db.metadataDB.Put(cleanShutdownKey, hadCleanShutdown) } -func (db *merkleDB) Delete(key []byte) error { - // this is a duplicate because the database interface doesn't support - // contexts, which are used for tracing - return db.Remove(context.Background(), key) -} - func (db *merkleDB) Get(key []byte) ([]byte, error) { // this is a duplicate because the database interface doesn't support // contexts, which are used for tracing @@ -723,26 +717,6 @@ func (db *merkleDB) HealthCheck(ctx context.Context) (interface{}, error) { return db.nodeDB.HealthCheck(ctx) } -func (db *merkleDB) Insert(ctx context.Context, k, v []byte) error { - db.commitLock.Lock() - defer db.commitLock.Unlock() - - if db.closed { - return database.ErrClosed - } - - view, err := db.newUntrackedView([]database.BatchOp{ - { - Key: k, - Value: v, - }, - }) - if err != nil { - return err - } - return view.commitToDB(ctx) -} - func (db *merkleDB) NewBatch() database.Batch { return &batch{ db: db, @@ -834,12 +808,36 @@ func writeNodeToBatch(batch database.Batch, n *node) error { return batch.Put(n.key.Bytes(), nodeBytes) } -// Put upserts the key/value pair into the db. func (db *merkleDB) Put(k, v []byte) error { - return db.Insert(context.Background(), k, v) + return db.PutContext(context.Background(), k, v) +} + +// Same as [Put] but takes in a context used for tracing. +func (db *merkleDB) PutContext(ctx context.Context, k, v []byte) error { + db.commitLock.Lock() + defer db.commitLock.Unlock() + + if db.closed { + return database.ErrClosed + } + + view, err := db.newUntrackedView([]database.BatchOp{ + { + Key: k, + Value: v, + }, + }) + if err != nil { + return err + } + return view.commitToDB(ctx) +} + +func (db *merkleDB) Delete(key []byte) error { + return db.DeleteContext(context.Background(), key) } -func (db *merkleDB) Remove(ctx context.Context, key []byte) error { +func (db *merkleDB) DeleteContext(ctx context.Context, key []byte) error { db.commitLock.Lock() defer db.commitLock.Unlock() diff --git a/x/merkledb/proof_test.go b/x/merkledb/proof_test.go index 1f731ac54069..1ea83c1bbb91 100644 --- a/x/merkledb/proof_test.go +++ b/x/merkledb/proof_test.go @@ -56,8 +56,8 @@ func Test_Proof_Simple(t *testing.T) { require.NoError(err) ctx := context.Background() - require.NoError(db.Insert(ctx, []byte{}, []byte{1})) - require.NoError(db.Insert(ctx, []byte{0}, []byte{2})) + require.NoError(db.PutContext(ctx, []byte{}, []byte{1})) + require.NoError(db.PutContext(ctx, []byte{0}, []byte{2})) expectedRoot, err := db.GetMerkleRoot(ctx) require.NoError(err) @@ -680,7 +680,7 @@ func Test_ChangeProof_BadBounds(t *testing.T) { startRoot, err := db.GetMerkleRoot(context.Background()) require.NoError(err) - require.NoError(db.Insert(context.Background(), []byte{0}, []byte{0})) + require.NoError(db.PutContext(context.Background(), []byte{0}, []byte{0})) endRoot, err := db.GetMerkleRoot(context.Background()) require.NoError(err) diff --git a/x/merkledb/trie_test.go b/x/merkledb/trie_test.go index d67f5133b78e..ef17891b1188 100644 --- a/x/merkledb/trie_test.go +++ b/x/merkledb/trie_test.go @@ -320,7 +320,7 @@ func Test_Trie_DeleteMissingKey(t *testing.T) { require.NoError(err) require.NotNil(trie) - require.NoError(trie.Remove(context.Background(), []byte("key"))) + require.NoError(trie.DeleteContext(context.Background(), []byte("key"))) } func Test_Trie_ExpandOnKeyPath(t *testing.T) {