Skip to content

Commit

Permalink
core/rawdb: replace method with Open
Browse files Browse the repository at this point in the history
  • Loading branch information
holiman committed Jan 31, 2023
1 parent 651b0f8 commit 556cfef
Show file tree
Hide file tree
Showing 4 changed files with 36 additions and 27 deletions.
22 changes: 18 additions & 4 deletions core/blockchain_repair_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -1756,7 +1756,10 @@ func testRepair(t *testing.T, tt *rewindTest, snapshots bool) {
// Create a temporary persistent database
datadir := t.TempDir()

db, err := rawdb.NewLevelDBDatabaseWithFreezer(datadir, 0, 0, datadir, "", false)
db, err := rawdb.Open(rawdb.OpenOptions{
Directory: datadir,
AncientsDirectory: datadir,
})
if err != nil {
t.Fatalf("Failed to create persistent database: %v", err)
}
Expand Down Expand Up @@ -1829,7 +1832,11 @@ func testRepair(t *testing.T, tt *rewindTest, snapshots bool) {
chain.stopWithoutSaving()

// Start a new blockchain back up and see where the repair leads us
db, err = rawdb.NewLevelDBDatabaseWithFreezer(datadir, 0, 0, datadir, "", false)
db, err = rawdb.Open(rawdb.OpenOptions{
Directory: datadir,
AncientsDirectory: datadir,
})

if err != nil {
t.Fatalf("Failed to reopen persistent database: %v", err)
}
Expand Down Expand Up @@ -1884,7 +1891,11 @@ func TestIssue23496(t *testing.T) {
// Create a temporary persistent database
datadir := t.TempDir()

db, err := rawdb.NewLevelDBDatabaseWithFreezer(datadir, 0, 0, datadir, "", false)
db, err := rawdb.Open(rawdb.OpenOptions{
Directory: datadir,
AncientsDirectory: datadir,
})

if err != nil {
t.Fatalf("Failed to create persistent database: %v", err)
}
Expand Down Expand Up @@ -1944,7 +1955,10 @@ func TestIssue23496(t *testing.T) {
chain.stopWithoutSaving()

// Start a new blockchain back up and see where the repair leads us
db, err = rawdb.NewLevelDBDatabaseWithFreezer(datadir, 0, 0, datadir, "", false)
db, err = rawdb.Open(rawdb.OpenOptions{
Directory: datadir,
AncientsDirectory: datadir,
})
if err != nil {
t.Fatalf("Failed to reopen persistent database: %v", err)
}
Expand Down
5 changes: 4 additions & 1 deletion core/blockchain_sethead_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -1956,7 +1956,10 @@ func testSetHead(t *testing.T, tt *rewindTest, snapshots bool) {
// Create a temporary persistent database
datadir := t.TempDir()

db, err := rawdb.NewLevelDBDatabaseWithFreezer(datadir, 0, 0, datadir, "", false)
db, err := rawdb.Open(rawdb.OpenOptions{
Directory: datadir,
AncientsDirectory: datadir,
})
if err != nil {
t.Fatalf("Failed to create persistent database: %v", err)
}
Expand Down
11 changes: 9 additions & 2 deletions core/blockchain_snapshot_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -61,7 +61,10 @@ func (basic *snapshotTestBasic) prepare(t *testing.T) (*BlockChain, []*types.Blo
// Create a temporary persistent database
datadir := t.TempDir()

db, err := rawdb.NewLevelDBDatabaseWithFreezer(datadir, 0, 0, datadir, "", false)
db, err := rawdb.Open(rawdb.OpenOptions{
Directory: datadir,
AncientsDirectory: datadir,
})
if err != nil {
t.Fatalf("Failed to create persistent database: %v", err)
}
Expand Down Expand Up @@ -250,7 +253,11 @@ func (snaptest *crashSnapshotTest) test(t *testing.T) {
chain.stopWithoutSaving()

// Start a new blockchain back up and see where the repair leads us
newdb, err := rawdb.NewLevelDBDatabaseWithFreezer(snaptest.datadir, 0, 0, snaptest.datadir, "", false)
newdb, err := rawdb.Open(rawdb.OpenOptions{
Directory: snaptest.datadir,
AncientsDirectory: snaptest.datadir,
})

if err != nil {
t.Fatalf("Failed to reopen persistent database: %v", err)
}
Expand Down
25 changes: 5 additions & 20 deletions core/rawdb/database.go
Original file line number Diff line number Diff line change
Expand Up @@ -328,12 +328,14 @@ func hasPreexistingDb(path string) string {
return dbLeveldb
}

// OpenOptions contains the options to apply when opening a database.
// OBS: If AncientsDirectory is empty, it indicates that no freezer is to be used.
type OpenOptions struct {
Type string // "leveldb" | "pebble"
Directory string
AncientsDirectory string
Directory string // the datadir
AncientsDirectory string // the ancients-dir
Namespace string
Cache int
Cache int // Cache size in MiB
Handles int
ReadOnly bool
}
Expand Down Expand Up @@ -379,23 +381,6 @@ func Open(o OpenOptions) (ethdb.Database, error) {
return frdb, nil
}

// NewLevelDBDatabaseWithFreezer creates a persistent key-value database with a
// freezer moving immutable chain segments into cold storage. The passed ancient
// indicates the path of root ancient directory where the chain freezer can be
// opened.
// @deprecated: use Open instead
func NewLevelDBDatabaseWithFreezer(file string, cache int, handles int, ancient string, namespace string, readonly bool) (ethdb.Database, error) {
return Open(OpenOptions{
Type: "leveldb",
Directory: file,
AncientsDirectory: ancient,
Namespace: namespace,
Cache: cache,
Handles: handles,
ReadOnly: readonly,
})
}

type counter uint64

func (c counter) String() string {
Expand Down

0 comments on commit 556cfef

Please sign in to comment.