Details
-
New Feature
-
Status: Resolved
-
Major
-
Resolution: Abandoned
-
None
-
None
-
None
-
None
Description
HBase currently offers operators a choice. They can set KEEP_DELETED_CELLS=true and VERSIONS to max value, plus no TTL, and they will always have a complete history of all changes (but high storage costs and penalties to read performance). Or they can have KEEP_DELETED_CELLS=false and VERSIONS/TTL set to some reasonable values, but that means that major compactions can destroy the ability to do a consistent snapshot read of any prior time. (This limits the usefulness and correctness of, for example, Phoenix's SCN lookback feature.)
I propose having a new TTL property to give a minimum age that an expired or deleted Cell would have to achieve before it could be purged. (I see that HBASE-10118 already does something similar for the delete markers themselves.)
This would allow operators to have a consistent history for some finite amount of recent time while still purging out the "long tail" of obsolete / deleted versions.