phoenix-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Hadoop QA (JIRA)" <>
Subject [jira] [Commented] (PHOENIX-5018) Index mutations created by UPSERT SELECT will have wrong timestamps
Date Wed, 13 Feb 2019 06:16:00 GMT


Hadoop QA commented on PHOENIX-5018:

{color:red}-1 overall{color}.  Here are the results of testing the latest attachment
  against master branch at commit 207263f7f0e45ebea02f2f12bec1f7293ad737c5.
  ATTACHMENT ID: 12958484

    {color:green}+1 @author{color}.  The patch does not contain any @author tags.

    {color:red}-1 tests included{color}.  The patch doesn't appear to include any new or modified
                        Please justify why no new tests are needed for this patch.
                        Also please list what manual steps were performed to verify this patch.

    {color:green}+1 javac{color}.  The applied patch does not increase the total number of
javac compiler warnings.

    {color:red}-1 release audit{color}.  The applied patch generated 1 release audit warnings
(more than the master's current 0 warnings).

    {color:red}-1 lineLengths{color}.  The patch introduces the following lines longer than
    +                                         String dataTableFullName, String indexTableFullName)
throws SQLException {
+        IndexToolIT.assertExplainPlan(localIndex, actualExplainPlan, dataTableFullName, indexTableFullName);
+                " (id varchar(10) not null primary key, val varchar(10), ts timestamp)" +
+        conn.createStatement().execute("upsert into " + tableName + " values ('aaa', 'abc',
+        conn.createStatement().execute("upsert into " + tableName + " values ('bbb', 'bcd',
+        conn.createStatement().execute("CREATE "+ (localIndex ? "LOCAL " : "") + " INDEX
" + indexName + " on " +
+            IndexToolIT.runIndexTool(true, false, null, (view ? viewName : dataTableName),
+        String selectSql = String.format("SELECT * FROM %s WHERE val = 'abc'", (view ? viewName
: dataTableName));
+        assertExplainPlan(conn, localIndex, selectSql, dataTableName, (view ? "_IDX_" + dataTableName
: indexName));
+        assertTrue(rs.unwrap(PhoenixResultSet.class).getCurrentRow().getValue(0).getTimestamp()
< clock2.initialTime() &&

     {color:red}-1 core tests{color}.  The patch failed these unit tests:

Test results:
Release audit warnings:
Console output:

This message is automatically generated.

> Index mutations created by UPSERT SELECT will have wrong timestamps
> -------------------------------------------------------------------
>                 Key: PHOENIX-5018
>                 URL:
>             Project: Phoenix
>          Issue Type: Bug
>    Affects Versions: 4.14.0, 5.0.0
>            Reporter: Geoffrey Jacoby
>            Assignee: Kadir OZDEMIR
>            Priority: Major
>         Attachments: PHOENIX-5018.4.x-HBase-1.3.001.patch, PHOENIX-5018.4.x-HBase-1.4.001.patch,
PHOENIX-5018.master.001.patch, PHOENIX-5018.master.002.patch, PHOENIX-5018.master.003.patch
>          Time Spent: 4.5h
>  Remaining Estimate: 0h
> When doing a full rebuild (or initial async build) of a local or global index using IndexTool
and PhoenixIndexImportDirectMapper, or doing a synchronous initial build of a global index
using 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

View raw message