[
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)