[
https://issues.apache.org/jira/browse/PHOENIX-2478?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15095006#comment-15095006
]
Poorna Chandra commented on PHOENIX-2478:
-----------------------------------------
bq. Poorna Chandra - would be much appreciated if you could review this, in
particular the MutationState.commitWriteFence() and
MutationState.addReadFence() to make sure I'm using the APIs correctly.
The usage of Visibility Fence in PHOENIX-2478_v4.patch looks fine to me. Just
one question - what happens when fence await throws {{TimeoutException}}? Is
the index build aborted?
bq. Minor nit: it'd be nice if VisibilityFence.prepareWait() didn't start a new
transaction as that's not necessary in our case.
Are you saying that {{VisibilityFence.prepareWait()}} can use an existing
transaction started by the calling code? If so, caller will have to take over
handling re-tries, right?
bq. Also, it feels like the VisibilityFence feature would benefit from having
something like the ability to do an autonomous transaction to establish the
WriteFence. We really want to add a write barrier at the next possible non
conflicting timestamp, something that seems like would be possible with a new
TransactionManager API.
I agree. Filed https://issues.cask.co/browse/TEPHRA-166 and
https://issues.cask.co/browse/TEPHRA-167 for this.
> Rows committed in transaction overlapping index creation are not populated
> --------------------------------------------------------------------------
>
> Key: PHOENIX-2478
> URL: https://issues.apache.org/jira/browse/PHOENIX-2478
> Project: Phoenix
> Issue Type: Sub-task
> Reporter: James Taylor
> Assignee: James Taylor
> Fix For: 4.7.0
>
> Attachments: PHOENIX-2478.patch, PHOENIX-2478_v2.patch,
> PHOENIX-2478_v3.patch, PHOENIX-2478_v4.patch
>
>
> For a reproducible case, see IndexIT.testCreateIndexAfterUpsertStarted() and
> the associated FIXME comments for PHOENIX-2446.
> The case that is failing is when a commit starts before an index exists, but
> commits after the index build is completed. For transactional data, this is
> problematic because the index gets a timestamp after the commit of the data
> table mutation and thus these mutations won't be seen during the commit.
> Also, when the index is being built, the data hasn't yet been committed and
> thus won't be part of the initial index build.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)