You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hbase.apache.org by "Sergey Shelukhin (JIRA)" <ji...@apache.org> on 2013/02/21 05:16:13 UTC
[jira] [Updated] (HBASE-7843) enable encapsulating compaction
policy/compactor/store file manager interaction shennanigans
[ 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