>From Peeyush Gupta <[email protected]>:

Peeyush Gupta has submitted this change. ( 
https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/18362 )

Change subject: [ASTERIXDB-3426][TX] Error during recovery for atomic statements
......................................................................

[ASTERIXDB-3426][TX] Error during recovery for atomic statements

- user model changes: no
- storage format changes: no
- interface changes: yes

Change-Id: I2a92e07b230f6a1d4aca2cacff8a568c29615238
Reviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/18362
Integration-Tests: Jenkins <[email protected]>
Tested-by: Jenkins <[email protected]>
Reviewed-by: Peeyush Gupta <[email protected]>
Reviewed-by: Murtadha Hubail <[email protected]>
---
M 
asterixdb/asterix-app/src/main/java/org/apache/asterix/app/message/AtomicJobRollbackMessage.java
M 
asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/service/transaction/AtomicNoWALTransactionContext.java
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
4 files changed, 24 insertions(+), 6 deletions(-)

Approvals:
  Murtadha Hubail: Looks good to me, approved
  Peeyush Gupta: Looks good to me, but someone else must approve
  Jenkins: Verified; Verified

Objections:
  Anon. E. Moose #1000171: Violations found




diff --git 
a/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/message/AtomicJobRollbackMessage.java
 
b/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/message/AtomicJobRollbackMessage.java
index e611d8f..2110bc8 100644
--- 
a/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/message/AtomicJobRollbackMessage.java
+++ 
b/asterixdb/asterix-app/src/main/java/org/apache/asterix/app/message/AtomicJobRollbackMessage.java
@@ -71,7 +71,7 @@
                     if (checkpoint.getLastComponentId() == v.getMaxId()) {
                         LOGGER.info("Removing checkpoint for resource {} for 
component id {}", k,
                                 checkpoint.getLastComponentId());
-                        checkpointManager.deleteLatest(v.getMaxId(), 1);
+                        checkpointManager.deleteLatest(v.getMaxId());
                     }
                 }
             } catch (Exception e) {
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 77a4f19..4ca9f7c 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
@@ -231,18 +231,18 @@
     }

     @Override
-    public void deleteLatest(long latestId, int historyToDelete) {
+    public void deleteLatest(long latestId) {
         try {
             final Collection<FileReference> checkpointFiles = 
ioManager.list(indexPath, CHECKPOINT_FILE_FILTER);
             if (!checkpointFiles.isEmpty()) {
                 for (FileReference checkpointFile : checkpointFiles) {
-                    if (getCheckpointIdFromFileName(checkpointFile) > 
(latestId - historyToDelete)) {
+                    if (read(checkpointFile).getLastComponentId() == latestId) 
{
                         ioManager.delete(checkpointFile);
                     }
                 }
             }
         } catch (Exception e) {
-            LOGGER.warn(() -> "Couldn't delete history checkpoints at " + 
indexPath, e);
+            LOGGER.warn(() -> "Couldn't delete latest checkpoint file at " + 
indexPath, e);
         }
     }

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 75557ec..2cf613b 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
@@ -102,7 +102,7 @@
      */
     void delete();

-    void deleteLatest(long latestId, int historyToDelete);
+    void deleteLatest(long latestId);

     /**
      * Gets the index last valid component sequence.
diff --git 
a/asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/service/transaction/AtomicNoWALTransactionContext.java
 
b/asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/service/transaction/AtomicNoWALTransactionContext.java
index 151d9ef..a743bb1 100644
--- 
a/asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/service/transaction/AtomicNoWALTransactionContext.java
+++ 
b/asterixdb/asterix-transactions/src/main/java/org/apache/asterix/transaction/management/service/transaction/AtomicNoWALTransactionContext.java
@@ -198,7 +198,7 @@
                     if (checkpoint.getLastComponentId() == v.getMaxId()) {
                         LOGGER.info("Removing checkpoint for resource {} for 
component id {}", k,
                                 checkpoint.getLastComponentId());
-                        checkpointManager.deleteLatest(v.getMaxId(), 1);
+                        checkpointManager.deleteLatest(v.getMaxId());
                     }
                 }
             } catch (HyracksDataException e) {

--
To view, visit https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/18362
To unsubscribe, or for help writing mail filters, visit 
https://asterix-gerrit.ics.uci.edu/settings

Gerrit-Project: asterixdb
Gerrit-Branch: master
Gerrit-Change-Id: I2a92e07b230f6a1d4aca2cacff8a568c29615238
Gerrit-Change-Number: 18362
Gerrit-PatchSet: 4
Gerrit-Owner: Peeyush Gupta <[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-Reviewer: Peeyush Gupta <[email protected]>
Gerrit-MessageType: merged

Reply via email to