[
https://issues.apache.org/jira/browse/PHOENIX-5018?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16772540#comment-16772540
]
Hudson commented on PHOENIX-5018:
---------------------------------
FAILURE: Integrated in Jenkins build PreCommit-PHOENIX-Build #2341 (See
[https://builds.apache.org/job/PreCommit-PHOENIX-Build/2341/])
PHOENIX-5018 Index mutations created by UPSERT SELECT will have wrong (gjacoby:
rev f9908c80ed8d986325867b44adf119f2d26ff783)
* (edit)
phoenix-core/src/main/java/org/apache/phoenix/mapreduce/index/IndexTool.java
* (edit)
phoenix-core/src/main/java/org/apache/phoenix/schema/MetaDataClient.java
* (edit) phoenix-core/src/it/java/org/apache/phoenix/end2end/IndexToolIT.java
* (edit)
phoenix-core/src/main/java/org/apache/phoenix/mapreduce/util/PhoenixMapReduceUtil.java
* (edit) phoenix-core/src/it/java/org/apache/phoenix/rpc/PhoenixServerRpcIT.java
* (edit)
phoenix-core/src/main/java/org/apache/phoenix/mapreduce/util/PhoenixConfigurationUtil.java
* (add)
phoenix-core/src/it/java/org/apache/phoenix/end2end/IndexBuildTimestampIT.java
* (edit)
phoenix-core/src/main/java/org/apache/phoenix/mapreduce/PhoenixRecordReader.java
* (add)
phoenix-core/src/main/java/org/apache/phoenix/mapreduce/index/PhoenixServerBuildIndexMapper.java
* (edit)
phoenix-core/src/main/java/org/apache/phoenix/index/IndexMaintainer.java
* (edit)
phoenix-core/src/main/java/org/apache/phoenix/mapreduce/PhoenixInputFormat.java
* (add)
phoenix-core/src/main/java/org/apache/phoenix/mapreduce/PhoenixServerBuildIndexInputFormat.java
* (edit)
phoenix-core/src/it/java/org/apache/phoenix/end2end/TableDDLPermissionsIT.java
* (add)
phoenix-core/src/main/java/org/apache/phoenix/compile/ServerBuildIndexCompiler.java
> Index mutations created by UPSERT SELECT 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
> Fix For: 4.15.0, 5.1
>
> Attachments: PHOENIX-5018.4.x-HBase-1.3.001.patch,
> PHOENIX-5018.4.x-HBase-1.3.002.patch, PHOENIX-5018.4.x-HBase-1.4.001.patch,
> PHOENIX-5018.4.x-HBase-1.4.002.patch, PHOENIX-5018.master.001.patch,
> PHOENIX-5018.master.002.patch, PHOENIX-5018.master.003.patch,
> PHOENIX-5018.master.004.patch
>
> Time Spent: 5.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
(v7.6.3#76005)