Hey Micah, thanks for starting the discussion.

I just skimmed that thread and it isn't entirely clear that there was a
conclusion that the overhead was worth it. I think everybody agrees that it
would be nice to have the code work on both platforms. On the flipside, the
code noise for a rare case makes the cost-benefit questionable.

In the Java code, we wrote the code to explicitly disallow big endian
platforms and put preconditions checks in. I definitely think if we want to
support this, it should be done holistically across the code with
appropriate test plan (both functional and perf).

To me, the question is really about how many use cases are blocked by this.
I'm not sure I've heard anyone say that the limiting factor to leveraging
Java Arrow was the block on endianess. Keep in mind that until very
recently, using any Arrow Java code would throw a preconditions check
before you could even get started on big-endian and I don't think we've
seen a bunch of messages on that exception. Adding if conditions throughout
the codebase like this patch: [1] isn't exactly awesome and it can also
risk performance impacts depending on how carefully it is done.

If there isn't a preponderance of evidence of many users being blocked by
this capability, I don't think we should accept the code. We already have a
backlog of items that we need to address just ensure existing use cases
work well. Expanding to new use cases that there is no clear demand for
will likely just increase code development cost at little benefit.

What do others think?

[1] https://github.com/apache/arrow/pull/7923#issuecomment-674311119

On Fri, Aug 14, 2020 at 4:36 PM Micah Kornfield <emkornfi...@gmail.com>
wrote:

> Kazuaki Ishizak has started working on Big Endian support in Java
> (including setting up CI for it).  Thank you!
>
> We previously discussed support for Big Endian architectures in C++ [1] and
> generally agreed that it was a reasonable thing to do.
>
> Similar to C++ I think as long as we have a working CI setup it is
> reasonable for Java to support Big Endian machines.
>
> But I think there might be differing opinions so it is worth a discussion
> to see if there are technical blockers or other reasons for not supporting
> Big Endian architectures in the existing java implementation.
>
> Thanks,
> Micah
>
>
> [1]
>
> https://lists.apache.org/thread.html/rcae745f1d848981bb5e8dddacfc4554641aba62e3c949b96bfd8b019%40%3Cdev.arrow.apache.org%3E
>

Reply via email to