[
https://issues.apache.org/jira/browse/HBASE-7843?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Sergey Shelukhin updated HBASE-7843:
------------------------------------
Description:
To avoid massive casting and/or deciphering of structures traveling between
SFM, compaction policy, and compactor in non-trivial compaction schemes like
stripe or level, we need to make interaction between themselves hidden.
Elsewhere, the changes are being made to coprocessor for compactions that will
make CompactionRequest a limited-visibility class for users, with coprocessors
being able to subclass and return it. -This seems like a viable solution for
the problem at hand too. Policy will (optionally) subclass compaction request
and return it. Instead of calling something.compact(req), req.compact() will be
called (with "something" already stored inside req as of now), after which,
magic will happen.-
After merging that code I actually see that subclassing compactionrequest in
both will break the policy, or require bunch of ugly code in coprocessors (a
subclass for every policy, and telling them apart.
was:
To avoid massive casting and/or deciphering of structures traveling between
SFM, compaction policy, and compactor in non-trivial compaction schemes like
stripe or level, we need to make interaction between themselves hidden.
Elsewhere, the changes are being made to coprocessor for compactions that will
make CompactionRequest a limited-visibility class for users, with coprocessors
being able to subclass and return it. This seems like a viable solution for the
problem at hand too. Policy will (optionally) subclass compaction request and
return it. Instead of calling something.compact(req), req.compact() will be
called (with "something" already stored inside req as of now), after which,
magic will happen.
> enable encapsulating compaction policy/compactor/store file manager
> interaction shennanigans
> --------------------------------------------------------------------------------------------
>
> Key: HBASE-7843
> URL: https://issues.apache.org/jira/browse/HBASE-7843
> Project: HBase
> Issue Type: Improvement
> Components: Compaction
> Reporter: Sergey Shelukhin
> Assignee: Sergey Shelukhin
>
> To avoid massive casting and/or deciphering of structures traveling between
> SFM, compaction policy, and compactor in non-trivial compaction schemes like
> stripe or level, we need to make interaction between themselves hidden.
> Elsewhere, the changes are being made to coprocessor for compactions that
> will make CompactionRequest a limited-visibility class for users, with
> coprocessors being able to subclass and return it. -This seems like a viable
> solution for the problem at hand too. Policy will (optionally) subclass
> compaction request and return it. Instead of calling something.compact(req),
> req.compact() will be called (with "something" already stored inside req as
> of now), after which, magic will happen.-
> After merging that code I actually see that subclassing compactionrequest in
> both will break the policy, or require bunch of ugly code in coprocessors (a
> subclass for every policy, and telling them apart.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira