hadoop-common-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "eric baldeschwieler (JIRA)" <j...@apache.org>
Subject [jira] Commented: (HADOOP-54) SequenceFile should compress blocks, not individual entries
Date Wed, 28 Jun 2006 16:36:30 GMT
    [ http://issues.apache.org/jira/browse/HADOOP-54?page=comments#action_12418273 ] 

eric baldeschwieler commented on HADOOP-54:
-------------------------------------------

I've been thinking about this.  I think we should use a very simple scheme like the current
sequence file.  The writer would take a configurable buffer, maybe 10 meg by default, fill
that with key/values and then compress them.  The result would be stored with start markers
like the current sequence file, so the partitioning logic could remain unchanged.

Within a block, I think we should compress the keys together in a block and the values in
a following block.  Both blocks' lengths should be stored, so that one can quickly scan the
keys and then scan only as far as needed in the value blocks.  This would allow very efficient
sub-sampling when you have large data blocks.  Which could be a life saver in some of our
typical apps.  You'll also get better compression, since you'll be compressing like items
together.

Thoughts?

> SequenceFile should compress blocks, not individual entries
> -----------------------------------------------------------
>
>          Key: HADOOP-54
>          URL: http://issues.apache.org/jira/browse/HADOOP-54
>      Project: Hadoop
>         Type: Improvement

>   Components: io
>     Versions: 0.2.0
>     Reporter: Doug Cutting
>     Assignee: Michel Tourn
>      Fix For: 0.4.0

>
> SequenceFile will optionally compress individual values.  But both compression and performance
would be much better if sequences of keys and values are compressed together.  Sync marks
should only be placed between blocks.  This will require some changes to MapFile too, so that
all file positions stored there are the positions of blocks, not entries within blocks.  Probably
this can be accomplished by adding a getBlockStartPosition() method to SequenceFile.Writer.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira


Mime
View raw message