hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Lars Hofhansl (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (HBASE-4347) Remove duplicated code from Put, Delete, Get, Scan, MultiPut
Date Thu, 08 Sep 2011 19:18:09 GMT

     [ https://issues.apache.org/jira/browse/HBASE-4347?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel

Lars Hofhansl updated HBASE-4347:

    Attachment: 4347.txt

This are the two things I have roughly in mind:
1. A simple OperationWithAttributes class (and Attributes interface) that all Operations that
attributes extend (Get/Scan/Put/Delete).
2. A Mutation class. Extended by Put and Delete. All shared attributes are moved up into Mutation
(as protected), and shared methods are move up.

While doing this I noticed a bunch differences between Put and Delete:
o Put.toMap does not include the timestamp.
o Put also has no setter for timestamp
o Delete has no numFamilies method
o Delete has no heapSize method.

> Remove duplicated code from Put, Delete, Get, Scan, MultiPut
> ------------------------------------------------------------
>                 Key: HBASE-4347
>                 URL: https://issues.apache.org/jira/browse/HBASE-4347
>             Project: HBase
>          Issue Type: Improvement
>          Components: util
>    Affects Versions: 0.92.0
>            Reporter: Lars Hofhansl
>            Priority: Minor
>             Fix For: 0.92.0
>         Attachments: 4347.txt
> This came from discussion with Stack w.r.t. HBASE-2195.
> There is currently a lot of duplicated code especially between Put and Delete, and also
between all Operations.
> For example all of Put/Delete/Get/Scan have attributes with exactly the same code in
all classes.
> Put and Delete also have the familyMap, Row, Rowlock, Timestamp, etc.
> One way to do this is to introduce "OperationWithAttributes" which extends Operation,
and have Put/Delete/Get/Scan extend that rather than Operation.
> In addition Put and Delete could extends from Mutation (which itself would extend OperationWithAttributes).
> If a static inheritance hierarchy is not desired here, we can use delegation.

This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira


View raw message