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)

Reply via email to