Skip to content

Commit 9834d90

Browse files
authored
Remove unnecessary synchronization for IoTConsensus memeory management (#16049)
1 parent 2459e52 commit 9834d90

2 files changed

Lines changed: 14 additions & 22 deletions

File tree

iotdb-core/consensus/src/main/java/org/apache/iotdb/consensus/iot/logdispatcher/IoTConsensusMemoryManager.java

Lines changed: 8 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -42,13 +42,11 @@ private IoTConsensusMemoryManager() {
4242
}
4343

4444
public boolean reserve(IndexedConsensusRequest request, boolean fromQueue) {
45-
synchronized (request) {
46-
long prevRef = request.incRef();
47-
if (prevRef == 0) {
48-
return reserve(request.getMemorySize(), fromQueue);
49-
} else {
50-
return true;
51-
}
45+
long prevRef = request.incRef();
46+
if (prevRef == 0) {
47+
return reserve(request.getMemorySize(), fromQueue);
48+
} else {
49+
return true;
5250
}
5351
}
5452

@@ -68,11 +66,9 @@ public boolean reserve(long size, boolean fromQueue) {
6866
}
6967

7068
public void free(IndexedConsensusRequest request, boolean fromQueue) {
71-
synchronized (request) {
72-
long prevRef = request.decRef();
73-
if (prevRef == 0) {
74-
free(request.getMemorySize(), fromQueue);
75-
}
69+
long prevRef = request.decRef();
70+
if (prevRef == 1) {
71+
free(request.getMemorySize(), fromQueue);
7672
}
7773
}
7874

iotdb-core/consensus/src/main/java/org/apache/iotdb/consensus/iot/logdispatcher/LogDispatcher.java

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -322,22 +322,18 @@ private void processStopped() {
322322
}
323323
long requestSize = 0;
324324
for (IndexedConsensusRequest indexedConsensusRequest : pendingEntries) {
325-
synchronized (indexedConsensusRequest) {
326-
long prevRef = indexedConsensusRequest.decRef();
327-
if (prevRef == 1) {
328-
requestSize += indexedConsensusRequest.getMemorySize();
329-
}
325+
long prevRef = indexedConsensusRequest.decRef();
326+
if (prevRef == 1) {
327+
requestSize += indexedConsensusRequest.getMemorySize();
330328
}
331329
}
332330
pendingEntries.clear();
333331
iotConsensusMemoryManager.free(requestSize, true);
334332
requestSize = 0;
335333
for (IndexedConsensusRequest indexedConsensusRequest : bufferedEntries) {
336-
synchronized (indexedConsensusRequest) {
337-
long prevRef = indexedConsensusRequest.decRef();
338-
if (prevRef == 1) {
339-
requestSize += indexedConsensusRequest.getMemorySize();
340-
}
334+
long prevRef = indexedConsensusRequest.decRef();
335+
if (prevRef == 1) {
336+
requestSize += indexedConsensusRequest.getMemorySize();
341337
}
342338
}
343339
iotConsensusMemoryManager.free(requestSize, true);

0 commit comments

Comments
 (0)