>From Murtadha Hubail <[email protected]>: Murtadha Hubail has submitted this change. ( https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/17869 )
Change subject: [ASTERIXDB-3282][STO] Exclude invalid indexes from replication checkpoint ...................................................................... [ASTERIXDB-3282][STO] Exclude invalid indexes from replication checkpoint - user model changes: no - storage format changes: no - interface changes: yes Details: - When attempting to checkpoint replicated indexes, exclude invalid indexes since they might be in the process of being replciated for the first time. Change-Id: I589b8934d5ab297a0a1507130857929469e8510d Reviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/17869 Integration-Tests: Jenkins <[email protected]> Tested-by: Jenkins <[email protected]> Reviewed-by: Ali Alsuliman <[email protected]> --- M asterixdb/asterix-common/src/main/java/org/apache/asterix/common/storage/IIndexCheckpointManager.java M asterixdb/asterix-app/src/main/java/org/apache/asterix/app/nc/IndexCheckpointManager.java M asterixdb/asterix-replication/src/main/java/org/apache/asterix/replication/logging/RemoteLogsNotifier.java 3 files changed, 39 insertions(+), 1 deletion(-) Approvals: Ali Alsuliman: Looks good to me, approved Jenkins: Verified; Verified Anon. E. Moose #1000171: diff --git a/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/nc/IndexCheckpointManager.java b/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/nc/IndexCheckpointManager.java index 290734f..34f0cb1 100644 --- a/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/nc/IndexCheckpointManager.java +++ b/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/nc/IndexCheckpointManager.java @@ -128,6 +128,11 @@ } @Override + public synchronized boolean isValidIndex() throws HyracksDataException { + return getCheckpointCount() > 0; + } + + @Override public long getValidComponentSequence() throws HyracksDataException { if (getCheckpointCount() > 0) { return getLatest().getValidComponentSequence(); diff --git a/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/storage/IIndexCheckpointManager.java b/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/storage/IIndexCheckpointManager.java index beb8e07..9777879 100644 --- a/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/storage/IIndexCheckpointManager.java +++ b/asterixdb/asterix-common/src/main/java/org/apache/asterix/common/storage/IIndexCheckpointManager.java @@ -140,4 +140,12 @@ * @throws HyracksDataException */ void setLastComponentId(long componentId) throws HyracksDataException; + + /** + * Indicates that the index has at least one valid checkpoint + * + * @return true if the index has at least one valid checkpoint. Otherwise false + * @throws HyracksDataException + */ + boolean isValidIndex() throws HyracksDataException; } diff --git a/asterixdb/asterix-replication/src/main/java/org/apache/asterix/replication/logging/RemoteLogsNotifier.java b/asterixdb/asterix-replication/src/main/java/org/apache/asterix/replication/logging/RemoteLogsNotifier.java index 80bb3c8..42a3c0b 100644 --- a/asterixdb/asterix-replication/src/main/java/org/apache/asterix/replication/logging/RemoteLogsNotifier.java +++ b/asterixdb/asterix-replication/src/main/java/org/apache/asterix/replication/logging/RemoteLogsNotifier.java @@ -96,7 +96,9 @@ for (DatasetResourceReference replicaIndexRef : replicaIndexesRef) { final IIndexCheckpointManager indexCheckpointManager = indexCheckpointManagerProvider.get(replicaIndexRef); synchronized (indexCheckpointManager) { - indexCheckpointManager.masterFlush(remoteLogMapping.getMasterLsn(), remoteLogMapping.getLSN()); + if (indexCheckpointManager.isValidIndex()) { + indexCheckpointManager.masterFlush(remoteLogMapping.getMasterLsn(), remoteLogMapping.getLSN()); + } } } } -- To view, visit https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/17869 To unsubscribe, or for help writing mail filters, visit https://asterix-gerrit.ics.uci.edu/settings Gerrit-Project: asterixdb Gerrit-Branch: neo Gerrit-Change-Id: I589b8934d5ab297a0a1507130857929469e8510d Gerrit-Change-Number: 17869 Gerrit-PatchSet: 2 Gerrit-Owner: Murtadha Hubail <[email protected]> Gerrit-Reviewer: Ali Alsuliman <[email protected]> Gerrit-Reviewer: Anon. E. Moose #1000171 Gerrit-Reviewer: Jenkins <[email protected]> Gerrit-Reviewer: Murtadha Hubail <[email protected]> Gerrit-MessageType: merged
