Hi Julien,
Thats the theory.  I don't think that there is anything in the C++ code
base that should break but we don't have access to hardware to verify that.

The java Arrow code currently asserts that it is running on a little endian
machine.  I did a very quick scan of the Java code and didn't see anything
there would break on a big-endian system, but according to at least one
person who is working on Drill, it seems that Drill assumes little
endianness (I don't know if this is in Arrow/ValueVector code or it is
higher up the stack in the Drill code).

Thanks,
Micah


On Thu, Aug 4, 2016 at 11:36 AM, Julien Le Dem <jul...@dremio.com> wrote:

> So it sounds like right now it just works as long as there are no
> inter-system communication (with different endianness) because both java
> and c++ code just use the underlying endianness.
> Is that correct?
>
>
> On Thu, Aug 4, 2016 at 11:17 AM, Micah Kornfield <emkornfi...@gmail.com>
> wrote:
>
>> Hi Sanjay,
>> I think we are trying to work that out now.  As you've seen with some of
>> you initial investigation we have no coverage for big-endian machines yet.
>> But in the long run, we should be able to make it work (it seems like
>> there
>> might be some difference of opinion on how to make it work).
>>
>> Thanks,
>> Micah
>>
>> On Mon, Aug 1, 2016 at 11:16 AM, Sanjay Rao <getsanjay...@live.com>
>> wrote:
>>
>> > Hi Wes, Hi Micah,
>> > I understood what you meant, so point 2. Arrow working with Big Endian
>> > machine to Big Endian shouldn't be an issue right ?
>> > Please confirm.
>> > Thanks,Sanjay
>> > > From: wesmck...@gmail.com
>> > > Date: Mon, 1 Aug 2016 11:07:07 -0700
>> > > Subject: Re: Is there plan to support BigEndian Systems like SUN SPARC
>> > Hardware ?
>> > > To: dev@arrow.apache.org; emkornfi...@gmail.com
>> > >
>> > > hey Micah,
>> > >
>> > > On Mon, Aug 1, 2016 at 11:02 AM, Micah Kornfield <
>> emkornfi...@gmail.com>
>> > wrote:
>> > > > Hi Wes,
>> > > > The point I was trying to argue from an earlier thread is that the
>> most
>> > > > common cases for relocation are:
>> > > > 1.  Little endian machine to little endian machine (most likely same
>> > > > machine)
>> > > > 2.  big endian machine to big endian machine (most likely same
>> machine)
>> > > > 3.  big endian machine to little endian machine or vice versa
>> > > >
>> > > > The purpose of the metadata would be to make use-cases 1 and 2
>> possible
>> > > > without byte-swapping.  Use case 3 would obviously require byte
>> > swapping
>> > > > but for an initial implementation the code could simply indicate
>> that
>> > it is
>> > > > not supported.
>> > > >
>> > > > This seems less complex to me than actually implementing any sort of
>> > > > byte-swapping logic while still supporting the widest variety of
>> > hardware
>> > > > with the same code for the most common use-cases.
>> > >
>> > > This makes sense. My comments were for the situation that a big endian
>> > > system would be exposing memory to an unknown consumer -- for example,
>> > > if we implemented an RPC wire format for Arrow memory, then in general
>> > > a big endian system would need to send little-endian integers to an
>> > > arbitrary receiver. I'm not sure the best way to provide for easy
>> > > native-endianness support for cases 1/2, but trying to fully solve
>> > > this problem now seems premature until we've established some of these
>> > > tools (so long as we haven't painted ourselves into a corner).
>> > >
>> > > - Wes
>> > >
>> > > >
>> > > > Thanks,
>> > > > Micah
>> > > >
>> > > > P.S. If anybody can provide pointers I'd be interested to understand
>> > which
>> > > > pieces of the java code make assumptions about little-endianness.
>> >
>> >
>>
>
>
>
> --
> Julien
>

Reply via email to