[openstack-dev] [all] [dlm] Zookeeper and openjdk, mythbusted

Thierry Carrez thierry at openstack.org
Mon Nov 9 11:05:03 UTC 2015


Joshua Harlow wrote:
> [...]
> So in order to dispel this, I tried in that session to say 'actually I
> have heard nothing saying it doesn't work with openjdk' in that session
> but the voices did not seem to hear that (or they were unable to listen
> due to there emotions stressed/high).

As one of the voices there, I heard your argument alright :)

"Not hearing it doesn't work with OpenJDK" might mean two things: that
it works pretty well with OpenJDK, or that nobody is using it with
OpenJDK. The second case is not a myth. In a lot of Java shops, you just
default to Oracle's JVM so that you eliminate one variable. A lot of
Java stacks actually recommend that you do that, so that they don't have
to care about the difference as well. Finally, "try reproducing the
issue with Oracle's JVM" is still today answer 0 in a large number of
Java bugtrackers when you submit an issue running OpenJDK.

Now, Zookeeper happens to be quite a solid piece of code. It is
certainly less vulnerable to subtle variations and is not (to my
knowlegde) exercising the dark corners of the TCK as much as, say, a
J2EE engine or Cassandra. It is great to get the feedback from those
large shops that they are running it with OpenJDK without issues.

> [...]
> The difference is the quality of the OpenJDK binaries built and released
> by package maintainers.
> 
> If you are getting IcedTea from RedHat (their supported OpenJDK binary)
> or Azul's Zulu (Fully supported OpenJDK) then you're *absolutely fine*.
> 
> If you're relying on the Debian or Fedora packages then *occasionally*
> those package maintainers don't put out a great binary as they don't run
> the TCK tests (partly because they can't as they are unwilling/unable to
> pay Oracle for that TCK).
> 
> Hope that all makes sense...

So that is an important point. While there is "the Oracle JVM", there is
nothing like "OpenJDK". There are a number of OpenJDK builds by various
distros and they are all different (and of varying quality). The beast
is brittle, as anyone who has ever run the TCK on OpenJDK should be able
to tell you. The reason a lot of Java bugtrackers still start by asking
you to "reproduce on Oracle's JVM" is to eliminate that unknown, not
because OpenJDK is always bad.

My main objection about picking a Java solution was that we'd in effect
force our users into a non-free solution so that they eliminate that
unknown themselves. I guess as long as we are reasonably confident that
ZooKeeper behaves well with most OpenJDK implementations, and that there
are solid, well-known free software deployment options available, we
should be fine ?

-- 
Thierry Carrez (ttx)



More information about the OpenStack-dev mailing list