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

Kenneth Knowles updated BEAM-10042:
-----------------------------------

This Jira ticket has a pull request attached to it, but is still open. Did the 
pull request resolve the issue? If so, could you please mark it resolved? This 
will help the project have a clear view of its open issues.

> Add alternate constructor to improve byte encoding performance in SortValues
> ----------------------------------------------------------------------------
>
>                 Key: BEAM-10042
>                 URL: https://issues.apache.org/jira/browse/BEAM-10042
>             Project: Beam
>          Issue Type: Improvement
>          Components: extensions-java-sorter
>            Reporter: Claire McGinty
>            Priority: P3
>              Labels: Clarified
>          Time Spent: 10m
>  Remaining Estimate: 0h
>
> The `SortValues` transform operates on key-groups of `KV<PrimaryKeyT, 
> Iterable<KV<SecondaryKeyT, ValueT>>>`. From those key groups it iterates 
> through each element and uses `CoderUtils.encodeToByteArray` on each 
> SecondaryKeyT-ValueT pair. This operation can be expensive and its 
> parallelism is limited by the # of key groups.
> I'd like to propose adding an alternative to `SortValuesDoFn` that operates 
> on `KV<PrimaryKeyT, Iterable<KV<byte[], byte[]>>>` and can skip the encoding 
> step within the key-group. The user's pipeline may be able to encode the data 
> to bytes in a prior step in a much more parallelized and efficient way (i.e. 
> in a `MapElements` transform). I've seen performance gains in every Dataflow 
> metric from from patching this in my team's pipeline.
> (I would visualize the alternative vs pre-existing constructors to look 
> similar to generic vs specific Avro constructors, where the generic 
> constructor has a static type and specific Avro has a parameterized T.)
>  
> What do you think? 



--
This message was sent by Atlassian Jira
(v8.20.1#820001)

Reply via email to