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

Jacques Nadeau commented on ARROW-801:
--------------------------------------

Since these are low-level interfaces, i'd prefer to not have to constantly deal 
with type casting. (Much like java.lang.Iterator has remove() even if it isn't 
always supported). 

Using [Fix|Variable]WidthVector interfaces are especially problematic since 
they aren't connected to FieldVector.  I think the interface hierarchy could be 
improved but I'd prefer not to block this work by that (since I think that is a 
longer term piece of work).

> [JAVA] Provide direct access to underlying buffer memory addresses in 
> consistent way without generating garbage or large amount indirections
> --------------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: ARROW-801
>                 URL: https://issues.apache.org/jira/browse/ARROW-801
>             Project: Apache Arrow
>          Issue Type: Bug
>          Components: Java - Vectors
>            Reporter: Jacques Nadeau
>
> When working with Arrow vectors recently, we observed a situation where our 
> time was dominated  by calls to getFieldBuffers() to be able to retrieve 
> memory addresses (22s out of 26s total for a piece of code). We should 
> provide a direct mechanism to access this data so we can avoid all the extra 
> indirection and object creation. 
> A proposal:
> getBitAddress();
> getDataAddress();
> getOffsetAddress();
> These interfaces would be made available at the FieldVector interface and 
> simply throw UnsupportedOperationException where not supported.
> Unsupported Operations: 
> data for list type
> offset for fixed width types
> data and offset for struct type
> data for union type



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Reply via email to