From 5e89d0c709dd8fbaf77a75233cfce95448e76b6b Mon Sep 17 00:00:00 2001 From: "zhangchaoming.zcm" Date: Fri, 17 Apr 2026 17:58:28 +0800 Subject: [PATCH 1/4] Add logging for scanner and compact manager TODOs - StaticFromSnapshotStartingScanner: log info when no snapshot exists - DeltaFollowUpScanner: log warning when ignoring non-append snapshot - BucketedAppendCompactManager: log warning on file overlap detection --- src/paimon/core/append/bucketed_append_compact_manager.h | 8 +++++++- .../core/table/source/snapshot/delta_follow_up_scanner.h | 6 +++++- .../snapshot/static_from_snapshot_starting_scanner.h | 5 ++++- 3 files changed, 16 insertions(+), 3 deletions(-) diff --git a/src/paimon/core/append/bucketed_append_compact_manager.h b/src/paimon/core/append/bucketed_append_compact_manager.h index cf718e264..b75e4a1eb 100644 --- a/src/paimon/core/append/bucketed_append_compact_manager.h +++ b/src/paimon/core/append/bucketed_append_compact_manager.h @@ -61,7 +61,13 @@ class BucketedAppendCompactManager : public CompactFutureManager { return false; } if (!ignore_overlap && IsOverlap(lhs, rhs)) { - // TODO(yonghao.fyh): add log + static auto logger = Logger::GetLogger("BucketedAppendCompactManager"); + PAIMON_LOG_WARN(logger, + "Overlap detected between files %s and %s, " + "sequence range [%ld, %ld] and [%ld, %ld].", + lhs->file_name.c_str(), rhs->file_name.c_str(), + lhs->min_sequence_number, lhs->max_sequence_number, + rhs->min_sequence_number, rhs->max_sequence_number); } return lhs->min_sequence_number < rhs->min_sequence_number; }; diff --git a/src/paimon/core/table/source/snapshot/delta_follow_up_scanner.h b/src/paimon/core/table/source/snapshot/delta_follow_up_scanner.h index f8e0e1d57..e7a6942da 100644 --- a/src/paimon/core/table/source/snapshot/delta_follow_up_scanner.h +++ b/src/paimon/core/table/source/snapshot/delta_follow_up_scanner.h @@ -19,6 +19,7 @@ #include #include "paimon/core/table/source/snapshot/follow_up_scanner.h" +#include "paimon/logging.h" namespace paimon { class DeltaFollowUpScanner : public FollowUpScanner { @@ -27,7 +28,10 @@ class DeltaFollowUpScanner : public FollowUpScanner { if (snapshot.GetCommitKind() == Snapshot::CommitKind::Append()) { return true; } - // TODO(liancheng.lsz): log + static auto logger = Logger::GetLogger("DeltaFollowUpScanner"); + PAIMON_LOG_WARN( + logger, "Ignore snapshot #%ld with commit kind %s in delta follow-up scanner.", + snapshot.Id(), Snapshot::CommitKind::ToString(snapshot.GetCommitKind()).c_str()); return false; } Result> Scan( diff --git a/src/paimon/core/table/source/snapshot/static_from_snapshot_starting_scanner.h b/src/paimon/core/table/source/snapshot/static_from_snapshot_starting_scanner.h index 13ea745e8..72de37a51 100644 --- a/src/paimon/core/table/source/snapshot/static_from_snapshot_starting_scanner.h +++ b/src/paimon/core/table/source/snapshot/static_from_snapshot_starting_scanner.h @@ -19,6 +19,7 @@ #include #include "paimon/core/table/source/snapshot/starting_scanner.h" +#include "paimon/logging.h" namespace paimon { /// `StartingScanner` for the `StartupMode::FromSnapshot()` or `StartupMode::FromSnapshotFull()` @@ -38,7 +39,9 @@ class StaticFromSnapshotStartingScanner : public StartingScanner { PAIMON_ASSIGN_OR_RAISE(std::optional latest, snapshot_manager_->LatestSnapshotId()); if (earliest == std::nullopt || latest == std::nullopt) { - // TODO(liancheng.lsz): Log + static auto logger = Logger::GetLogger("StaticFromSnapshotStartingScanner"); + PAIMON_LOG_INFO( + logger, "There is currently no snapshot. Waiting for snapshot generation.%s", ""); return std::make_shared(); } if (starting_snapshot_id_.value() < earliest.value() || From 184a09fdf8639b8529590603fc42bd72a2a87ede Mon Sep 17 00:00:00 2001 From: "zhangchaoming.zcm" Date: Mon, 20 Apr 2026 10:19:59 +0800 Subject: [PATCH 2/4] address --- src/paimon/core/table/source/snapshot/delta_follow_up_scanner.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/paimon/core/table/source/snapshot/delta_follow_up_scanner.h b/src/paimon/core/table/source/snapshot/delta_follow_up_scanner.h index e7a6942da..4113f362b 100644 --- a/src/paimon/core/table/source/snapshot/delta_follow_up_scanner.h +++ b/src/paimon/core/table/source/snapshot/delta_follow_up_scanner.h @@ -29,7 +29,7 @@ class DeltaFollowUpScanner : public FollowUpScanner { return true; } static auto logger = Logger::GetLogger("DeltaFollowUpScanner"); - PAIMON_LOG_WARN( + PAIMON_LOG_DEBUG( logger, "Ignore snapshot #%ld with commit kind %s in delta follow-up scanner.", snapshot.Id(), Snapshot::CommitKind::ToString(snapshot.GetCommitKind()).c_str()); return false; From 07f98c267ec9d74504e882257cb038b5594a6ed0 Mon Sep 17 00:00:00 2001 From: "zhangchaoming.zcm" Date: Mon, 20 Apr 2026 15:59:33 +0800 Subject: [PATCH 3/4] fix --- .../core/append/bucketed_append_compact_manager.cpp | 3 +-- src/paimon/core/append/bucketed_append_compact_manager.h | 7 ++++--- .../core/table/source/snapshot/delta_follow_up_scanner.h | 8 ++++++-- .../snapshot/static_from_snapshot_starting_scanner.h | 9 ++++++--- 4 files changed, 17 insertions(+), 10 deletions(-) diff --git a/src/paimon/core/append/bucketed_append_compact_manager.cpp b/src/paimon/core/append/bucketed_append_compact_manager.cpp index 3b79fb879..9492fd604 100644 --- a/src/paimon/core/append/bucketed_append_compact_manager.cpp +++ b/src/paimon/core/append/bucketed_append_compact_manager.cpp @@ -41,8 +41,7 @@ BucketedAppendCompactManager::BucketedAppendCompactManager( [](const std::shared_ptr& lhs, const std::shared_ptr& rhs) { return lhs->min_sequence_number > rhs->min_sequence_number; }), - cancellation_controller_(cancellation_controller), - logger_(Logger::GetLogger("BucketedAppendCompactManager")) { + cancellation_controller_(cancellation_controller) { assert(cancellation_controller_ != nullptr); for (const auto& file : restored) { to_compact_.push(file); diff --git a/src/paimon/core/append/bucketed_append_compact_manager.h b/src/paimon/core/append/bucketed_append_compact_manager.h index b75e4a1eb..62cf5e62e 100644 --- a/src/paimon/core/append/bucketed_append_compact_manager.h +++ b/src/paimon/core/append/bucketed_append_compact_manager.h @@ -61,8 +61,7 @@ class BucketedAppendCompactManager : public CompactFutureManager { return false; } if (!ignore_overlap && IsOverlap(lhs, rhs)) { - static auto logger = Logger::GetLogger("BucketedAppendCompactManager"); - PAIMON_LOG_WARN(logger, + PAIMON_LOG_WARN(kLogger, "Overlap detected between files %s and %s, " "sequence range [%ld, %ld] and [%ld, %ld].", lhs->file_name.c_str(), rhs->file_name.c_str(), @@ -113,6 +112,9 @@ class BucketedAppendCompactManager : public CompactFutureManager { } private: + static inline const std::unique_ptr kLogger = + Logger::GetLogger("BucketedAppendCompactManager"); + static constexpr int32_t FULL_COMPACT_MIN_FILE = 3; static bool IsOverlap(const std::shared_ptr& o1, @@ -206,7 +208,6 @@ class BucketedAppendCompactManager : public CompactFutureManager { std::optional>> compacting_; DataFileMetaPriorityQueue to_compact_; std::shared_ptr cancellation_controller_; - std::unique_ptr logger_; }; } // namespace paimon diff --git a/src/paimon/core/table/source/snapshot/delta_follow_up_scanner.h b/src/paimon/core/table/source/snapshot/delta_follow_up_scanner.h index 4113f362b..8b37a9901 100644 --- a/src/paimon/core/table/source/snapshot/delta_follow_up_scanner.h +++ b/src/paimon/core/table/source/snapshot/delta_follow_up_scanner.h @@ -24,13 +24,14 @@ namespace paimon { class DeltaFollowUpScanner : public FollowUpScanner { public: + DeltaFollowUpScanner() : logger_(Logger::GetLogger("DeltaFollowUpScanner")) {} + bool NeedScanSnapshot(const Snapshot& snapshot) const override { if (snapshot.GetCommitKind() == Snapshot::CommitKind::Append()) { return true; } - static auto logger = Logger::GetLogger("DeltaFollowUpScanner"); PAIMON_LOG_DEBUG( - logger, "Ignore snapshot #%ld with commit kind %s in delta follow-up scanner.", + logger_, "Ignore snapshot #%ld with commit kind %s in delta follow-up scanner.", snapshot.Id(), Snapshot::CommitKind::ToString(snapshot.GetCommitKind()).c_str()); return false; } @@ -39,5 +40,8 @@ class DeltaFollowUpScanner : public FollowUpScanner { const std::shared_ptr& snapshot_reader) const override { return snapshot_reader->WithMode(ScanMode::DELTA)->WithSnapshot(snapshot)->Read(); } + + private: + std::unique_ptr logger_; }; } // namespace paimon diff --git a/src/paimon/core/table/source/snapshot/static_from_snapshot_starting_scanner.h b/src/paimon/core/table/source/snapshot/static_from_snapshot_starting_scanner.h index 72de37a51..62ba6b2cb 100644 --- a/src/paimon/core/table/source/snapshot/static_from_snapshot_starting_scanner.h +++ b/src/paimon/core/table/source/snapshot/static_from_snapshot_starting_scanner.h @@ -28,7 +28,8 @@ class StaticFromSnapshotStartingScanner : public StartingScanner { public: StaticFromSnapshotStartingScanner(const std::shared_ptr& snapshot_manager, int64_t snapshot_id) - : StartingScanner(snapshot_manager) { + : StartingScanner(snapshot_manager), + logger_(Logger::GetLogger("StaticFromSnapshotStartingScanner")) { starting_snapshot_id_ = snapshot_id; } @@ -39,9 +40,8 @@ class StaticFromSnapshotStartingScanner : public StartingScanner { PAIMON_ASSIGN_OR_RAISE(std::optional latest, snapshot_manager_->LatestSnapshotId()); if (earliest == std::nullopt || latest == std::nullopt) { - static auto logger = Logger::GetLogger("StaticFromSnapshotStartingScanner"); PAIMON_LOG_INFO( - logger, "There is currently no snapshot. Waiting for snapshot generation.%s", ""); + logger_, "There is currently no snapshot. Waiting for snapshot generation.%s", ""); return std::make_shared(); } if (starting_snapshot_id_.value() < earliest.value() || @@ -58,5 +58,8 @@ class StaticFromSnapshotStartingScanner : public StartingScanner { snapshot_reader->WithMode(ScanMode::ALL)->WithSnapshot(snapshot)->Read()); return std::make_shared(plan); } + + private: + std::unique_ptr logger_; }; } // namespace paimon From 310d9334d72b38f7f97f0fe8614b84a005905e87 Mon Sep 17 00:00:00 2001 From: "zhangchaoming.zcm" Date: Mon, 20 Apr 2026 16:20:06 +0800 Subject: [PATCH 4/4] fix --- src/paimon/core/append/bucketed_append_compact_manager.h | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/paimon/core/append/bucketed_append_compact_manager.h b/src/paimon/core/append/bucketed_append_compact_manager.h index 62cf5e62e..b54e3124d 100644 --- a/src/paimon/core/append/bucketed_append_compact_manager.h +++ b/src/paimon/core/append/bucketed_append_compact_manager.h @@ -61,7 +61,8 @@ class BucketedAppendCompactManager : public CompactFutureManager { return false; } if (!ignore_overlap && IsOverlap(lhs, rhs)) { - PAIMON_LOG_WARN(kLogger, + static auto logger = Logger::GetLogger("BucketedAppendCompactManager"); + PAIMON_LOG_WARN(logger, "Overlap detected between files %s and %s, " "sequence range [%ld, %ld] and [%ld, %ld].", lhs->file_name.c_str(), rhs->file_name.c_str(), @@ -112,9 +113,6 @@ class BucketedAppendCompactManager : public CompactFutureManager { } private: - static inline const std::unique_ptr kLogger = - Logger::GetLogger("BucketedAppendCompactManager"); - static constexpr int32_t FULL_COMPACT_MIN_FILE = 3; static bool IsOverlap(const std::shared_ptr& o1,