This is an automated email from the ASF dual-hosted git repository.
russellspitzer pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/iceberg.git
The following commit(s) were added to refs/heads/master by this push:
new 88a4d9e85 Core: Remove Usage of Sets.Union in Loop (#5114)
88a4d9e85 is described below
commit 88a4d9e85bf30c57d8ef0d2fc10315ba68c59360
Author: Russell Spitzer <[email protected]>
AuthorDate: Wed Jun 22 16:44:06 2022 -0500
Core: Remove Usage of Sets.Union in Loop (#5114)
Previously the repeated calls to union could create a very large stack
depth since each call ends up creating a set view. This can lead to
StackOverflow issues with very large compaction jobs.
---
.../org/apache/iceberg/actions/RewriteDataFilesCommitManager.java | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git
a/core/src/main/java/org/apache/iceberg/actions/RewriteDataFilesCommitManager.java
b/core/src/main/java/org/apache/iceberg/actions/RewriteDataFilesCommitManager.java
index 9a5cc4c94..277b48000 100644
---
a/core/src/main/java/org/apache/iceberg/actions/RewriteDataFilesCommitManager.java
+++
b/core/src/main/java/org/apache/iceberg/actions/RewriteDataFilesCommitManager.java
@@ -74,8 +74,8 @@ public class RewriteDataFilesCommitManager {
Set<DataFile> rewrittenDataFiles = Sets.newHashSet();
Set<DataFile> addedDataFiles = Sets.newHashSet();
for (RewriteFileGroup group : fileGroups) {
- rewrittenDataFiles = Sets.union(rewrittenDataFiles,
group.rewrittenFiles());
- addedDataFiles = Sets.union(addedDataFiles, group.addedFiles());
+ rewrittenDataFiles.addAll(group.rewrittenFiles());
+ addedDataFiles.addAll(group.addedFiles());
}
RewriteFiles rewrite =
table.newRewrite().validateFromSnapshot(startingSnapshotId);