[
https://issues.apache.org/jira/browse/HBASE-9949?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13826704#comment-13826704
]
Ted Yu commented on HBASE-9949:
-------------------------------
@Jon:
I was thinking about the following approach for testing :
1. Introduce config parameter for StoreScanner implementation which would be
used by HStore for creating scanner
2. In TestStoreScanner, add StoreScanner implementation which extends
StoreScanner and set the above config parameter to this class.
3. Register custom ChangedReadersObserver through the following API of HStore :
{code}
public void addChangedReaderObserver(ChangedReadersObserver o) {
{code}
The BEFORE_SEEK hook would be activated before Store.getScanner() is called.
The AFTER_SEEK hook can be activated at the end of ctor of StoreScanner wrapper
created in #2
The custom ChangedReadersObserver would activate the COMPACT_COMPLETE hook.
What do you think ?
> Fix the race condition between Compaction and StoreScanner.init
> ---------------------------------------------------------------
>
> Key: HBASE-9949
> URL: https://issues.apache.org/jira/browse/HBASE-9949
> Project: HBase
> Issue Type: Bug
> Components: Scanners
> Affects Versions: 0.89-fb
> Reporter: Manukranth Kolloju
> Assignee: Manukranth Kolloju
> Priority: Minor
> Fix For: 0.89-fb, 0.98.0
>
> Attachments: 9949-0.96.addendum, 9949-trunk-v1.txt,
> 9949-trunk-v2.txt, 9949-trunk-v3.txt, 9949.addendum
>
> Original Estimate: 48h
> Remaining Estimate: 48h
>
> The StoreScanner constructor has multiple stages and there can be a race
> betwwen an ongoing compaction and the StoreScanner constructor where we might
> get the list of scanners before a compaction and seek on those scanners after
> the compaction.
--
This message was sent by Atlassian JIRA
(v6.1#6144)