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

Vincent Poon commented on PHOENIX-5018:
---------------------------------------

Yea I would guess from the code that the IndexTool is creating rows with the 
wrong timestamp.  In PhoenixIndexDBWriteable I added logic to read the rowTS, 
but it's only used in scrutiny currently.  You can use similar logic to read 
the timestamps in a test.

Unfortunately, I don't know that there's an easy way to set timestamps on the 
client side in Phoenix.

> Index mutations created by IndexTool will have wrong timestamps
> ---------------------------------------------------------------
>
>                 Key: PHOENIX-5018
>                 URL: https://issues.apache.org/jira/browse/PHOENIX-5018
>             Project: Phoenix
>          Issue Type: Bug
>    Affects Versions: 4.14.0, 5.0.0
>            Reporter: Geoffrey Jacoby
>            Assignee: Kadir OZDEMIR
>            Priority: Major
>
> When doing a full rebuild (or initial async build) on an index using the 
> IndexTool and PhoenixIndexImportDirectMapper, we generate the index mutations 
> by creating an UPSERT SELECT query from the base table to the index, then 
> taking the Mutations from it and inserting it directly into the index via an 
> HBase HTable. 
> The timestamps of the Mutations use the default HBase behavior, which is to 
> take the current wall clock. However, the timestamp of an index KeyValue 
> should use the timestamp of the initial KeyValue in the base table.
> Having base table and index timestamps out of sync can cause all sorts of 
> weird side effects, such as if the base table has data with an expired TTL 
> that isn't expired in the index yet. 



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

Reply via email to