From a33bba477349f8f54abd42c3045a3ea1ab8579e7 Mon Sep 17 00:00:00 2001 From: Gary Rong Date: Thu, 23 Jan 2025 11:21:42 +0800 Subject: [PATCH] core/rawdb: several fixes --- core/rawdb/freezer_batch.go | 2 +- core/rawdb/freezer_meta.go | 7 ++++--- core/rawdb/freezer_table.go | 2 +- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/core/rawdb/freezer_batch.go b/core/rawdb/freezer_batch.go index 0b354cb6be..801d30f73f 100644 --- a/core/rawdb/freezer_batch.go +++ b/core/rawdb/freezer_batch.go @@ -210,7 +210,7 @@ func (batch *freezerTableBatch) commit() error { // Periodically sync the table, todo (rjl493456442) make it configurable? if time.Since(batch.t.lastSync) > 30*time.Second { batch.t.lastSync = time.Now() - return batch.t.syncWithNoLock() + return batch.t.Sync() } return nil } diff --git a/core/rawdb/freezer_meta.go b/core/rawdb/freezer_meta.go index f60fce79ac..3b60847d3c 100644 --- a/core/rawdb/freezer_meta.go +++ b/core/rawdb/freezer_meta.go @@ -25,8 +25,9 @@ import ( ) const ( - freezerTableV1 = 1 // Initial version of metadata struct - freezerTableV2 = 2 // Add field: 'flushOffset' + freezerTableV1 = 1 // Initial version of metadata struct + freezerTableV2 = 2 // Add field: 'flushOffset' + freezerVersion = freezerTableV2 // The current used version ) // freezerTableMeta is a collection of additional properties that describe the @@ -164,7 +165,7 @@ func (m *freezerTableMeta) write(sync bool) error { Offset uint64 } var o obj - o.Version = freezerTableV2 // forcibly set it to v2 + o.Version = freezerVersion // forcibly use the current version o.Tail = m.virtualTail o.Offset = m.flushOffset diff --git a/core/rawdb/freezer_table.go b/core/rawdb/freezer_table.go index f55c117074..6bf4eb6c63 100644 --- a/core/rawdb/freezer_table.go +++ b/core/rawdb/freezer_table.go @@ -320,7 +320,7 @@ func (t *freezerTable) repair() error { // offset is updated, leaving a dangling reference that points to a position // outside the file. If so, the offset will be reset to the new end of the // file during the next run. - if t.metadata.flushOffset < uint64(newOffset) { + if t.metadata.flushOffset > uint64(newOffset) { if err := t.metadata.setFlushOffset(uint64(newOffset), true); err != nil { return err }