mreutegg commented on code in PR #2467:
URL: https://github.com/apache/jackrabbit-oak/pull/2467#discussion_r2294018574
##########
oak-segment-azure/src/main/java/org/apache/jackrabbit/oak/segment/azure/AzureArchiveManager.java:
##########
@@ -80,38 +80,16 @@ public AzureArchiveManager(BlobContainerClient
readBlobContainerClient, BlobCont
@Override
public List<String> listArchives() throws IOException {
try {
- List<String> archiveNames =
readBlobContainerClient.listBlobsByHierarchy(rootPrefix).stream()
+ return
readBlobContainerClient.listBlobsByHierarchy(rootPrefix).stream()
Review Comment:
I agree on the need to improve the archive delete operation and we can
certainly do it in a separate task.
> The code in `trunk` right now assumes the archive is empty if the segment
"0000.*" is absent. If we do filtering based on that, the question is how to
distinguish intentional archive deletion from data corruption, when a segment
is deleted or not successfully uploaded for any reason.
The first segment with position 0000 should only be deleted when the archive
is deleted. I'm not aware of another code path where this happens. Or you mean
when someone manually deletes the blob in Azure? If the segment is not
successfully uploaded, then the segment write should simply fail or retried.
Can you clarify why this is relevant in this context?
My concern is that not filtering out those archives anymore in
AzureArchiveManager.listArchives() is a change in behavior. There must be a
reason why the code in trunk filters out those archives. Is this not relevant
anymore? Why?
--
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: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]