[ 
https://issues.apache.org/jira/browse/HBASE-22148?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16808222#comment-16808222
 ] 

Thomas D'Silva edited comment on HBASE-22148 at 4/2/19 11:17 PM:
-----------------------------------------------------------------

Before PHOENIX-4089 we were setting the timestamp of mutations from the client 
(based on when we resolved the metadata of the table to which we were writing). 
We had issues where the index table was getting out of sync with the data table 
when there were concurrent updates to the same row. I'm not very familiar with 
the Indexing coprocessor, maybe [~vincentpoon] knows the exact reason why this 
was happening?
In PHOENIX-4089 we changed this so that the timestamp of mutations gets set on 
the server via the Indexer coprocessor. After all the rows in a mini batch have 
been locked the timestamp of each cell of every row gets set to the same value. 
The index mutations created by the Indexer coprocessor get the same timestamp 
as the corresponding data table mutations.


was (Author: tdsilva):
Before PHOENIX-4089 we were setting the timestamp of mutations from the client 
(based on when we resolved the metadata of the table to which we were writing). 
We had issues where the index table was getting out of sync with the data table 
when there were concurrent updates to the same row. I'm not very familiar with 
the Indexing coprocessor, maybe [~vincentpoon] knows the exact reason why this 
was happening?
In PHOENIX-4089 we changed this so that the timestamp of mutations gets set on 
the server via the Indexer coprocessor. After all the rows in a mini batch have 
been locked the timestamp of each cell of every row gets set to the same value. 
The index mutations are created by the Indexer coprocessor get the same 
timestamp as the corresponding data table mutations.

> Provide an alternative to CellUtil.setTimestamp 
> ------------------------------------------------
>
>                 Key: HBASE-22148
>                 URL: https://issues.apache.org/jira/browse/HBASE-22148
>             Project: HBase
>          Issue Type: New Feature
>          Components: API, Coprocessors
>    Affects Versions: 3.0.0
>            Reporter: Thomas D'Silva
>            Priority: Blocker
>              Labels: phoenix
>             Fix For: 3.0.0
>
>
> {{CellUtil.setTimestamp}} has been deprecated in 2.0 and is marked for 
> removal in 3.0. Phoenix currently uses this api to set the timestamp of cells 
> in its indexing coprocessor for tables that have mutable indexes. We can't 
> use the CellBuilder api since this involves creating a copy of the cell which 
> will be expensive. 
> FYI @stack



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to