You are viewing a plain text version of this content. The canonical link for it is here.
Posted to reviews@iotdb.apache.org by "VGalaxies (via GitHub)" <gi...@apache.org> on 2023/11/13 15:07:21 UTC
[PR] Pipe: skip pipe CN meta sync after successful synchronization when having no pipe [iotdb]
VGalaxies opened a new pull request, #11532:
URL: https://github.com/apache/iotdb/pull/11532
## Description
In order to fix the issue that `sync` operation logs are still printed when no pipe exists in CN, like:
```text
2023-11-13 21:01:36,412 [ProcExecWorker-1] INFO o.a.i.c.p.ProcedureExecutor:394 - pid=1, state=SUCCESS; org.apache.iotdb.confignode.procedure.impl.pipe.runtime.PipeMetaSyncProcedure finished in 55ms successfully.
```
this PR adds a variable `isLastEmptyPipeSyncSuccessful` in the cron job `sync`. This variable is used to record whether the `sync` operation was successful last time when there was no pipe in CN. If successful, before the next `sync` operation, if there is still no pipe in CN, it means that the pipe metadata in DN and CN have been synchronized, and this round of `sync` can be safely skipped.
The above logic will reset the `isLastEmptyPipeSyncSuccessful` variable when user creates pipe tasks, allowing the cron job `sync` to execute normally.
In order to check whether the `sync` operation is successful, it is also necessary to change the logic of executing `PipeHandleMetaChangeProcedure` from asynchronous to synchronous.
<!--
In each section, please describe design decisions made, including:
- Choice of algorithms
- Behavioral aspects. What configuration values are acceptable? How are corner cases and error
conditions handled, such as when there are insufficient resources?
- Class organization and design (how the logic is split between classes, inheritance, composition,
design patterns)
- Method organization and design (how the logic is split between methods, parameters and return types)
- Naming (class, method, API, configuration, HTTP endpoint, names of emitted metrics)
-->
<!-- It's good to describe an alternative design (or mention an alternative name) for every design
(or naming) decision point and compare the alternatives with the designs that you've implemented
(or the names you've chosen) to highlight the advantages of the chosen designs and names. -->
<!-- If there was a discussion of the design of the feature implemented in this PR elsewhere
(e. g. a "Proposal" issue, any other issue, or a thread in the development mailing list),
link to that discussion from this PR description and explain what have changed in your final design
compared to your original proposal or the consensus version in the end of the discussion.
If something hasn't changed since the original discussion, you can omit a detailed discussion of
those aspects of the design here, perhaps apart from brief mentioning for the sake of readability
of this PR description. -->
<!-- Some of the aspects mentioned above may be omitted for simple and small changes. -->
<hr>
This PR has:
- [x] been self-reviewed.
- [ ] concurrent read
- [ ] concurrent write
- [ ] concurrent read and write
- [ ] added documentation for new or modified features or behaviors.
- [ ] added Javadocs for most classes and all non-trivial methods.
- [ ] added or updated version, __license__, or notice information
- [x] added comments explaining the "why" and the intent of the code wherever would not be obvious
for an unfamiliar reader.
- [ ] added unit tests or modified existing tests to cover new code paths, ensuring the threshold
for code coverage.
- [ ] added integration tests.
- [x] been tested in a test IoTDB cluster.
<!-- Check the items by putting "x" in the brackets for the done things. Not all of these items
apply to every PR. Remove the items which are not done or not relevant to the PR. None of the items
from the checklist above are strictly necessary, but it would be very helpful if you at least
self-review the PR. -->
<hr>
##### Key changed/added classes (or packages if there are too many classes) in this PR
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: reviews-unsubscribe@iotdb.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] Pipe: skip pipe CN meta sync after successful synchronization when having no pipe [iotdb]
Posted by "Caideyipi (via GitHub)" <gi...@apache.org>.
Caideyipi commented on code in PR #11532:
URL: https://github.com/apache/iotdb/pull/11532#discussion_r1392539754
##########
iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/manager/pipe/runtime/PipeMetaSyncer.java:
##########
@@ -87,9 +94,21 @@ public synchronized void start() {
}
private synchronized void sync() {
+ if (!configManager.getPipeManager().getPipeTaskCoordinator().hasAnyPipe()
Review Comment:
Now a big problem emerges that if we observe the task info as "empty", it doesn't mean that it must be empty when we execute "metasync", because since there is no lock to the procedure here, to extreme there might be a "create pipe" slipped through the procedures between the check and the meta sync...
##########
iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/manager/pipe/runtime/PipeMetaSyncer.java:
##########
@@ -104,16 +123,42 @@ private synchronized void sync() {
pipeAutoRestartRoundCounter.set(0);
}
- final TSStatus status = procedureManager.pipeMetaSync();
-
- if (somePipesNeedRestarting
- && status.getCode() == TSStatusCode.SUCCESS_STATUS.getStatusCode()) {
- handleSuccessfulRestartWithLock();
- procedureManager.pipeHandleMetaChange(true, false);
- }
+ final TSStatus metaSyncStatus = procedureManager.pipeMetaSync();
+
+ if (metaSyncStatus.getCode() == TSStatusCode.SUCCESS_STATUS.getStatusCode()) {
+ boolean canSkipNextSync = false;
+
+ if (somePipesNeedRestarting) {
+ final boolean isRestartSuccessful = handleSuccessfulRestartWithLock();
+ final TSStatus handleMetaChangeStatus =
+ procedureManager.pipeHandleMetaChangeWithBlock(true, false);
+ if (!configManager.getPipeManager().getPipeTaskCoordinator().hasAnyPipe()
+ && isRestartSuccessful
+ && handleMetaChangeStatus.getCode() == TSStatusCode.SUCCESS_STATUS.getStatusCode()) {
+ canSkipNextSync = true;
+ }
+ } else {
+ if (!configManager.getPipeManager().getPipeTaskCoordinator().hasAnyPipe()) {
+ canSkipNextSync = true;
+ }
+ }
- if (status.getCode() != TSStatusCode.SUCCESS_STATUS.getStatusCode()) {
- procedureManager.pipeHandleMetaChange(true, true);
+ // When the sync operation succeeded while there was no pipe in CN, we need to set the
+ // isLastEmptyPipeSyncSuccessful variable and record the version of PipeTaskInfo at that time.
+ if (canSkipNextSync) {
+ LOGGER.info("Skip next round of sync if no pipe and no modification on PipeTaskInfo.");
Review Comment:
Actually, it skips all rounds of syncs until one pipe is created, not just next round
##########
iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/manager/pipe/runtime/PipeMetaSyncer.java:
##########
@@ -87,9 +94,21 @@ public synchronized void start() {
}
private synchronized void sync() {
+ if (!configManager.getPipeManager().getPipeTaskCoordinator().hasAnyPipe()
+ && isLastEmptyPipeSyncSuccessful
+ && lastEmptyPipeSyncWriteLockAcquiredCount
Review Comment:
And the pipe heartbeat won't produce "pipeTaskInfoLockCount" if it has nothing to do with the update of the CN pipe task metas(*^_^*)
##########
iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/manager/pipe/runtime/PipeMetaSyncer.java:
##########
@@ -87,9 +94,21 @@ public synchronized void start() {
}
private synchronized void sync() {
+ if (!configManager.getPipeManager().getPipeTaskCoordinator().hasAnyPipe()
+ && isLastEmptyPipeSyncSuccessful
+ && lastEmptyPipeSyncWriteLockAcquiredCount
Review Comment:
I think the two things can be solved without extra lock, if we just check if the nextCount == lastCount + 1 if we executed the metasync, or nextCount == lastCount if without it. If not equals, some other pipe procedures must interfere here, then we must push the meta sync continually.
##########
iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/manager/pipe/runtime/PipeMetaSyncer.java:
##########
@@ -87,9 +94,21 @@ public synchronized void start() {
}
private synchronized void sync() {
+ if (!configManager.getPipeManager().getPipeTaskCoordinator().hasAnyPipe()
+ && isLastEmptyPipeSyncSuccessful
+ && lastEmptyPipeSyncWriteLockAcquiredCount
Review Comment:
Besides, an ABA might just happen between the two read/write of the "lastLockCount", out of the "metasync" procedure... Also to extreme, it may just happen between 2 arbitrary continuous lines here... Then “this count” == “last count” doesn't actually guarantee the absence of "ABA".
##########
iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/manager/pipe/runtime/PipeMetaSyncer.java:
##########
@@ -87,9 +94,21 @@ public synchronized void start() {
}
private synchronized void sync() {
+ if (!configManager.getPipeManager().getPipeTaskCoordinator().hasAnyPipe()
+ && isLastEmptyPipeSyncSuccessful
+ && lastEmptyPipeSyncWriteLockAcquiredCount
Review Comment:
Besides, an ABA might just happen between the two read/write of the "lastLockCount", out of the "metasync" procedure... Also to extreme, it may just happen between 2 arbitrary continuous lines here... Then “this count” == “last count” doesn't actually guarantee the absence of "ABA".
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: reviews-unsubscribe@iotdb.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] Pipe: skip pipe CN meta sync after successful synchronization when having no pipe [iotdb]
Posted by "Caideyipi (via GitHub)" <gi...@apache.org>.
Caideyipi commented on code in PR #11532:
URL: https://github.com/apache/iotdb/pull/11532#discussion_r1392553122
##########
iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/manager/pipe/runtime/PipeMetaSyncer.java:
##########
@@ -104,16 +117,39 @@ private synchronized void sync() {
pipeAutoRestartRoundCounter.set(0);
}
- final TSStatus status = procedureManager.pipeMetaSync();
+ final TSStatus metaSyncStatus = procedureManager.pipeMetaSync();
if (somePipesNeedRestarting
Review Comment:
Of course yes...
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: reviews-unsubscribe@iotdb.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] Pipe: skip pipe CN meta sync after successful synchronization when having no pipe [iotdb]
Posted by "SteveYurongSu (via GitHub)" <gi...@apache.org>.
SteveYurongSu commented on code in PR #11532:
URL: https://github.com/apache/iotdb/pull/11532#discussion_r1396630100
##########
iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/persistence/pipe/PipeTaskInfo.java:
##########
@@ -80,12 +84,51 @@ private void releaseReadLock() {
private void acquireWriteLock() {
pipeMetaKeeper.acquireWriteLock();
+ pipeTaskInfoVersion.increaseLatestVersion();
}
private void releaseWriteLock() {
pipeMetaKeeper.releaseWriteLock();
}
+ /////////////////////////////// Version ///////////////////////////////
+
+ private class PipeTaskInfoVersion {
Review Comment:
It is recommended to remove this class from PipeTaskInfo, as Info records content that needs to be persisted to the consensus layer. PipeTaskInfoVersion can be placed in the PipeTaskCoordinator class (or its package)
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: reviews-unsubscribe@iotdb.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] Pipe: skip pipe CN meta sync after successful synchronization when having no pipe [iotdb]
Posted by "Caideyipi (via GitHub)" <gi...@apache.org>.
Caideyipi commented on code in PR #11532:
URL: https://github.com/apache/iotdb/pull/11532#discussion_r1392559574
##########
iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/manager/pipe/runtime/PipeMetaSyncer.java:
##########
@@ -104,16 +117,39 @@ private synchronized void sync() {
pipeAutoRestartRoundCounter.set(0);
}
- final TSStatus status = procedureManager.pipeMetaSync();
+ final TSStatus metaSyncStatus = procedureManager.pipeMetaSync();
if (somePipesNeedRestarting
Review Comment:
Actually if the "successfullyRestart" is true, at least one pipe has a high probablity to exist... Namely, an empty pipe task won't let the "sync" method to reach "Successfully restart". Also, deleting the judgment won't cost much, at most the extra sync.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: reviews-unsubscribe@iotdb.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] Pipe: skip pipe CN meta sync after successful synchronization when having no pipe [iotdb]
Posted by "VGalaxies (via GitHub)" <gi...@apache.org>.
VGalaxies commented on PR #11532:
URL: https://github.com/apache/iotdb/pull/11532#issuecomment-1809945155
The PR description needs to be updated later...
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: reviews-unsubscribe@iotdb.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] Pipe: skip pipe CN meta sync after successful synchronization when having no pipe [iotdb]
Posted by "Caideyipi (via GitHub)" <gi...@apache.org>.
Caideyipi commented on code in PR #11532:
URL: https://github.com/apache/iotdb/pull/11532#discussion_r1392445972
##########
iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/manager/pipe/runtime/PipeMetaSyncer.java:
##########
@@ -104,16 +123,42 @@ private synchronized void sync() {
pipeAutoRestartRoundCounter.set(0);
}
- final TSStatus status = procedureManager.pipeMetaSync();
-
- if (somePipesNeedRestarting
- && status.getCode() == TSStatusCode.SUCCESS_STATUS.getStatusCode()) {
- handleSuccessfulRestartWithLock();
- procedureManager.pipeHandleMetaChange(true, false);
- }
+ final TSStatus metaSyncStatus = procedureManager.pipeMetaSync();
+
+ if (metaSyncStatus.getCode() == TSStatusCode.SUCCESS_STATUS.getStatusCode()) {
+ boolean canSkipNextSync = false;
+
+ if (somePipesNeedRestarting) {
+ final boolean isRestartSuccessful = handleSuccessfulRestartWithLock();
+ final TSStatus handleMetaChangeStatus =
+ procedureManager.pipeHandleMetaChangeWithBlock(true, false);
+ if (!configManager.getPipeManager().getPipeTaskCoordinator().hasAnyPipe()
+ && isRestartSuccessful
+ && handleMetaChangeStatus.getCode() == TSStatusCode.SUCCESS_STATUS.getStatusCode()) {
+ canSkipNextSync = true;
+ }
+ } else {
+ if (!configManager.getPipeManager().getPipeTaskCoordinator().hasAnyPipe()) {
+ canSkipNextSync = true;
+ }
+ }
- if (status.getCode() != TSStatusCode.SUCCESS_STATUS.getStatusCode()) {
- procedureManager.pipeHandleMetaChange(true, true);
+ // When the sync operation succeeded while there was no pipe in CN, we need to set the
+ // isLastEmptyPipeSyncSuccessful variable and record the version of PipeTaskInfo at that time.
+ if (canSkipNextSync) {
+ LOGGER.info("Skip next round of sync if no pipe and no modification on PipeTaskInfo.");
Review Comment:
Actually, it skips all rounds of syncs until one pipe is created, not just the next round
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: reviews-unsubscribe@iotdb.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] Pipe: skip pipe CN meta sync after successful synchronization when having no pipe [iotdb]
Posted by "Caideyipi (via GitHub)" <gi...@apache.org>.
Caideyipi commented on code in PR #11532:
URL: https://github.com/apache/iotdb/pull/11532#discussion_r1392149312
##########
iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/manager/pipe/runtime/PipeMetaSyncer.java:
##########
@@ -104,16 +117,39 @@ private synchronized void sync() {
pipeAutoRestartRoundCounter.set(0);
}
- final TSStatus status = procedureManager.pipeMetaSync();
+ final TSStatus metaSyncStatus = procedureManager.pipeMetaSync();
if (somePipesNeedRestarting
Review Comment:
Besides, if there are "stopped" pipe, these pipe may be automatically restarted. Yet, there will be no pipe to restart given that there are no pipes in the cluster.
##########
iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/manager/pipe/runtime/PipeMetaSyncer.java:
##########
@@ -104,16 +117,39 @@ private synchronized void sync() {
pipeAutoRestartRoundCounter.set(0);
}
- final TSStatus status = procedureManager.pipeMetaSync();
+ final TSStatus metaSyncStatus = procedureManager.pipeMetaSync();
if (somePipesNeedRestarting
- && status.getCode() == TSStatusCode.SUCCESS_STATUS.getStatusCode()) {
- handleSuccessfulRestartWithLock();
- procedureManager.pipeHandleMetaChange(true, false);
+ && metaSyncStatus.getCode() == TSStatusCode.SUCCESS_STATUS.getStatusCode()) {
+ final boolean isRestartSuccessful = handleSuccessfulRestartWithLock();
+ final TSStatus handleMetaChangeStatus =
+ procedureManager.pipeHandleMetaChangeWithBlock(true, false);
+ if (!configManager.getPipeManager().getPipeTaskCoordinator().hasAnyPipe()
+ && isRestartSuccessful
+ && handleMetaChangeStatus.getCode() == TSStatusCode.SUCCESS_STATUS.getStatusCode()) {
+ LOGGER.info(
+ "set isLastEmptyPipeSyncSuccessful to true, skip next round of sync if no pipe");
+ isLastEmptyPipeSyncSuccessful = true;
Review Comment:
The user behaviour may cause "ABA" problem, such as "empty sync, create, start, drop(partially succeed on some DN)", and the subsequent syncs may be skipped, then the failed DN may never know the drop command and will keep sending data forever.
I think a meta sync cannot be skipped if there are user manual commands after last empty sync.
##########
iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/manager/pipe/runtime/PipeMetaSyncer.java:
##########
@@ -104,16 +117,39 @@ private synchronized void sync() {
pipeAutoRestartRoundCounter.set(0);
}
- final TSStatus status = procedureManager.pipeMetaSync();
+ final TSStatus metaSyncStatus = procedureManager.pipeMetaSync();
if (somePipesNeedRestarting
Review Comment:
The "SUCCESS_STATUS" may be compacted to a single "if", and the "!" may be an "else".
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: reviews-unsubscribe@iotdb.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] Pipe: skip pipe CN meta sync after successful synchronization when having no pipe [iotdb]
Posted by "SteveYurongSu (via GitHub)" <gi...@apache.org>.
SteveYurongSu merged PR #11532:
URL: https://github.com/apache/iotdb/pull/11532
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: reviews-unsubscribe@iotdb.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] Pipe: skip pipe CN meta sync after successful synchronization when having no pipe [iotdb]
Posted by "Caideyipi (via GitHub)" <gi...@apache.org>.
Caideyipi commented on code in PR #11532:
URL: https://github.com/apache/iotdb/pull/11532#discussion_r1396629228
##########
iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/persistence/pipe/PipeTaskInfo.java:
##########
@@ -80,12 +84,51 @@ private void releaseReadLock() {
private void acquireWriteLock() {
pipeMetaKeeper.acquireWriteLock();
+ pipeTaskInfoVersion.increaseLatestVersion();
}
private void releaseWriteLock() {
pipeMetaKeeper.releaseWriteLock();
}
+ /////////////////////////////// Version ///////////////////////////////
+
+ private class PipeTaskInfoVersion {
+
+ private final AtomicLong latestVersion;
+ private long lastSyncedVersion;
+ private boolean isLastSyncedPipeTaskInfoEmpty;
+
+ public PipeTaskInfoVersion() {
+ this.latestVersion = new AtomicLong(0);
+ this.lastSyncedVersion = 0;
+ this.isLastSyncedPipeTaskInfoEmpty = false;
+ }
+
+ public void increaseLatestVersion() {
+ latestVersion.incrementAndGet();
+ }
+
+ public void updateLastSyncedVersion() {
+ lastSyncedVersion = latestVersion.get();
+ isLastSyncedPipeTaskInfoEmpty = pipeMetaKeeper.isEmpty();
+ }
+
+ public boolean isEmptySynced() {
Review Comment:
isEmptySynced infers not only the very last empty sync, but the empty pipeMeta now. Maybe simply call it "canSkipNextSync"?
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: reviews-unsubscribe@iotdb.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] Pipe: skip pipe CN meta sync after successful synchronization when having no pipe [iotdb]
Posted by "VGalaxies (via GitHub)" <gi...@apache.org>.
VGalaxies commented on code in PR #11532:
URL: https://github.com/apache/iotdb/pull/11532#discussion_r1392360996
##########
iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/manager/pipe/runtime/PipeMetaSyncer.java:
##########
@@ -104,16 +117,39 @@ private synchronized void sync() {
pipeAutoRestartRoundCounter.set(0);
}
- final TSStatus status = procedureManager.pipeMetaSync();
+ final TSStatus metaSyncStatus = procedureManager.pipeMetaSync();
if (somePipesNeedRestarting
- && status.getCode() == TSStatusCode.SUCCESS_STATUS.getStatusCode()) {
- handleSuccessfulRestartWithLock();
- procedureManager.pipeHandleMetaChange(true, false);
+ && metaSyncStatus.getCode() == TSStatusCode.SUCCESS_STATUS.getStatusCode()) {
+ final boolean isRestartSuccessful = handleSuccessfulRestartWithLock();
+ final TSStatus handleMetaChangeStatus =
+ procedureManager.pipeHandleMetaChangeWithBlock(true, false);
+ if (!configManager.getPipeManager().getPipeTaskCoordinator().hasAnyPipe()
+ && isRestartSuccessful
+ && handleMetaChangeStatus.getCode() == TSStatusCode.SUCCESS_STATUS.getStatusCode()) {
+ LOGGER.info(
+ "set isLastEmptyPipeSyncSuccessful to true, skip next round of sync if no pipe");
+ isLastEmptyPipeSyncSuccessful = true;
Review Comment:
Good catch, I added an extra variable to determine if `PipeTaskInfo` has been modified between two empty sync.
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: reviews-unsubscribe@iotdb.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org
Re: [PR] Pipe: skip pipe CN meta sync after successful synchronization when having no pipe [iotdb]
Posted by "VGalaxies (via GitHub)" <gi...@apache.org>.
VGalaxies commented on code in PR #11532:
URL: https://github.com/apache/iotdb/pull/11532#discussion_r1392358213
##########
iotdb-core/confignode/src/main/java/org/apache/iotdb/confignode/manager/pipe/runtime/PipeMetaSyncer.java:
##########
@@ -104,16 +117,39 @@ private synchronized void sync() {
pipeAutoRestartRoundCounter.set(0);
}
- final TSStatus status = procedureManager.pipeMetaSync();
+ final TSStatus metaSyncStatus = procedureManager.pipeMetaSync();
if (somePipesNeedRestarting
Review Comment:
> Besides, if there are "stopped" pipe, these pipe may be automatically restarted. Yet, there will be no pipe to restart given that there are no pipes in the cluster.
When there are "stopped" pipes in the cluster, should the result of `PipeTaskCoordinator.hasAnyPipe()` be true?
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: reviews-unsubscribe@iotdb.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org