This is an automated email from the ASF dual-hosted git repository. jianyun pushed a commit to branch rocksdb/dev in repository https://gitbox.apache.org/repos/asf/iotdb.git
commit a54d080049b66372f6a926152c0d39373e216b4c Author: chengjianyun <[email protected]> AuthorDate: Thu Mar 10 11:52:04 2022 +0800 fix some bugs --- .../apache/iotdb/db/metadata/rocksdb/MRocksDBManager.java | 15 ++++++++++++--- .../iotdb/db/metadata/rocksdb/MetaDataTransfer.java | 3 +++ .../db/metadata/rocksdb/RocksDBReadWriteHandler.java | 4 +++- 3 files changed, 18 insertions(+), 4 deletions(-) diff --git a/server/src/main/java/org/apache/iotdb/db/metadata/rocksdb/MRocksDBManager.java b/server/src/main/java/org/apache/iotdb/db/metadata/rocksdb/MRocksDBManager.java index 671fcbe..e2375c3 100644 --- a/server/src/main/java/org/apache/iotdb/db/metadata/rocksdb/MRocksDBManager.java +++ b/server/src/main/java/org/apache/iotdb/db/metadata/rocksdb/MRocksDBManager.java @@ -833,9 +833,18 @@ public class MRocksDBManager implements IMetaManager { levelKey, RocksDBMNodeType.STORAGE_GROUP, DEFAULT_NODE_VALUE); } } else { - boolean hasChild = !keyCheckResult.getResult(RocksDBMNodeType.STORAGE_GROUP); - throw new StorageGroupAlreadySetException( - RocksDBUtils.concatNodesName(nodes, 0, i), hasChild); + if (i >= len - 1) { + if (keyCheckResult.getExistType() == RocksDBMNodeType.STORAGE_GROUP) { + throw new StorageGroupAlreadySetException(storageGroup.getFullPath()); + } else { + throw new PathAlreadyExistException(storageGroup.getFullPath()); + } + } else { + if (keyCheckResult.getExistType() != RocksDBMNodeType.INTERNAL) { + throw new StorageGroupAlreadySetException( + RocksDBUtils.concatNodesName(nodes, 0, i), true); + } + } } } finally { lock.unlock(); diff --git a/server/src/main/java/org/apache/iotdb/db/metadata/rocksdb/MetaDataTransfer.java b/server/src/main/java/org/apache/iotdb/db/metadata/rocksdb/MetaDataTransfer.java index c3c8906..89e59d6 100644 --- a/server/src/main/java/org/apache/iotdb/db/metadata/rocksdb/MetaDataTransfer.java +++ b/server/src/main/java/org/apache/iotdb/db/metadata/rocksdb/MetaDataTransfer.java @@ -320,6 +320,9 @@ public class MetaDataTransfer { .forEach( sgNode -> { try { + if (sgNode.getPartialPath().getFullPath() == "root.iotcloud") { + return; + } rocksDBManager.setStorageGroup(sgNode.getPartialPath()); if (sgNode.getDataTTL() > 0) { rocksDBManager.setTTL(sgNode.getPartialPath(), sgNode.getDataTTL()); diff --git a/server/src/main/java/org/apache/iotdb/db/metadata/rocksdb/RocksDBReadWriteHandler.java b/server/src/main/java/org/apache/iotdb/db/metadata/rocksdb/RocksDBReadWriteHandler.java index 69d8e7e..cac86e6 100644 --- a/server/src/main/java/org/apache/iotdb/db/metadata/rocksdb/RocksDBReadWriteHandler.java +++ b/server/src/main/java/org/apache/iotdb/db/metadata/rocksdb/RocksDBReadWriteHandler.java @@ -268,12 +268,14 @@ public class RocksDBReadWriteHandler { if (!rocksDB.keyMayExist(key, holder)) { exist = false; } else { - if (holder.getValue() != null) { + if (holder.getValue() == null) { byte[] value = rocksDB.get(key); if (value != null) { exist = true; holder.setValue(value); } + } else { + exist = true; } } return exist;
