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

Andrew Purtell commented on HBASE-18906:
----------------------------------------

Phoenix doesn't use these APIs, but they should. Instead they are doing this 
terrible thing: 
https://github.com/apache/phoenix/blob/master/phoenix-core/src/main/java/org/apache/phoenix/coprocessor/UngroupedAggregateRegionObserver.java#L236
 

I think we should consider providing APIs for the following:
- Request flush async
- Request compaction async
- Poll for the completion of a single flush request
- Poll for the completion of a single compaction request
- Wait for all pending flushes to complete on the region
- Wait for all pending compactions to finish on the region

It's a good idea to get away from providing access to low level implementation 
details. However I think it would be good to allow coprocessors to wrap the 
behaviors. One example: guarantee persistence in HFiles: write some data, 
trigger a flush (API needed), wait for flushes to complete (API needed), then 
do more stuff. Another example: secure delete: lay some delete markers, trigger 
flushing and compactions (APIs needed), wait for the activity to complete (API 
needed), then do more stuff. 

> 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