Skip to content

Commit

Permalink
e3: move domains to tables.go (ledgerwatch#1018)
Browse files Browse the repository at this point in the history
  • Loading branch information
AskAlexSharov authored and calmbeing committed Jul 10, 2023
1 parent e80501f commit b1b7b66
Show file tree
Hide file tree
Showing 5 changed files with 159 additions and 131 deletions.
20 changes: 10 additions & 10 deletions kv/iter/iter_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -85,12 +85,12 @@ func TestUnionPairs(t *testing.T) {
require := require.New(t)
tx, _ := db.BeginRw(ctx)
defer tx.Rollback()
_ = tx.Put(kv.AccountsHistory, []byte{1}, []byte{1})
_ = tx.Put(kv.AccountsHistory, []byte{3}, []byte{1})
_ = tx.Put(kv.AccountsHistory, []byte{4}, []byte{1})
_ = tx.Put(kv.E2AccountsHistory, []byte{1}, []byte{1})
_ = tx.Put(kv.E2AccountsHistory, []byte{3}, []byte{1})
_ = tx.Put(kv.E2AccountsHistory, []byte{4}, []byte{1})
_ = tx.Put(kv.PlainState, []byte{2}, []byte{9})
_ = tx.Put(kv.PlainState, []byte{3}, []byte{9})
it, _ := tx.Range(kv.AccountsHistory, nil, nil)
it, _ := tx.Range(kv.E2AccountsHistory, nil, nil)
it2, _ := tx.Range(kv.PlainState, nil, nil)
keys, values, err := iter.ToKVArray(iter.UnionKV(it, it2, -1))
require.NoError(err)
Expand All @@ -103,7 +103,7 @@ func TestUnionPairs(t *testing.T) {
defer tx.Rollback()
_ = tx.Put(kv.PlainState, []byte{2}, []byte{9})
_ = tx.Put(kv.PlainState, []byte{3}, []byte{9})
it, _ := tx.Range(kv.AccountsHistory, nil, nil)
it, _ := tx.Range(kv.E2AccountsHistory, nil, nil)
it2, _ := tx.Range(kv.PlainState, nil, nil)
keys, _, err := iter.ToKVArray(iter.UnionKV(it, it2, -1))
require.NoError(err)
Expand All @@ -113,10 +113,10 @@ func TestUnionPairs(t *testing.T) {
require := require.New(t)
tx, _ := db.BeginRw(ctx)
defer tx.Rollback()
_ = tx.Put(kv.AccountsHistory, []byte{1}, []byte{1})
_ = tx.Put(kv.AccountsHistory, []byte{3}, []byte{1})
_ = tx.Put(kv.AccountsHistory, []byte{4}, []byte{1})
it, _ := tx.Range(kv.AccountsHistory, nil, nil)
_ = tx.Put(kv.E2AccountsHistory, []byte{1}, []byte{1})
_ = tx.Put(kv.E2AccountsHistory, []byte{3}, []byte{1})
_ = tx.Put(kv.E2AccountsHistory, []byte{4}, []byte{1})
it, _ := tx.Range(kv.E2AccountsHistory, nil, nil)
it2, _ := tx.Range(kv.PlainState, nil, nil)
keys, _, err := iter.ToKVArray(iter.UnionKV(it, it2, -1))
require.NoError(err)
Expand All @@ -126,7 +126,7 @@ func TestUnionPairs(t *testing.T) {
require := require.New(t)
tx, _ := db.BeginRw(ctx)
defer tx.Rollback()
it, _ := tx.Range(kv.AccountsHistory, nil, nil)
it, _ := tx.Range(kv.E2AccountsHistory, nil, nil)
it2, _ := tx.Range(kv.PlainState, nil, nil)
m := iter.UnionKV(it, it2, -1)
require.False(m.HasNext())
Expand Down
226 changes: 127 additions & 99 deletions kv/tables.go
Original file line number Diff line number Diff line change
Expand Up @@ -158,8 +158,8 @@ StorageHistory
key - address + storage_key + shard_id_u64
value - roaring bitmap - list of block where it changed
*/
const AccountsHistory = "AccountHistory"
const StorageHistory = "StorageHistory"
const E2AccountsHistory = "AccountHistory"
const E2StorageHistory = "StorageHistory"

const (

Expand Down Expand Up @@ -378,43 +378,46 @@ const (
BittorrentCompletion = "BittorrentCompletion"
BittorrentInfo = "BittorrentInfo"

// Domains and Inverted Indices
AccountKeys = "AccountKeys"
AccountVals = "AccountVals"
AccountHistoryKeys = "AccountHistoryKeys"
AccountHistoryVals = "AccountHistoryVals"
AccountIdx = "AccountIdx"

StorageKeys = "StorageKeys"
StorageVals = "StorageVals"
StorageHistoryKeys = "StorageHistoryKeys"
StorageHistoryVals = "StorageHistoryVals"
StorageIdx = "StorageIdx"

CodeKeys = "CodeKeys"
CodeVals = "CodeVals"
CodeHistoryKeys = "CodeHistoryKeys"
CodeHistoryVals = "CodeHistoryVals"
CodeIdx = "CodeIdx"

CommitmentKeys = "CommitmentKeys"
CommitmentVals = "CommitmentVals"
CommitmentHistoryKeys = "CommitmentHistoryKeys"
CommitmentHistoryVals = "CommitmentHistoryVals"
CommitmentIdx = "CommitmentIdx"

LogAddressKeys = "LogAddressKeys"
LogAddressIdx = "LogAddressIdx"
LogTopicsKeys = "LogTopicsKeys"
LogTopicsIdx = "LogTopicsIdx"

TracesFromKeys = "TracesFromKeys"
TracesFromIdx = "TracesFromIdx"
TracesToKeys = "TracesToKeys"
TracesToIdx = "TracesToIdx"
// Domains/Histry/InvertedIndices
// Contants have "Tbl" prefix, to avoid collision with actual Domain names
// This constants is very rarely used in APP, but Domain/History/Idx names are widely used
TblAccountKeys = "AccountKeys"
TblAccountVals = "AccountVals"
TblAccountHistoryKeys = "AccountHistoryKeys"
TblAccountHistoryVals = "AccountHistoryVals"
TblAccountIdx = "AccountIdx"

TblStorageKeys = "StorageKeys"
TblStorageVals = "StorageVals"
TblStorageHistoryKeys = "StorageHistoryKeys"
TblStorageHistoryVals = "StorageHistoryVals"
TblStorageIdx = "StorageIdx"

TblCodeKeys = "CodeKeys"
TblCodeVals = "CodeVals"
TblCodeHistoryKeys = "CodeHistoryKeys"
TblCodeHistoryVals = "CodeHistoryVals"
TblCodeIdx = "CodeIdx"

TblCommitmentKeys = "CommitmentKeys"
TblCommitmentVals = "CommitmentVals"
TblCommitmentHistoryKeys = "CommitmentHistoryKeys"
TblCommitmentHistoryVals = "CommitmentHistoryVals"
TblCommitmentIdx = "CommitmentIdx"

TblLogAddressKeys = "LogAddressKeys"
TblLogAddressIdx = "LogAddressIdx"
TblLogTopicsKeys = "LogTopicsKeys"
TblLogTopicsIdx = "LogTopicsIdx"

TblTracesFromKeys = "TracesFromKeys"
TblTracesFromIdx = "TracesFromIdx"
TblTracesToKeys = "TracesToKeys"
TblTracesToIdx = "TracesToIdx"

Snapshots = "Snapshots" // name -> hash

//State Reconstitution
RAccountKeys = "RAccountKeys"
RAccountIdx = "RAccountIdx"
RStorageKeys = "RStorageKeys"
Expand Down Expand Up @@ -485,8 +488,8 @@ var (
// This list will be sorted in `init` method.
// ChaindataTablesCfg - can be used to find index in sorted version of ChaindataTables list by name
var ChaindataTables = []string{
AccountsHistory,
StorageHistory,
E2AccountsHistory,
E2StorageHistory,
Code,
ContractCode,
HeaderNumber,
Expand Down Expand Up @@ -541,39 +544,39 @@ var ChaindataTables = []string{
BorReceipts,
BorTxLookup,
BorSeparate,
AccountKeys,
AccountVals,
AccountHistoryKeys,
AccountHistoryVals,
AccountIdx,

StorageKeys,
StorageVals,
StorageHistoryKeys,
StorageHistoryVals,
StorageIdx,

CodeKeys,
CodeVals,
CodeHistoryKeys,
CodeHistoryVals,
CodeIdx,

CommitmentKeys,
CommitmentVals,
CommitmentHistoryKeys,
CommitmentHistoryVals,
CommitmentIdx,

LogAddressKeys,
LogAddressIdx,
LogTopicsKeys,
LogTopicsIdx,

TracesFromKeys,
TracesFromIdx,
TracesToKeys,
TracesToIdx,
TblAccountKeys,
TblAccountVals,
TblAccountHistoryKeys,
TblAccountHistoryVals,
TblAccountIdx,

TblStorageKeys,
TblStorageVals,
TblStorageHistoryKeys,
TblStorageHistoryVals,
TblStorageIdx,

TblCodeKeys,
TblCodeVals,
TblCodeHistoryKeys,
TblCodeHistoryVals,
TblCodeIdx,

TblCommitmentKeys,
TblCommitmentVals,
TblCommitmentHistoryKeys,
TblCommitmentHistoryVals,
TblCommitmentIdx,

TblLogAddressKeys,
TblLogAddressIdx,
TblLogTopicsKeys,
TblLogTopicsIdx,

TblTracesFromKeys,
TblTracesFromIdx,
TblTracesToKeys,
TblTracesToIdx,

Snapshots,
MaxTxNum,
Expand Down Expand Up @@ -679,34 +682,34 @@ var ChaindataTablesCfg = TableCfg{
},
CallTraceSet: {Flags: DupSort},

AccountKeys: {Flags: DupSort},
AccountHistoryKeys: {Flags: DupSort},
AccountHistoryVals: {Flags: DupSort},
AccountIdx: {Flags: DupSort},
StorageKeys: {Flags: DupSort},
StorageHistoryKeys: {Flags: DupSort},
StorageHistoryVals: {Flags: DupSort},
StorageIdx: {Flags: DupSort},
CodeKeys: {Flags: DupSort},
CodeHistoryKeys: {Flags: DupSort},
CodeIdx: {Flags: DupSort},
CommitmentKeys: {Flags: DupSort},
CommitmentHistoryKeys: {Flags: DupSort},
CommitmentIdx: {Flags: DupSort},
LogAddressKeys: {Flags: DupSort},
LogAddressIdx: {Flags: DupSort},
LogTopicsKeys: {Flags: DupSort},
LogTopicsIdx: {Flags: DupSort},
TracesFromKeys: {Flags: DupSort},
TracesFromIdx: {Flags: DupSort},
TracesToKeys: {Flags: DupSort},
TracesToIdx: {Flags: DupSort},
RAccountKeys: {Flags: DupSort},
RAccountIdx: {Flags: DupSort},
RStorageKeys: {Flags: DupSort},
RStorageIdx: {Flags: DupSort},
RCodeKeys: {Flags: DupSort},
RCodeIdx: {Flags: DupSort},
TblAccountKeys: {Flags: DupSort},
TblAccountHistoryKeys: {Flags: DupSort},
TblAccountHistoryVals: {Flags: DupSort},
TblAccountIdx: {Flags: DupSort},
TblStorageKeys: {Flags: DupSort},
TblStorageHistoryKeys: {Flags: DupSort},
TblStorageHistoryVals: {Flags: DupSort},
TblStorageIdx: {Flags: DupSort},
TblCodeKeys: {Flags: DupSort},
TblCodeHistoryKeys: {Flags: DupSort},
TblCodeIdx: {Flags: DupSort},
TblCommitmentKeys: {Flags: DupSort},
TblCommitmentHistoryKeys: {Flags: DupSort},
TblCommitmentIdx: {Flags: DupSort},
TblLogAddressKeys: {Flags: DupSort},
TblLogAddressIdx: {Flags: DupSort},
TblLogTopicsKeys: {Flags: DupSort},
TblLogTopicsIdx: {Flags: DupSort},
TblTracesFromKeys: {Flags: DupSort},
TblTracesFromIdx: {Flags: DupSort},
TblTracesToKeys: {Flags: DupSort},
TblTracesToIdx: {Flags: DupSort},
RAccountKeys: {Flags: DupSort},
RAccountIdx: {Flags: DupSort},
RStorageKeys: {Flags: DupSort},
RStorageIdx: {Flags: DupSort},
RCodeKeys: {Flags: DupSort},
RCodeIdx: {Flags: DupSort},
}

var TxpoolTablesCfg = TableCfg{}
Expand Down Expand Up @@ -790,3 +793,28 @@ func reinit() {
}
}
}

// Temporal

const (
AccountsDomain Domain = "AccountsDomain"
StorageDomain Domain = "StorageDomain"
CodeDomain Domain = "CodeDomain"
)

const (
AccountsHistory History = "AccountsHistory"
StorageHistory History = "StorageHistory"
CodeHistory History = "CodeHistory"
)

const (
AccountsHistoryIdx InvertedIdx = "AccountsHistoryIdx"
StorageHistoryIdx InvertedIdx = "StorageHistoryIdx"
CodeHistoryIdx InvertedIdx = "CodeHistoryIdx"

LogTopicIdx InvertedIdx = "LogTopicIdx"
LogAddrIdx InvertedIdx = "LogAddrIdx"
TracesFromIdx InvertedIdx = "TracesFromIdx"
TracesToIdx InvertedIdx = "TracesToIdx"
)
4 changes: 2 additions & 2 deletions kv/temporal/historyv2/changeset.go
Original file line number Diff line number Diff line change
Expand Up @@ -223,15 +223,15 @@ type CSMapper struct {

var Mapper = map[string]CSMapper{
kv.AccountChangeSet: {
IndexBucket: kv.AccountsHistory,
IndexBucket: kv.E2AccountsHistory,
IndexChunkKey: AccountIndexChunkKey,
New: NewAccountChangeSet,
Find: FindAccount,
Encode: EncodeAccounts,
Decode: DecodeAccounts,
},
kv.StorageChangeSet: {
IndexBucket: kv.StorageHistory,
IndexBucket: kv.E2StorageHistory,
IndexChunkKey: StorageIndexChunkKey,
Find: FindStorage,
New: NewStorageChangeSet,
Expand Down
16 changes: 8 additions & 8 deletions state/aggregator.go
Original file line number Diff line number Diff line change
Expand Up @@ -120,32 +120,32 @@ func NewAggregator(dir, tmpdir string, aggregationStep uint64, commitmentMode Co
if err != nil {
return nil, err
}
if a.accounts, err = NewDomain(dir, tmpdir, aggregationStep, "accounts", kv.AccountKeys, kv.AccountVals, kv.AccountHistoryKeys, kv.AccountHistoryVals, kv.AccountIdx, false, false, logger); err != nil {
if a.accounts, err = NewDomain(dir, tmpdir, aggregationStep, "accounts", kv.TblAccountKeys, kv.TblAccountVals, kv.TblAccountHistoryKeys, kv.TblAccountHistoryVals, kv.TblAccountIdx, false, false, logger); err != nil {
return nil, err
}
if a.storage, err = NewDomain(dir, tmpdir, aggregationStep, "storage", kv.StorageKeys, kv.StorageVals, kv.StorageHistoryKeys, kv.StorageHistoryVals, kv.StorageIdx, false, false, logger); err != nil {
if a.storage, err = NewDomain(dir, tmpdir, aggregationStep, "storage", kv.TblStorageKeys, kv.TblStorageVals, kv.TblStorageHistoryKeys, kv.TblStorageHistoryVals, kv.TblStorageIdx, false, false, logger); err != nil {
return nil, err
}
if a.code, err = NewDomain(dir, tmpdir, aggregationStep, "code", kv.CodeKeys, kv.CodeVals, kv.CodeHistoryKeys, kv.CodeHistoryVals, kv.CodeIdx, true, true, logger); err != nil {
if a.code, err = NewDomain(dir, tmpdir, aggregationStep, "code", kv.TblCodeKeys, kv.TblCodeVals, kv.TblCodeHistoryKeys, kv.TblCodeHistoryVals, kv.TblCodeIdx, true, true, logger); err != nil {
return nil, err
}

commitd, err := NewDomain(dir, tmpdir, aggregationStep, "commitment", kv.CommitmentKeys, kv.CommitmentVals, kv.CommitmentHistoryKeys, kv.CommitmentHistoryVals, kv.CommitmentIdx, false, true, logger)
commitd, err := NewDomain(dir, tmpdir, aggregationStep, "commitment", kv.TblCommitmentKeys, kv.TblCommitmentVals, kv.TblCommitmentHistoryKeys, kv.TblCommitmentHistoryVals, kv.TblCommitmentIdx, false, true, logger)
if err != nil {
return nil, err
}
a.commitment = NewCommittedDomain(commitd, commitmentMode, commitTrieVariant, logger)

if a.logAddrs, err = NewInvertedIndex(dir, tmpdir, aggregationStep, "logaddrs", kv.LogAddressKeys, kv.LogAddressIdx, false, nil, logger); err != nil {
if a.logAddrs, err = NewInvertedIndex(dir, tmpdir, aggregationStep, "logaddrs", kv.TblLogAddressKeys, kv.TblLogAddressIdx, false, nil, logger); err != nil {
return nil, err
}
if a.logTopics, err = NewInvertedIndex(dir, tmpdir, aggregationStep, "logtopics", kv.LogTopicsKeys, kv.LogTopicsIdx, false, nil, logger); err != nil {
if a.logTopics, err = NewInvertedIndex(dir, tmpdir, aggregationStep, "logtopics", kv.TblLogTopicsKeys, kv.TblLogTopicsIdx, false, nil, logger); err != nil {
return nil, err
}
if a.tracesFrom, err = NewInvertedIndex(dir, tmpdir, aggregationStep, "tracesfrom", kv.TracesFromKeys, kv.TracesFromIdx, false, nil, logger); err != nil {
if a.tracesFrom, err = NewInvertedIndex(dir, tmpdir, aggregationStep, "tracesfrom", kv.TblTracesFromKeys, kv.TblTracesFromIdx, false, nil, logger); err != nil {
return nil, err
}
if a.tracesTo, err = NewInvertedIndex(dir, tmpdir, aggregationStep, "tracesto", kv.TracesToKeys, kv.TracesToIdx, false, nil, logger); err != nil {
if a.tracesTo, err = NewInvertedIndex(dir, tmpdir, aggregationStep, "tracesto", kv.TblTracesToKeys, kv.TblTracesToIdx, false, nil, logger); err != nil {
return nil, err
}
closeAgg = false
Expand Down
Loading

0 comments on commit b1b7b66

Please sign in to comment.