hbase-issues mailing list archives

[jira] [Resolved] (HBASE-15296) Break out writer and reader from StoreFile

Date

Thu, 11 May 2017 03:50:04 GMT

[ https://issues.apache.org/jira/browse/HBASE-15296?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Duo Zhang resolved HBASE-15296.
-------------------------------
Resolution: Fixed
Let's make some progress here. I think incompatible change on master is acceptable. And even
on branch-1 we are allowed to break the compatibilily between minor releases in most cases.
Will open a new issue to track the backporting work, based on the fully compatible patch provided
by [~appy].
Thanks.
> Break out writer and reader from StoreFile
> ------------------------------------------
>
> Key: HBASE-15296
> URL: https://issues.apache.org/jira/browse/HBASE-15296
> Project: HBase
> Issue Type: Improvement
> Components: regionserver
> Affects Versions: 2.0.0
> Reporter: Appy
> Assignee: Appy
> Fix For: 2.0.0
>
> Attachments: HBASE-15296-branch-1.1.patch, HBASE-15296-branch-1.2.patch, HBASE-15296-branch-1.patch,
HBASE-15296-branch-1.patch, HBASE-15296-branch-1-v1.patch, HBASE-15296-master.patch, HBASE-15296-master-v2.patch,
HBASE-15296-master-v3.patch, HBASE-15296-master-v4.patch, HBASE-15296-master-v5.patch
>
>
> StoreFile.java is trending to become a monolithic class, it's ~1800 lines. Would it make
sense to break out reader and writer (~500 lines each) into separate files.
> We are doing so many different things in a single class: comparators, reader, writer,
other stuff; and it hurts readability a lot, to the point that just reading through a piece
of code require scrolling up and down to see which level (reader/writer/base class level)
it belongs to. These small-small things really don't help while trying to understanding the
code. There are good reasons we don't do these often (affects existing patches, needs to be
done for all branches, etc). But this and a few other classes can really use a single iteration
of refactoring to make things a lot better.
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)