You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iotdb.apache.org by ji...@apache.org on 2022/03/17 07:47:21 UTC
[iotdb] 23/45: fix some bugs
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 <ch...@360.cn>
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;