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

Duo Zhang commented on HBASE-18453:
-----------------------------------

The place where the users use {{CompactionRequest}} is 
{{Store.requestCompaction(int, CompactionRequest, User)}}. We will call the 
{{beforeExecute}} and {{afterExecute}} methods to tell users that the 
compaction is started and stopped. And another usage is that, we will also 
include the storefiles in {{CompactionRequest}} when compacting.

I think the latter usage is not important, we have plenty of CP hooks to select 
store files for compacting. And for the former usage, we can just introduce a 
{{CompactionLifeCycleTracker}} interface and let user passes this as a 
parameter instead of a {{CompactionRequest}}. So that {{CompactionRequest}} can 
be IA.Private.

And I have an old idea that, we should use implementation class in our own code 
instead of the CP interfaces, I can have a try in this patch.

Thanks. Will be back later.

> CompactionRequest should not be exposed to user directly
> --------------------------------------------------------
>
>                 Key: HBASE-18453
>                 URL: https://issues.apache.org/jira/browse/HBASE-18453
>             Project: HBase
>          Issue Type: Sub-task
>          Components: Coprocessors
>            Reporter: Duo Zhang
>            Assignee: Duo Zhang
>             Fix For: 2.0.0
>
>
> It is an implementation class. And we need to find another to let user know 
> the compaction start and end.



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

Reply via email to