Details
-
New Feature
-
Status: Closed
-
Major
-
Resolution: Not A Problem
-
None
-
None
-
None
Description
As some of us have been discussing, allowing the client to manually set the timestamp of a put breaks the general semantics of versioning and I'd like to see it removed as part of HBASE-880 (a more appropriate place to debate that).
However, one trick being used when you don't want the overhead of versions on a frequently updated column (which are only cleared on compactions even if set to 1), was to use the same timestamp. Since that would create an identical key it would just overwrite the value not create a new version.
It's a very common use-case, and this hack is being used as part of the committed increment ops from HBASE-868/HBASE-1252. Rather than making a special optimization for counters, an optimization on single-version families that never stores more than one version of a column.