[ 
https://issues.apache.org/jira/browse/HBASE-18906?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16209100#comment-16209100
 ] 

Duo Zhang commented on HBASE-18906:
-----------------------------------

OK, after reviewing the code of flush, I found a corner case that the current 
approach can not cover. For flush/compaction, if there is a flush/compaction 
ongoing for that region, then the flush/compaction request may be failed, 
especially for flush. So if the life cycle tracker tells us the request is 
failed and we know that there is a flush/compaction ongoing, but we do not know 
when it will finish...

So maybe we still need the methods which are used to poll the status of the 
current ongoing flush/compaction if any. A typical usage maybe:

1. Request flush/compaction
2. If completed successfully, then done.
3. If failed, then use the methods described above to wait for the completion 
of the onging flush/compaction.

What do you think?

Thanks.

> Investigate Phoenix usages of Region#waitForXXX APIs
> ----------------------------------------------------
>
>                 Key: HBASE-18906
>                 URL: https://issues.apache.org/jira/browse/HBASE-18906
>             Project: HBase
>          Issue Type: Sub-task
>          Components: Coprocessors
>            Reporter: Anoop Sam John
>            Assignee: Anoop Sam John
>             Fix For: 2.0.0-alpha-4
>
>
> While reviewing HBASE-18183, Andy pointed out that Phoenix uses 
> waitForFlushesAndCompactions and/or waitForFlushes for diff reasons.  This 
> issue is to see why they need them and whether alternate ways are possible. 
> This seems to be too much internal stuff and a normal CP hook calling these 
> would be dangerous.
> If there are alternate ways for Phoenix not to use this and not landing in 
> issues (As said by Andy) we should suggest/fix for them.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to