You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "Jeremy Schoemaker (Jira)" <ji...@apache.org> on 2026/09/18 18:39:00 UTC
[jira] [Created] (HBASE-30403) CustomDateTieredCompactionPolicy#getCompactBoundariesForMajor drops the cutOffTimestamp boundary when files lack CUSTOM_TIERING_TIME_RANGE
Jeremy Schoemaker created HBASE-30403:
-----------------------------------------
Summary: CustomDateTieredCompactionPolicy#getCompactBoundariesForMajor drops the cutOffTimestamp boundary when files lack CUSTOM_TIERING_TIME_RANGE
Key: HBASE-30403
URL: https://issues.apache.org/jira/browse/HBASE-30403
Project: HBase
Issue Type: Bug
Components: Compaction
Reporter: Jeremy Schoemaker
getCompactBoundariesForMajor derives the major-compaction boundaries from the CUSTOM_TIERING_TIME_RANGE file-info tag of every file in filesToCompact. Files written before custom tiering was enabled (or by any writer that does not set the tag) contribute nothing, so with a mixed or untagged set the min/max traversal produces a boundary list that never contains the cutOffTimestamp split. The major compaction then writes a single tier instead of separating hot and cold cells.
Fix (PR https://github.com/apache/hbase/pull/8573): always return [Long.MIN_VALUE, cutOffTimestamp] without traversing filesToCompact. This is safe because CustomTieringMultiFileWriter#append already buckets each cell by these boundaries and only commits a file for a tier that actually received data, so an empty tier never produces an empty HFile. The five tests in TestCustomCellTieredCompactionPolicy and TestCustomCellTieredCompactor that asserted boundary counts derived from the old tag traversal are updated to the new intended behavior in the same PR.
Review thread with wchevreuil on the PR agreed the simplified approach on 2026-08-26; this ticket is filed at his request so the change can be merged.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)