You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@arrow.apache.org by "Liya Fan (Jira)" <ji...@apache.org> on 2020/02/03 07:27:00 UTC

[jira] [Created] (ARROW-7746) [Java] Support large buffer for IPC

Liya Fan created ARROW-7746:
-------------------------------

             Summary: [Java] Support large buffer for IPC
                 Key: ARROW-7746
                 URL: https://issues.apache.org/jira/browse/ARROW-7746
             Project: Apache Arrow
          Issue Type: Task
          Components: Java
            Reporter: Liya Fan


The motivation is described in https://github.com/apache/arrow/pull/6323#issuecomment-580137629.

When the size of the ArrowBuf exceeds 2GB, our flighing library does not work due to integer overflow. 

This is because internally, we have used some data structures which are based on 32-bit integers. To resolve the problem, we must revise/replace the data structures to make them support 64-bit integers. 

As a concrete example, we can see that when the server sends data through IPC, an org.apache.arrow.flight.ArrowMessage object is created, and is wrapped as an InputStream through the `asInputStream` method. In this method, we use data stuctures like java.io.ByteArrayOutputStream and io.netty.buffer.ByteBuf, which are based on 32-bit integers (we can observe that NettyArrowBuf#length and ByteArrayOutputStream#count are both 32-bit integers). 



--
This message was sent by Atlassian Jira
(v8.3.4#803005)