Skip to content

Commit e909759

Browse files
Merge pull request #4658 from guoquanwu/fix/rocksdb-convert-compatible-with-cpv2
fix(db): DBConvert tool compatible with CheckpointV2
2 parents 3cc557e + cadba1e commit e909759

1 file changed

Lines changed: 19 additions & 2 deletions

File tree

framework/src/main/java/org/tron/program/DBConvert.java

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@ public class DBConvert implements Callable<Boolean> {
5858
private final long startTime;
5959
private static final int CPUS = Runtime.getRuntime().availableProcessors();
6060
private static final int BATCH = 256;
61+
private static final String CHECKPOINT_V2_DIR_NAME = "checkpoint";
6162

6263

6364
@Override
@@ -110,8 +111,18 @@ public static int run(String[] args) {
110111
return 404;
111112
}
112113
List<File> files = Arrays.stream(Objects.requireNonNull(dbDirectory.listFiles()))
113-
.filter(File::isDirectory).collect(
114-
Collectors.toList());
114+
.filter(File::isDirectory)
115+
.filter(e -> !CHECKPOINT_V2_DIR_NAME.equals(e.getName()))
116+
.collect(Collectors.toList());
117+
118+
// add checkpoint v2 convert
119+
File cpV2Dir = new File(Paths.get(dbSrc, CHECKPOINT_V2_DIR_NAME).toString());
120+
List<File> cpList = null;
121+
if (cpV2Dir.exists()) {
122+
cpList = Arrays.stream(Objects.requireNonNull(cpV2Dir.listFiles()))
123+
.filter(File::isDirectory)
124+
.collect(Collectors.toList());
125+
}
115126

116127
if (files.isEmpty()) {
117128
logger.info("{} does not contain any database.", dbSrc);
@@ -128,6 +139,12 @@ public static int run(String[] args) {
128139
esDb.allowCoreThreadTimeOut(true);
129140

130141
files.forEach(f -> res.add(esDb.submit(new DBConvert(dbSrc, dbDst, f.getName()))));
142+
// convert v2
143+
if (cpList != null) {
144+
cpList.forEach(f -> res.add(esDb.submit(
145+
new DBConvert(dbSrc + "/" + CHECKPOINT_V2_DIR_NAME,
146+
dbDst + "/" + CHECKPOINT_V2_DIR_NAME, f.getName()))));
147+
}
131148

132149
int fails = res.size();
133150

0 commit comments

Comments
 (0)