You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@iceberg.apache.org by ru...@apache.org on 2022/06/22 21:44:12 UTC

[iceberg] branch master updated: Core: Remove Usage of Sets.Union in Loop (#5114)

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 <rs...@apple.com>
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);