On 07/10/15 18:53, Colin P. McCabe wrote:
I think you could come up with a select/poll solution while using the
old function signatures. A 4-byte int is more than enough information
to pass in, given that you can use it as an index into a table in the
C code.
I have thought about that but a simple table would not work very well.
It would have to be potentially quite large and would be sparsely
populated. It would really have to be some sort of map and would most
likely have to be implemented in C. However it is done it becomes a
Solaris-only maintenance burden. Yes it's possible, but it seemed
distinctly undesirable.
There are also a lot of other solution to this problem, like
I pointed out earlier. For example, you dismissed the timer wheel
suggestion because of a detail of a unit test, but we could easily
change the test.
Unfortunately there are somewhere around 100 test failures that I think
are related to the socket timeout issue, which is why I focussed on it.
Anyway, changing the function signatures in the way you described is
certainly reasonable and I wouldn't object to it. It is probably the
most natural solution.
That's the conclusion I came to, but I fully understand there has to be
a solution for the Java/JNI versioning issue as well.
Does that sound acceptable? If so I can draft up a proposal for native
library version and platform naming, library search locations etc.
Yes, I think it would be good to make some progress on HADOOP-11127.
We have been putting off the issue for too long.
Even if I put together a solution for DomainSocket that doesn't need
changes to the JNI interface I'm almost certain that subsequent work
will hit the same issue. I'd rather spend the time up front and come up
with a once-and-for-all solution, I think overall that will work out to
be less effort and certainly less risky.
I'll draft up a proposal and attach it to HADOOP-11127.
Thanks,
--
Alan Burlison
--