Skip to content

Commit 04361a2

Browse files
committed
partial
1 parent 07ef11e commit 04361a2

File tree

1 file changed

+13
-5
lines changed

1 file changed

+13
-5
lines changed

iotdb-core/datanode/src/main/java/org/apache/iotdb/db/protocol/thrift/impl/DataNodeInternalRPCServiceImpl.java

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -621,13 +621,21 @@ public TSStatus rollbackSchemaBlackList(TRollbackSchemaBlackListReq req) {
621621
@Override
622622
public TSStatus invalidateMatchedSchemaCache(TInvalidateMatchedSchemaCacheReq req) {
623623
DataNodeSchemaCache cache = DataNodeSchemaCache.getInstance();
624-
DataNodeSchemaLockManager.getInstance().takeWriteLock(SchemaLockType.VALIDATE_VS_DELETION);
625-
cache.takeWriteLock();
624+
if (req.needLock || !req.isSetNeedLock()) {
625+
DataNodeSchemaLockManager.getInstance().takeWriteLock(SchemaLockType.VALIDATE_VS_DELETION);
626+
}
626627
try {
627-
cache.invalidate(PathPatternTree.deserialize(req.pathPatternTree).getAllPathPatterns());
628+
cache.takeWriteLock();
629+
try {
630+
cache.invalidate(PathPatternTree.deserialize(req.pathPatternTree).getAllPathPatterns());
631+
} finally {
632+
cache.releaseWriteLock();
633+
}
628634
} finally {
629-
cache.releaseWriteLock();
630-
DataNodeSchemaLockManager.getInstance().releaseWriteLock(SchemaLockType.VALIDATE_VS_DELETION);
635+
if (req.needLock || !req.isSetNeedLock()) {
636+
DataNodeSchemaLockManager.getInstance()
637+
.releaseWriteLock(SchemaLockType.VALIDATE_VS_DELETION);
638+
}
631639
}
632640
return RpcUtils.SUCCESS_STATUS;
633641
}

0 commit comments

Comments
 (0)