amogh-jahagirdar commented on code in PR #11131:
URL: https://github.com/apache/iceberg/pull/11131#discussion_r1805121855
##########
core/src/main/java/org/apache/iceberg/ManifestFilterManager.java:
##########
@@ -185,6 +200,13 @@ List<ManifestFile> filterManifests(Schema tableSchema,
List<ManifestFile> manife
return ImmutableList.of();
}
+ // The current set of referenced manifests can be trusted if it is a
subset of the manifests
+ // being filtered. If a single referenced manifest is not in the set of
manifests being filtered
+ // this indicates that the referenced manifests are stale and cannot be
trusted.
+ Set<String> manifestLocations =
Review Comment:
These manifests are the set of manifests in the parent snapshot. I think the
check that the referenced manifests is a subset of the manifests in the parent
is sufficient. The reason is in the case of a concurrent update which removes 1
or more of the currently referenced manifests, the parent would reflect this
removal (since every retry due to a concurrent update would naturally have an
updated parent and therefore an updated view of what are the manifests
currently). Added some tests in `TestTransactions` that verify this cc @rdblue
@aokolnychyi
--
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]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]