phoenix-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Kadir OZDEMIR (JIRA)" <j...@apache.org>
Subject [jira] [Created] (PHOENIX-5133) Global indexes on transactional tables are built with wrong timestamps
Date Tue, 12 Feb 2019 03:03:00 GMT
Kadir OZDEMIR created PHOENIX-5133:
--------------------------------------

             Summary: Global indexes on transactional tables are built with wrong timestamps
                 Key: PHOENIX-5133
                 URL: https://issues.apache.org/jira/browse/PHOENIX-5133
             Project: Phoenix
          Issue Type: Bug
    Affects Versions: 5.0.0
            Reporter: Kadir OZDEMIR
            Assignee: Kadir OZDEMIR


When doing a full rebuild (or initial async build) of a global index on a transactional table
using IndexTool, or the index create DDL, we generate the index mutations by using an UPSERT
SELECT query from the base table to the index.

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.
Also inserting old mutations with new timestamps may overwrite the data that has been newly
overwritten by the regular data path during index build, which would lead to data loss and
inconsistency issues.



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

Mime
View raw message