Skip to content

Commit

Permalink
[AMORO-2555] Tag dangling delete snapshot commits (#3058)
Browse files Browse the repository at this point in the history
* Tag dangling delete snapshot commits

* make maintain commits public

* Re-gen table metastore java code via thrift

(cherry picked from commit 7066300)
Signed-off-by: zhoujinsong <[email protected]>
  • Loading branch information
XBaith authored and zhoujinsong committed Oct 11, 2024
1 parent f3868db commit 9d4ea99
Show file tree
Hide file tree
Showing 25 changed files with 39 additions and 29 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -103,6 +103,12 @@ public class IcebergTableMaintainer implements TableMaintainer {
public static final String EXPIRE_TIMESTAMP_MS = "TIMESTAMP_MS";
public static final String EXPIRE_TIMESTAMP_S = "TIMESTAMP_S";

public static final Set<String> AMORO_MAINTAIN_COMMITS =
Sets.newHashSet(
CommitMetaProducer.OPTIMIZE.name(),
CommitMetaProducer.DATA_EXPIRATION.name(),
CommitMetaProducer.CLEAN_DANGLING_DELETE.name());

protected Table table;

public IcebergTableMaintainer(Table table) {
Expand Down Expand Up @@ -435,6 +441,9 @@ private int clearInternalTableDanglingDeleteFiles() {
Collections.emptySet(),
Collections.emptySet());
try {
rewriteFiles.set(
org.apache.amoro.op.SnapshotSummary.SNAPSHOT_PRODUCER,
CommitMetaProducer.CLEAN_DANGLING_DELETE.name());
rewriteFiles.commit();
} catch (ValidationException e) {
LOG.warn("Iceberg RewriteFiles commit failed on clear danglingDeleteFiles, but ignore", e);
Expand Down Expand Up @@ -498,10 +507,7 @@ public static Snapshot findLatestSnapshotContainsKey(Table table, String summary
public static long fetchLatestNonOptimizedSnapshotTime(Table table) {
Optional<Snapshot> snapshot =
IcebergTableUtil.findFirstMatchSnapshot(
table,
s ->
!s.summary().containsValue(CommitMetaProducer.OPTIMIZE.name())
&& !s.summary().containsValue(CommitMetaProducer.DATA_EXPIRATION.name()));
table, s -> s.summary().values().stream().noneMatch(AMORO_MAINTAIN_COMMITS::contains));
return snapshot.map(Snapshot::timestampMillis).orElse(Long.MAX_VALUE);
}

Expand Down

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

3 changes: 2 additions & 1 deletion amoro-core/src/main/thrift/amoro_table_metastore.thrift
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,8 @@ struct PrimaryKeySpec {
enum CommitMetaProducer {
OPTIMIZE,
INGESTION,
DATA_EXPIRATION
DATA_EXPIRATION,
CLEAN_DANGLING_DELETE
}

struct Blocker {
Expand Down

0 comments on commit 9d4ea99

Please sign in to comment.