You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hive.apache.org by "Owen O'Malley (JIRA)" <ji...@apache.org> on 2016/05/03 17:45:13 UTC

[jira] [Updated] (HIVE-9660) store end offset of compressed data for RG in RowIndex in ORC

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

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: https://issues.apache.org/jira/browse/HIVE-9660
>             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
(v6.3.4#6332)