[
https://issues.apache.org/jira/browse/PHOENIX-2446?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15098768#comment-15098768
]
James Taylor commented on PHOENIX-2446:
---------------------------------------
That's good information. So how can we guarantee that the mvcc gets advanced
before the UPSERT SELECT runs? Would a flush do that or would it not see the
data yet either potentially because the mvcc hasn't been advanced? Is a sleep
our only option, and if so would a very minimal sleep (1-5 seconds) do the
trick? Of course there's always stuff that can delay the advance of the mvcc.
[~lhofhansl] - any advice for us here? FWIW, we've take a different approach
for transactional tables, leveraging the transaction manager where we can
detect this situation reliably.
> Immutable index - Index vs base table row count does not match when index is
> created during data load
> -----------------------------------------------------------------------------------------------------
>
> Key: PHOENIX-2446
> URL: https://issues.apache.org/jira/browse/PHOENIX-2446
> Project: Phoenix
> Issue Type: Bug
> Affects Versions: 4.6.0
> Reporter: Mujtaba Chohan
> Assignee: Thomas D'Silva
> Fix For: 4.7.0
>
> Attachments: PHOENIX-2446-wip.patch, PHOENIX-2446.patch, server.log
>
>
> I'll add more details later but here's the scenario that consistently
> produces wrong row count for index table vs base table for immutable async
> index.
> 1. Start data upsert
> 2. Create async index
> 3. Trigger M/R index build
> 4. Keep data upsert going in background during step 2,3 and a while after M/R
> index finishes.
> 5. End data upsert.
> Now count with index enabled vs count with hint to not use index is off by a
> large factor. Will get a cleaner repro for this issue soon.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)