[
https://issues.apache.org/jira/browse/HBASE-16210?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15382695#comment-15382695
]
Sai Teja Ranuva commented on HBASE-16210:
-----------------------------------------
[~busbey] [~stack]
Timestamp can be either Physical or physical+logical or just logical(not
implemented now), any clock should be able to map to these interpretations of
64 bits.
I feel if clock class is made pluggable it should suffice. Clock implementation
will take in all the logic of the semantics of time.
> Add Timestamp class to the hbase-common and Timestamp type to HTable.
> ---------------------------------------------------------------------
>
> Key: HBASE-16210
> URL: https://issues.apache.org/jira/browse/HBASE-16210
> Project: HBase
> Issue Type: Sub-task
> Reporter: Sai Teja Ranuva
> Assignee: Sai Teja Ranuva
> Priority: Minor
> Labels: patch, testing
> Attachments: HBASE-16210.master.1.patch, HBASE-16210.master.2.patch,
> HBASE-16210.master.3.patch, HBASE-16210.master.4.patch,
> HBASE-16210.master.5.patch, HBASE-16210.master.6.patch,
> HBASE-16210.master.7.patch, HBASE-16210.master.8.1.patch,
> HBASE-16210.master.8.patch
>
>
> This is a sub-issue of
> [HBase-14070|https://issues.apache.org/jira/browse/HBASE-14070]. This JIRA is
> a small step towards completely adding Hybrid Logical Clocks(HLC) to HBase.
> The main idea of HLC is described in
> [HBase-14070|https://issues.apache.org/jira/browse/HBASE-14070] along with
> the motivation of adding it to HBase.
> This patch in this issue takes the code from the patch in the parent.
> The parent patch is pretty big to review at once. So, plan is to get code
> reviewed in smaller patches and
> in the process take suggestions and change things if necessary.
> What is this patch/issue about ?
> This issue attempts to add a timestamp class to hbase-common and timestamp
> type to HTable.
> This is a part of the attempt to get HLC into HBase. This patch does not
> interfere with the current working of HBase.
> Why Timestamp Class ?
> Timestamp class can be as an abstraction to represent time in Hbase in 64
> bits.
> It is just used for manipulating with the 64 bits of the timestamp and is not
> concerned about the actual time.
> There are three types of timestamps. System time, Custom and HLC. Each one of
> it has methods to manipulate the 64 bits of timestamp.
> HTable changes: Added a timestamp type property to HTable. This will help
> HBase exist in conjunction with old type of timestamp and also the HLC which
> will be introduced. The default is set to custom timestamp(current way of
> usage of timestamp). default unset timestamp is also custom timestamp as it
> should be so. The default timestamp will be changed to HLC when HLC feature
> is introduced completely in HBase.
> Check HBASE-16210.master.6.patch.
> Update: Based on the suggestions, made timestamp enum. Here is the
> description of the new changes.
> Check the HBASE-16210.master.8.1.patch
> 1. Changed the Timestamp Implementation to Enum.
> 2. Changed the Timestamp semantics. Instead of HLC, System monotonic and
> custom, we now have Hybrid and Physical. System monotonic clock and Custom
> clocks can map their timestamps to Physical. HLC clock can map its timestamp
> to Hybrid.
> 3. The HTableDescriptor will contain clock type(not implemented yet) instead
> of timestamp type. As clocks convey the semantics of monotonic increasing and
> non decreasing etc. TimestampType doesn't have those semantics enforced, it
> just knows what to do with given 64 bits. Therefore, I removed the timestamp
> type field in the HTableDescriptor.
> Open for suggestions.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)