[ 
https://issues.apache.org/jira/browse/ARROW-5224?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16839020#comment-16839020
 ] 

Ji Liu commented on ARROW-5224:
-------------------------------

[[email protected]] [~bryanc] Thanks for your comments. Sure we have 
tested the performance with encoding Arrow in our application, and it shows 
this will significantly reduce shuffle data with equal or even less E2E time 
(for Int and BigInt type). 

I agree with [~bryanc], we could simply provide a utility class to encode 
BigIntVector into a VarBinaryVector(The only thing I'm worried about is whether 
multiple transformations will result in significant performance overhead). In 
this way, we won‘t break the existing APIs & protocol. I would like to work in 
this way and test the performance as well. If this works fine, we can further 
extend it to other languages.

What do you think?

> [Java] Add APIs for supporting directly serialize/deserialize ValueVector
> -------------------------------------------------------------------------
>
>                 Key: ARROW-5224
>                 URL: https://issues.apache.org/jira/browse/ARROW-5224
>             Project: Apache Arrow
>          Issue Type: Improvement
>            Reporter: Ji Liu
>            Assignee: Ji Liu
>            Priority: Minor
>              Labels: pull-request-available
>          Time Spent: 2.5h
>  Remaining Estimate: 0h
>
> There is no API to directly serialize/deserialize ValueVector. The only way 
> to implement this is to put a single FieldVector in VectorSchemaRoot and 
> convert it to ArrowRecordBatch, and the deserialize process is as well. 
> Provide a utility class to implement this may be better, I know all 
> serializations should follow IPC format so that data can be shared between 
> different Arrow implementations. But for users who only use Java API and want 
> to do some further optimization, this seem to be no problem and we could 
> provide them a more option.
> This may take some benefits for Java user who only use ValueVector rather 
> than IPC series classes such as ArrowReordBatch:
>  * We could do some shuffle optimization such as compression and some 
> encoding algorithm for numerical type which could greatly improve performance.
>  * Do serialize/deserialize with the actual buffer size within vector since 
> the buffer size is power of 2 which is actually bigger than it really need.
>  * Reduce data conversion(VectorSchemaRoot, ArrowRecordBatch etc) to make it 
> user-friendly.
>  



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to