mirror of
https://github.com/ethereum/go-ethereum.git
synced 2026-07-27 15:16:43 +00:00
core/rawdb: add database stats for filtermaps
This commit is contained in:
parent
624a5d8b23
commit
74bdd7ce85
2 changed files with 49 additions and 35 deletions
|
|
@ -378,6 +378,9 @@ func InspectDatabase(db ethdb.Database, keyPrefix, keyStart []byte) error {
|
||||||
filterMaps stat
|
filterMaps stat
|
||||||
beaconHeaders stat
|
beaconHeaders stat
|
||||||
cliqueSnaps stat
|
cliqueSnaps stat
|
||||||
|
filterMapRows stat
|
||||||
|
filterMapLastBlock stat
|
||||||
|
filterMapBlockLV stat
|
||||||
|
|
||||||
// Verkle statistics
|
// Verkle statistics
|
||||||
verkleTries stat
|
verkleTries stat
|
||||||
|
|
@ -442,13 +445,21 @@ func InspectDatabase(db ethdb.Database, keyPrefix, keyStart []byte) error {
|
||||||
beaconHeaders.Add(size)
|
beaconHeaders.Add(size)
|
||||||
case bytes.HasPrefix(key, CliqueSnapshotPrefix) && len(key) == 7+common.HashLength:
|
case bytes.HasPrefix(key, CliqueSnapshotPrefix) && len(key) == 7+common.HashLength:
|
||||||
cliqueSnaps.Add(size)
|
cliqueSnaps.Add(size)
|
||||||
case bytes.HasPrefix(key, ChtTablePrefix) ||
|
case bytes.HasPrefix(key, filterMapRowPrefix) && len(key) == len(filterMapRowPrefix)+8:
|
||||||
bytes.HasPrefix(key, ChtIndexTablePrefix) ||
|
filterMapRows.Add(size)
|
||||||
bytes.HasPrefix(key, ChtPrefix): // Canonical hash trie
|
case bytes.HasPrefix(key, filterMapLastBlockPrefix) && len(key) == len(filterMapLastBlockPrefix)+4:
|
||||||
|
filterMapLastBlock.Add(size)
|
||||||
|
case bytes.HasPrefix(key, filterMapBlockLVPrefix) && len(key) == len(filterMapBlockLVPrefix)+8:
|
||||||
|
filterMapBlockLV.Add(size)
|
||||||
|
|
||||||
|
// LES indexes
|
||||||
|
case bytes.HasPrefix(key, chtTablePrefix) ||
|
||||||
|
bytes.HasPrefix(key, chtIndexTablePrefix) ||
|
||||||
|
bytes.HasPrefix(key, chtPrefix): // Canonical hash trie
|
||||||
chtTrieNodes.Add(size)
|
chtTrieNodes.Add(size)
|
||||||
case bytes.HasPrefix(key, BloomTrieTablePrefix) ||
|
case bytes.HasPrefix(key, bloomTrieTablePrefix) ||
|
||||||
bytes.HasPrefix(key, BloomTrieIndexPrefix) ||
|
bytes.HasPrefix(key, bloomTrieIndexPrefix) ||
|
||||||
bytes.HasPrefix(key, BloomTriePrefix): // Bloomtrie sub
|
bytes.HasPrefix(key, bloomTriePrefix): // Bloomtrie sub
|
||||||
bloomTrieNodes.Add(size)
|
bloomTrieNodes.Add(size)
|
||||||
|
|
||||||
// Verkle trie data is detected, determine the sub-category
|
// Verkle trie data is detected, determine the sub-category
|
||||||
|
|
@ -476,6 +487,7 @@ func InspectDatabase(db ethdb.Database, keyPrefix, keyStart []byte) error {
|
||||||
snapshotGeneratorKey, snapshotRecoveryKey, txIndexTailKey, fastTxLookupLimitKey,
|
snapshotGeneratorKey, snapshotRecoveryKey, txIndexTailKey, fastTxLookupLimitKey,
|
||||||
uncleanShutdownKey, badBlockKey, transitionStatusKey, skeletonSyncStatusKey,
|
uncleanShutdownKey, badBlockKey, transitionStatusKey, skeletonSyncStatusKey,
|
||||||
persistentStateIDKey, trieJournalKey, snapshotSyncStatusKey, snapSyncStatusFlagKey,
|
persistentStateIDKey, trieJournalKey, snapshotSyncStatusKey, snapSyncStatusFlagKey,
|
||||||
|
filterMapsRangeKey,
|
||||||
} {
|
} {
|
||||||
if bytes.Equal(key, meta) {
|
if bytes.Equal(key, meta) {
|
||||||
metadata.Add(size)
|
metadata.Add(size)
|
||||||
|
|
@ -566,6 +578,7 @@ func ReadChainMetadata(db ethdb.KeyValueStore) [][]string {
|
||||||
}
|
}
|
||||||
return fmt.Sprintf("%d (%#x)", *val, *val)
|
return fmt.Sprintf("%d (%#x)", *val, *val)
|
||||||
}
|
}
|
||||||
|
|
||||||
data := [][]string{
|
data := [][]string{
|
||||||
{"databaseVersion", pp(ReadDatabaseVersion(db))},
|
{"databaseVersion", pp(ReadDatabaseVersion(db))},
|
||||||
{"headBlockHash", fmt.Sprintf("%v", ReadHeadBlockHash(db))},
|
{"headBlockHash", fmt.Sprintf("%v", ReadHeadBlockHash(db))},
|
||||||
|
|
@ -582,5 +595,8 @@ func ReadChainMetadata(db ethdb.KeyValueStore) [][]string {
|
||||||
if b := ReadSkeletonSyncStatus(db); b != nil {
|
if b := ReadSkeletonSyncStatus(db); b != nil {
|
||||||
data = append(data, []string{"SkeletonSyncStatus", string(b)})
|
data = append(data, []string{"SkeletonSyncStatus", string(b)})
|
||||||
}
|
}
|
||||||
|
if fmr, ok, _ := ReadFilterMapsRange(db); ok {
|
||||||
|
data = append(data, []string{"filterMapsRange", fmt.Sprintf("%+v", fmr)})
|
||||||
|
}
|
||||||
return data
|
return data
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -128,17 +128,6 @@ var (
|
||||||
configPrefix = []byte("ethereum-config-") // config prefix for the db
|
configPrefix = []byte("ethereum-config-") // config prefix for the db
|
||||||
genesisPrefix = []byte("ethereum-genesis-") // genesis state prefix for the db
|
genesisPrefix = []byte("ethereum-genesis-") // genesis state prefix for the db
|
||||||
|
|
||||||
// bloomBitsIndexPrefix is the data table of a chain indexer to track its progress
|
|
||||||
bloomBitsIndexPrefix = []byte("iB")
|
|
||||||
|
|
||||||
ChtPrefix = []byte("chtRootV2-") // ChtPrefix + chtNum (uint64 big endian) -> trie root hash
|
|
||||||
ChtTablePrefix = []byte("cht-")
|
|
||||||
ChtIndexTablePrefix = []byte("chtIndexV2-")
|
|
||||||
|
|
||||||
BloomTriePrefix = []byte("bltRoot-") // BloomTriePrefix + bloomTrieNum (uint64 big endian) -> trie root hash
|
|
||||||
BloomTrieTablePrefix = []byte("blt-")
|
|
||||||
BloomTrieIndexPrefix = []byte("bltIndex-")
|
|
||||||
|
|
||||||
CliqueSnapshotPrefix = []byte("clique-")
|
CliqueSnapshotPrefix = []byte("clique-")
|
||||||
|
|
||||||
BestUpdateKey = []byte("update-") // bigEndian64(syncPeriod) -> RLP(types.LightClientUpdate) (nextCommittee only referenced by root hash)
|
BestUpdateKey = []byte("update-") // bigEndian64(syncPeriod) -> RLP(types.LightClientUpdate) (nextCommittee only referenced by root hash)
|
||||||
|
|
@ -151,6 +140,15 @@ var (
|
||||||
filterMapLastBlockPrefix = []byte(filterMapsPrefix + "b") // filterMapLastBlockPrefix + mapIndex (uint32 big endian) -> block number (uint64 big endian)
|
filterMapLastBlockPrefix = []byte(filterMapsPrefix + "b") // filterMapLastBlockPrefix + mapIndex (uint32 big endian) -> block number (uint64 big endian)
|
||||||
filterMapBlockLVPrefix = []byte(filterMapsPrefix + "p") // filterMapBlockLVPrefix + num (uint64 big endian) -> log value pointer (uint64 big endian)
|
filterMapBlockLVPrefix = []byte(filterMapsPrefix + "p") // filterMapBlockLVPrefix + num (uint64 big endian) -> log value pointer (uint64 big endian)
|
||||||
|
|
||||||
|
// LES indexes
|
||||||
|
bloomBitsIndexPrefix = []byte("iB")
|
||||||
|
chtPrefix = []byte("chtRootV2-") // ChtPrefix + chtNum (uint64 big endian) -> trie root hash
|
||||||
|
chtTablePrefix = []byte("cht-")
|
||||||
|
chtIndexTablePrefix = []byte("chtIndexV2-")
|
||||||
|
bloomTriePrefix = []byte("bltRoot-") // BloomTriePrefix + bloomTrieNum (uint64 big endian) -> trie root hash
|
||||||
|
bloomTrieTablePrefix = []byte("blt-")
|
||||||
|
bloomTrieIndexPrefix = []byte("bltIndex-")
|
||||||
|
|
||||||
preimageCounter = metrics.NewRegisteredCounter("db/preimage/total", nil)
|
preimageCounter = metrics.NewRegisteredCounter("db/preimage/total", nil)
|
||||||
preimageHitsCounter = metrics.NewRegisteredCounter("db/preimage/hits", nil)
|
preimageHitsCounter = metrics.NewRegisteredCounter("db/preimage/hits", nil)
|
||||||
preimageMissCounter = metrics.NewRegisteredCounter("db/preimage/miss", nil)
|
preimageMissCounter = metrics.NewRegisteredCounter("db/preimage/miss", nil)
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue