Skip to content

Commit 096d9eb

Browse files
CaideyipiJackieTien97
authored andcommitted
Optimized the lock for encoding & compressor's invalidate cache (#16733)
* fix * jr
1 parent 8763d9a commit 096d9eb

File tree

4 files changed

+14
-7
lines changed

4 files changed

+14
-7
lines changed

iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/schema/AlterEncodingCompressorProcedure.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -131,7 +131,7 @@ protected Flow executeFromState(
131131
break;
132132
case CLEAR_CACHE:
133133
LOGGER.info("Invalidate cache of timeSeries {}", requestMessage);
134-
invalidateCache(env, patternTreeBytes, requestMessage, this::setFailure);
134+
invalidateCache(env, patternTreeBytes, requestMessage, this::setFailure, false);
135135
collectPayload4Pipe(env);
136136
return Flow.NO_MORE_STATE;
137137
default:

iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/procedure/impl/schema/DeleteTimeSeriesProcedure.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,7 @@ protected Flow executeFromState(
117117
}
118118
case CLEAN_DATANODE_SCHEMA_CACHE:
119119
LOGGER.info("Invalidate cache of timeSeries {}", requestMessage);
120-
invalidateCache(env, patternTreeBytes, requestMessage, this::setFailure);
120+
invalidateCache(env, patternTreeBytes, requestMessage, this::setFailure, true);
121121
setNextState(DeleteTimeSeriesState.DELETE_DATA);
122122
break;
123123
case DELETE_DATA:
@@ -197,13 +197,14 @@ public static void invalidateCache(
197197
final ConfigNodeProcedureEnv env,
198198
final ByteBuffer patternTreeBytes,
199199
final String requestMessage,
200-
final Consumer<ProcedureException> setFailure) {
200+
final Consumer<ProcedureException> setFailure,
201+
final boolean needLock) {
201202
final Map<Integer, TDataNodeLocation> dataNodeLocationMap =
202203
env.getConfigManager().getNodeManager().getRegisteredDataNodeLocations();
203204
final DataNodeAsyncRequestContext<TInvalidateMatchedSchemaCacheReq, TSStatus> clientHandler =
204205
new DataNodeAsyncRequestContext<>(
205206
CnToDnAsyncRequestType.INVALIDATE_MATCHED_SCHEMA_CACHE,
206-
new TInvalidateMatchedSchemaCacheReq(patternTreeBytes),
207+
new TInvalidateMatchedSchemaCacheReq(patternTreeBytes).setNeedLock(needLock),
207208
dataNodeLocationMap);
208209
CnToDnInternalServiceAsyncRequestManager.getInstance().sendAsyncRequestWithRetry(clientHandler);
209210
final Map<Integer, TSStatus> statusMap = clientHandler.getResponseMap();

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

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -699,7 +699,10 @@ public TSStatus rollbackSchemaBlackList(TRollbackSchemaBlackListReq req) {
699699
@Override
700700
public TSStatus invalidateMatchedSchemaCache(final TInvalidateMatchedSchemaCacheReq req) {
701701
final TreeDeviceSchemaCacheManager cache = TreeDeviceSchemaCacheManager.getInstance();
702-
DataNodeSchemaLockManager.getInstance().takeWriteLock(SchemaLockType.VALIDATE_VS_DELETION_TREE);
702+
if (req.needLock || !req.isSetNeedLock()) {
703+
DataNodeSchemaLockManager.getInstance()
704+
.takeWriteLock(SchemaLockType.VALIDATE_VS_DELETION_TREE);
705+
}
703706
try {
704707
cache.takeWriteLock();
705708
try {
@@ -708,8 +711,10 @@ public TSStatus invalidateMatchedSchemaCache(final TInvalidateMatchedSchemaCache
708711
cache.releaseWriteLock();
709712
}
710713
} finally {
711-
DataNodeSchemaLockManager.getInstance()
712-
.releaseWriteLock(SchemaLockType.VALIDATE_VS_DELETION_TREE);
714+
if (req.needLock || !req.isSetNeedLock()) {
715+
DataNodeSchemaLockManager.getInstance()
716+
.releaseWriteLock(SchemaLockType.VALIDATE_VS_DELETION_TREE);
717+
}
713718
}
714719
return RpcUtils.SUCCESS_STATUS;
715720
}

iotdb-protocol/thrift-datanode/src/main/thrift/datanode.thrift

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -436,6 +436,7 @@ struct TRollbackSchemaBlackListReq {
436436

437437
struct TInvalidateMatchedSchemaCacheReq {
438438
1: required binary pathPatternTree
439+
2: optional bool needLock
439440
}
440441

441442
struct TFetchSchemaBlackListReq {

0 commit comments

Comments
 (0)