Details
-
Bug
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
2.5.0
-
Reviewed
Description
I have observed that mob HFiles are expired earlier than their reference data. Upon reviewing the relevant code, it was observed that the standard expired timestamp is not accurately set. The issue arises from the fact that if we do not set the calendar to the MILLISECOND level, a three-digit random number is appended to the end of the expired timestamp, leading to inaccuracies.
For instance, if we write mob data to a Time-To-Live (1 day) table at 22:00 on 12/20/2023, and the ExpiredMobFileCleaner begins to work at 20:00 on 12/21/2023, the timestamp of the mob HFile will be parsed as 1703001600000, and the StandardExpiredTS is calculated as 1703001600314 with the three-digit random number as MILLISECOND. Consequently, the StandardExpiredTS >= MobHfileTS, thus indicating that the mob HFile should be expired. However, it is observed that this mob HFile only exists for 22 hours, which is less than the specified one-day-time threshold.