hbase-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "stack (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (HBASE-7660) Remove HFileV1 code
Date Tue, 29 Jan 2013 05:13:14 GMT

    [ https://issues.apache.org/jira/browse/HBASE-7660?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13565085#comment-13565085
] 

stack commented on HBASE-7660:
------------------------------

Regards the migration 'tool', or 'tool' to check for presence of v1 files, I imagine it as
an addition to the hfile tool http://hbase.apache.org/book.html#hfile_tool2 The hfile tool
already takes a bunch of args including printing out meta.  We could add an option to print
out version only -- or return 1 if version 1 or some such -- and then do a bit of code to
just list all hfiles and run this script against each.  Could MR it if too many files.

I'd see this tool as a blocker on 0.96.  Have we filed an issue for it?

On the patch:

testBloomEdgeCases can be removed because?  I don't see obvious v1 reference.

Rather than remove these lines:

-    case 1:
-      return new HFileWriterV1.WriterFactoryV1(conf, cacheConf);

... throw an unsupportedoperationexception or some such?  Maybe it is ok because we fall through
to CorruptHFileException?

If so, that is fine.

I'm +1 on commit.

                
> Remove HFileV1 code
> -------------------
>
>                 Key: HBASE-7660
>                 URL: https://issues.apache.org/jira/browse/HBASE-7660
>             Project: HBase
>          Issue Type: Improvement
>          Components: hbck, HFile, migration
>            Reporter: Matt Corgan
>            Assignee: Ted Yu
>             Fix For: 0.96.0
>
>         Attachments: 7660-v1.txt, 7660-v2.txt, 7660-v3.txt, 7660-v4.txt
>
>
> HFileV1 should be removed from the regionserver because it is somewhat of a drag on development
for working on the lower level read paths.  It's an impediment to cleaning up the Store code.
> V1 HFiles ceased to be written in 0.92, but the V1 reader was left in place so users
could upgrade from 0.90 to 0.92.  Once all HFiles are compacted in 0.92, then the V1 code
is no longer needed.  We then decided to leave the V1 code in place in 0.94 so users could
upgrade directly from 0.90 to 0.94.  The code is still there in trunk but should probably
be shown the door.  I see a few options:
> 1) just delete the code and tell people to make sure they compact everything using 0.92
or 0.94
> 2) create a standalone script that people can run on their 0.92 or 0.94 cluster that
iterates the filesystem and prints out any v1 files with a message that the user should run
a major compaction
> 3) add functionality to 0.96.0 (first release, maybe in hbck) that proactively kills
v1 files, so that we can be sure there are none when upgrading from 0.96 to 0.98
> 4) punt to 0.98 and probably do one of the above options in a year
> I would vote for #1 or #2 which will allow us to have a v1-free 0.96.0.  HFileV1 has
already survived 2 major release upgrades which i think many would agree is more than enough
for a pre-1.0, free product.  If we can remove it in 0.96.0 it will be out of the way to introduce
some nice performance improvements in subsequent 0.96.x releases.

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

Mime
View raw message