@@ -15,8 +15,8 @@ import std/[os, sequtils], rocksdb, chronicles
1515export rocksdb
1616
1717const
18- BaseFolder = " nimbus"
19- DataFolder = " aristo "
18+ LegacyFolder = " nimbus" / " aristo " # pre-alpha
19+ DbFolder = " ecdb " # execution client db - must not collide with consensus
2020
2121type
2222 RocksDbInstanceRef * = ref object # # Shared handle to a single rocksdb instance
3232 closes* : int
3333 families* : seq [ColFamilyReadWrite ]
3434
35- func dataDir * (baseDir: string ): string =
36- baseDir / BaseFolder / DataFolder
35+ func ecdbDir (baseDir: string ): string =
36+ baseDir / DbFolder
3737
38- func dataDir * (rdb: RocksDbInstanceRef ): string =
39- rdb.baseDir.dataDir
38+ func ecdbDir (rdb: RocksDbInstanceRef ): string =
39+ rdb.baseDir.ecdbDir
4040
4141proc isClosed * (session: SharedWriteBatchRef ): bool =
4242 session == nil or session.batch.isClosed ()
@@ -80,20 +80,29 @@ proc open*(
8080 dbOpts: DbOptionsRef ,
8181 cfs: openArray [(string , ColFamilyOptionsRef )],
8282): Result [RocksDbInstanceRef , string ] =
83- let dataDir = baseDir.dataDir
83+
84+ let ecdbDir = baseDir.ecdbDir
85+
86+ if not dirExists (ecdbDir):
87+ let legacyDir = baseDir / LegacyFolder
88+ if dirExists (legacyDir):
89+ try :
90+ moveDir (legacyDir, ecdbDir)
91+ except CatchableError as exc:
92+ return err (" Found legacy database directory but cannot move it: " & exc.msg)
8493
8594 try :
86- dataDir .createDir
95+ ecdbDir .createDir
8796 except CatchableError as exc:
88- return err (" Cannot create database directory " & dataDir & " : " & exc.msg)
97+ return err (" Cannot create database directory " & ecdbDir & " : " & exc.msg)
8998
9099 var
91100 descs = cfs.mapIt (it[0 ].initColFamilyDescriptor (it[1 ]))
92101 cfNames = cfs.mapIt (it[0 ])
93102
94103 # Must include all column families or openRocksDb will fail
95- if (dataDir / " CURRENT" ).fileExists:
96- let hdCFs = dataDir .listColumnFamilies.valueOr:
104+ if (ecdbDir / " CURRENT" ).fileExists:
105+ let hdCFs = ecdbDir .listColumnFamilies.valueOr:
97106 raiseAssert " Cannot read existing CFs: " & error
98107
99108 for name in hdCFs:
@@ -103,7 +112,7 @@ proc open*(
103112 )
104113
105114 ok RocksDbInstanceRef (
106- db: ? openRocksDb (dataDir , dbOpts, columnFamilies = descs), baseDir: baseDir
115+ db: ? openRocksDb (ecdbDir , dbOpts, columnFamilies = descs), baseDir: baseDir
107116 )
108117
109118proc close * (rdb: RocksDbInstanceRef , eradicate = false ) =
@@ -113,7 +122,7 @@ proc close*(rdb: RocksDbInstanceRef, eradicate = false) =
113122
114123 if eradicate:
115124 try :
116- rdb.dataDir .removeDir
125+ rdb.ecdbDir .removeDir
117126
118127 # Remove the base folder if it is empty
119128 block done:
0 commit comments