Skip to content
Open
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion core/rawdb/ancient_scheme.go
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,7 @@ var freezers = []string{ChainFreezerName, MerkleStateFreezerName, VerkleStateFre
// state freezer.
func NewStateFreezer(ancientDir string, verkle bool, readOnly bool) (ethdb.ResettableAncientStore, error) {
if ancientDir == "" {
return NewMemoryFreezer(readOnly, stateFreezerTableConfigs), nil
return NewMemoryFreezer(readOnly, 0, stateFreezerTableConfigs), nil
}
var name string
if verkle {
Expand Down
2 changes: 1 addition & 1 deletion core/rawdb/chain_freezer.go
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ func NewChainFreezer(datadir string, namespace string, readonly bool, offset uin
func newChainFreezer(datadir string, eraDir string, namespace string, readonly bool, offset uint64) (*chainFreezer, error) {
if datadir == "" {
return &chainFreezer{
ancients: NewMemoryFreezer(readonly, chainFreezerTableConfigs),
ancients: NewMemoryFreezer(readonly, offset, chainFreezerTableConfigs),
quit: make(chan struct{}),
trigger: make(chan chan struct{}),
}, nil
Expand Down
20 changes: 14 additions & 6 deletions core/rawdb/freezer_memory.go
Original file line number Diff line number Diff line change
Expand Up @@ -149,7 +149,7 @@ func (b *memoryBatch) reset(freezer *MemoryFreezer) {
b.size = make(map[string]int64)

for name, table := range freezer.tables {
b.next[name] = table.items
b.next[name] = table.items + freezer.offset.Load()
}
}

Expand Down Expand Up @@ -215,16 +215,24 @@ type MemoryFreezer struct {
}

// NewMemoryFreezer initializes an in-memory freezer instance.
func NewMemoryFreezer(readonly bool, tableName map[string]freezerTableConfig) *MemoryFreezer {
func NewMemoryFreezer(readonly bool, offset uint64, tableName map[string]freezerTableConfig) *MemoryFreezer {
tables := make(map[string]*memoryTable)
for name, cfg := range tableName {
tables[name] = newMemoryTable(name, cfg)
}
return &MemoryFreezer{
freezer := &MemoryFreezer{
writeBatch: newMemoryBatch(),
readonly: readonly,
tables: tables,
}

freezer.offset.Store(offset)

// Some blocks in ancientDB may have already been frozen and been pruned, so adding the offset to
// represent the absolute number of blocks already frozen.
freezer.items += offset

return freezer
}
Comment on lines 219 to 238

// todo: @anshalshukla || @manav2401 - Check if implementation is required
Expand Down Expand Up @@ -252,7 +260,7 @@ func (f *MemoryFreezer) Ancient(kind string, number uint64) ([]byte, error) {
if t == nil {
return nil, errUnknownTable
}
data, err := t.retrieve(number, 1, 0)
data, err := t.retrieve(number-f.offset.Load(), 1, 0)
if err != nil {
return nil, err
}
Expand Down Expand Up @@ -362,7 +370,7 @@ func (f *MemoryFreezer) TruncateHead(items uint64) (uint64, error) {
return old, nil
}
for _, table := range f.tables {
if err := table.truncateHead(items); err != nil {
if err := table.truncateHead(items - f.offset.Load()); err != nil {
return 0, err
}
}
Comment on lines 386 to 396
Expand All @@ -386,7 +394,7 @@ func (f *MemoryFreezer) TruncateTail(tail uint64) (uint64, error) {
}
for _, table := range f.tables {
if table.config.prunable {
if err := table.truncateTail(tail); err != nil {
if err := table.truncateTail(tail - f.offset.Load()); err != nil {
return 0, err
}
}
Comment on lines 414 to 424
Expand Down
4 changes: 2 additions & 2 deletions core/rawdb/freezer_memory_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ func TestMemoryFreezer(t *testing.T) {
prunable: true,
}
}
return NewMemoryFreezer(false, tables)
return NewMemoryFreezer(false, 0, tables)
})
ancienttest.TestResettableAncientSuite(t, func(kinds []string) ethdb.ResettableAncientStore {
tables := make(map[string]freezerTableConfig)
Expand All @@ -42,6 +42,6 @@ func TestMemoryFreezer(t *testing.T) {
prunable: true,
}
}
return NewMemoryFreezer(false, tables)
return NewMemoryFreezer(false, 0, tables)
})
}
Loading