hive-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Owen O'Malley (JIRA)" <>
Subject [jira] [Updated] (HIVE-9660) store end offset of compressed data for RG in RowIndex in ORC
Date Tue, 03 May 2016 15:45:13 GMT


Owen O'Malley updated HIVE-9660:
    Attachment: owen-hive-9660.patch

Here's my first pass. As I've discussed:
* PositionedOutputStream gets a registerCallback method that gets called when the next compression
block finishes.
* IntegerWriter, BitFieldWriter, and RunLengthByteWriter all get a registerCallback method
that gets called when the RLE block and then the compression block finish.
* StringRedBlackTree gets a method that writes to an OutputStream without copying the bytes
to a Text object first.
* The StringTreeWriter gets refactored so that once the decision to use direct encoding is
made, it works just like BinaryTreeWriter.

There are a couple of things that I haven't addressed yet:
* isPresent stream suppression doesn't remove the first length from the vector.
* The reading code doesn't use the length vector yet.
* I haven't added unit tests for the new code.
* I know the current ORC unit tests are failing. The changes to the OutStream and run length
encoders are very straightforward, but I'm tracking down what I've messed up in WriterImpl.

> store end offset of compressed data for RG in RowIndex in ORC
> -------------------------------------------------------------
>                 Key: HIVE-9660
>                 URL:
>             Project: Hive
>          Issue Type: Bug
>            Reporter: Sergey Shelukhin
>            Assignee: Sergey Shelukhin
>         Attachments: HIVE-9660.01.patch, HIVE-9660.02.patch, HIVE-9660.03.patch, HIVE-9660.04.patch,
HIVE-9660.05.patch, HIVE-9660.06.patch, HIVE-9660.07.patch, HIVE-9660.07.patch, HIVE-9660.08.patch,
HIVE-9660.09.patch, HIVE-9660.10.patch, HIVE-9660.10.patch, HIVE-9660.11.patch, HIVE-9660.patch,
HIVE-9660.patch, owen-hive-9660.patch
> Right now the end offset is estimated, which in some cases results in tons of extra data
being read.
> We can add a separate array to RowIndex (positions_v2?) that stores number of compressed
buffers for each RG, or end offset, or something, to remove this estimation magic

This message was sent by Atlassian JIRA

View raw message