[
https://issues.apache.org/jira/browse/TEZ-1228?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Rajesh Balamohan updated TEZ-1228:
----------------------------------
Attachment: TEZ-1228.WIP.1.patch
For usecases where lots of unique KV pairs are available, having V_END_MARKER
for every KV pair could be space consuming. To cater to such usecases as well,
1. First distinct KV pair would be written as as {KL, VL, K, V}
2. If consecutive key is same as previous one, RLE marker would be added
followed by values & V_END_MARKER. E.g {K1,V1}, {K1,V2}, {K1, V3}, {K2,V1}
would be writtten as
({KL1, VL1, K1, V1} {RLE, VL2, V2, VL3, V3, V_END_MARKER} {KL2, VL1, K2, V1})
Uploading the WIP patch for early reviews.
> Prototype IFile : Define a memory & merge optimized vertex-intermediate file
> format for Tez
> -------------------------------------------------------------------------------------------
>
> Key: TEZ-1228
> URL: https://issues.apache.org/jira/browse/TEZ-1228
> Project: Apache Tez
> Issue Type: Improvement
> Reporter: Rajesh Balamohan
> Labels: perfomance
> Attachments: TEZ-1228-IFile.pdf, TEZ-1228.WIP.1.patch
>
>
> The current vertex-intermediate format used all across Tez is a flat file of
> variable length k,v pairs. For a significant number of use-cases, in
> particular the sorted output phase, a large number of consecutive identical
> keys are found within the same stream. The IFile format ends up writing each
> key out fully into the stream to generate (K,V) pairs instead of ordering it
> into a more efficient K, {V1, .. Vn} list.
> This duplication of key data needs larger buffers to hold in memory and
> requires comparison between keys known to be identical while doing a merge
> sort.
> This bug tracks the building of a prototype IFile format which is optimized
> for lower uncompressed sizes within memory buffers and less compute intensive
> to perform merge sorts during the reducer phase.
--
This message was sent by Atlassian JIRA
(v6.2#6252)