Skip to content

Commit 457d826

Browse files
committed
fix: propagate replay mode in Retina deletes
1 parent e3a4ed2 commit 457d826

1 file changed

Lines changed: 17 additions & 3 deletions

File tree

pixels-retina/src/main/java/io/pixelsdb/pixels/retina/RetinaResourceManager.java

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -692,7 +692,13 @@ public String getCheckpointPath(long timestamp)
692692

693693
public void deleteRecord(long fileId, int rgId, int rgRowOffset, long timestamp) throws RetinaException
694694
{
695-
checkRGVisibility(fileId, rgId).deleteRecord(rgRowOffset, timestamp);
695+
deleteRecord(fileId, rgId, rgRowOffset, timestamp, RGVisibility.ReplayMode.NORMAL);
696+
}
697+
698+
public void deleteRecord(long fileId, int rgId, int rgRowOffset, long timestamp,
699+
RGVisibility.ReplayMode replayMode) throws RetinaException
700+
{
701+
checkRGVisibility(fileId, rgId).deleteRecord(rgRowOffset, timestamp, replayMode);
696702

697703
if (!isDualWriteActive)
698704
{
@@ -719,7 +725,7 @@ public void deleteRecord(long fileId, int rgId, int rgRowOffset, long timestamp)
719725
int oldGlobal = bwdMapping[rgRowOffset];
720726
int oldRgId = rgIdForGlobalRowOffset(oldGlobal, bwd.oldFileRgRowStart);
721727
int oldRgOff = oldGlobal - bwd.oldFileRgRowStart[oldRgId];
722-
checkRGVisibility(bwd.oldFileId, oldRgId).deleteRecord(oldRgOff, timestamp);
728+
checkRGVisibility(bwd.oldFileId, oldRgId).deleteRecord(oldRgOff, timestamp, replayMode);
723729
}
724730
}
725731
}
@@ -733,7 +739,7 @@ public void deleteRecord(long fileId, int rgId, int rgRowOffset, long timestamp)
733739
int newGlobal = fwdMapping[rgRowOffset];
734740
int newRgId = rgIdForGlobalRowOffset(newGlobal, result.newFileRgRowStart);
735741
int newRgOff = newGlobal - result.newFileRgRowStart[newRgId];
736-
checkRGVisibility(result.newFileId, newRgId).deleteRecord(newRgOff, timestamp);
742+
checkRGVisibility(result.newFileId, newRgId).deleteRecord(newRgOff, timestamp, replayMode);
737743
}
738744
}
739745
}
@@ -748,6 +754,14 @@ public void deleteRecord(IndexProto.RowLocation rowLocation, long timestamp) thr
748754
deleteRecord(rowLocation.getFileId(), rowLocation.getRgId(), rowLocation.getRgRowOffset(), timestamp);
749755
}
750756

757+
public void deleteRecord(IndexProto.RowLocation rowLocation, long timestamp,
758+
RGVisibility.ReplayMode replayMode)
759+
throws RetinaException
760+
{
761+
deleteRecord(rowLocation.getFileId(), rowLocation.getRgId(), rowLocation.getRgRowOffset(),
762+
timestamp, replayMode);
763+
}
764+
751765
/**
752766
* Registers dual-write redirection so that {@link #deleteRecord} propagates
753767
* deletes between old and new files. The write lock acts as a barrier: all

0 commit comments

Comments
 (0)