[
https://issues.apache.org/jira/browse/HBASE-15811?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15281806#comment-15281806
]
stack commented on HBASE-15811:
-------------------------------
This is a single thread that does batch put followed by batch get of the just
put data. I am seeing overlap on the server in that the get starts before the
put is finished (it is not a matter of autoflush on the table being false).
This would explain cases where we'd go to read a value but mvcc read point did
not yet include it. Looking at BatchMutatorImpl#backgroundFlushCommits with
synchronous flush set to true, I don't see us waiting on the executor to
complete before returning. If I add logging if outstanding executor count is >
0 just before return from flush, I see incidence in the Test class where an
executor is still running when we return from put to start the get. This I
currently suspect as the issue.
> Batch Get after batch Put does not fetch all Cells
> --------------------------------------------------
>
> Key: HBASE-15811
> URL: https://issues.apache.org/jira/browse/HBASE-15811
> Project: HBase
> Issue Type: Bug
> Components: Client
> Affects Versions: 1.2.1
> Reporter: stack
> Assignee: stack
> Priority: Blocker
> Attachments: Test.java, Test2.java
>
>
> A big batch put followed by a batch get does not always return all Cells put.
> See attached test program by Robert Farr that reproduces the issue. It seems
> to be an issue to do with a cluster of more than one machine. Running against
> a single machine does not have the problem (though the single machine may
> have many regions). Robert was unable to make his program fail with a single
> machine only.
> I reproduced what Robert was seeing running his program. I was also unable to
> make a single machine fail. In a batch of 1000 puts, I see one to three Gets
> fail. I noticed too that if I wait a second after a fail and then re-get, the
> Get succeeds.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)