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