While building OpenDJ I hit a roadblock : XJC is defective with OpenJDK 8 and prevents us from building the DSML gateway that is part of the OpenDJ project. It’s only recently when the openjdk bug database was made publicly available that I found it was a known P1 issue, yet still not resolved.
Recently someone filed a bug against OpenDJ for failing with openjdk 8, so we paid more attention, found the cause of the failure and fixed it. And now OpenDJ directory server is working fine on openjdk 8. We are keeping an automatic build and test with openjdk8 (*) to make sure things will work when Java 8 is released.
Next steps will be to verify that OpenDJ still works with the beta version of jdk8 of IBM Java virtual machine.
—
* If you’re not familiar with OpenDJ nightly tests, do not try to interpret the results out there. Some of those complex replication tests are unfortunately sensitive to processor speed, thread timing and synchronization.So they tend to fail often on single CPU virtual machines where resources are unknown. They are fully passing on 2 or more CPU machines.
JavaOne, like most of conferences, serves 2 purposes. First it is the place to learn about the theme of the conference, in the case of JavaOne, the Java platform, language and environment. There are presentations, demos, keynotes for all of that. But more importantly, it is the place to socialize, meet friends and acquaintances, strengthen your network(s).
And so, we had on Tuesday evening, right after ForgeRock party, a “French dinner”. More specifically, a dinner with French speaking persons that are quiet active, one way or another, in the Java community. We, French, do love food and spending hours over a meal discussing, joking, laughing, sipping wine in good company. This year was no different, as the few photos can illustrate.
Yesterday, as I was entering the conference room for our Open Source Identity and Access Management expert panel session at JavaOne, I noticed all JDuchesses were gathering in the corner for a group photo. As I had my camera with me, I quickly took it out and captured the moment.
The picture is viewable and downloadable from my Flicker account in all sizes, including the original 12M pixel one. Feel free to use as you want (in compliance with the creative commons license).
Understanding and tuning the JVM is quite important to get the best performances out of OpenDJ. We do provide some high level guidance in our documentation and I’ve been talking about Java performances in the last few years at various Java User Groups in France and Switzerland (you can find presentations in French here or here) as well as at a major conference in Brazil : FISL in 2009. On this later occasion, I was asked to cover the presentation for 2 prestigious names in the Sun Hotspot JVM team : Charly Hunt and Tony Printezis. I’ve spent a few hours with them and have learnt a great deal about the internals of the Hotspot JVM and memory management, and all magic parameters, in order to deliver that presentation. At that time, our directory team was interacting a lot with the Hotspot team as we were testing a new and promising garbage collector: Garbage First aka G1. OpenDS was even wrapped and used in one of the largest collection of tests for the Sun JVM.
During the acquisition of Sun by Oracle, the future of G1 and the Hotspot JVM were unsure and our interactions with the Hotspot team diminished seriously.
At ForgeRock, we continued to pay attention to Garbage First and for a long time, we noticed that it wasn’t moving along. Most of the issues that were raised after tests with OpenDS and that were addressed in some development version of the JVM were not integrated in official JVM releases. It only with the Oracle JVM 1.7 update 2 that we noticed the large list of issues fixed with G1. We’ve then resumed testing OpenDJ with G1 to see that while the promise of no full GC seems to be addressed, the performance impact of G1 is still significantly high. With our limited tests of JVM under 4GB of heap size, we noticed a 10% performance degradation over CMS, corresponding with an approximate 10% increase of CPU load (on a quad core machine with hyperthreading on), but with better overall response times for OpenDJ as the maximum response time decreased from 200ms to 80ms, as illustrated below.
LDAP Modrate with Garbage First
-------------------------------------------------------------------------------
Throughput Response Time
(ops/second) (milliseconds)
recent average recent average 99.9% 99.99% 99.999% err/sec Entries/Srch
-------------------------------------------------------------------------------
16196.7 16374.1 1.972 1.951 18.886 28.129 66.933 0.0
16468.8 16374.9 1.941 1.951 18.883 28.087 66.521 0.0
LDAP Modrate with CMS
-------------------------------------------------------------------------------
Throughput Response Time
(ops/second) (milliseconds)
recent average recent average 99.9% 99.99% 99.999% err/sec Entries/Srch
-------------------------------------------------------------------------------
17937.1 17487.7 1.780 1.827 18.175 30.521 116.990 0.0
17783.7 17494.3 1.796 1.826 18.145 30.320 117.017 0.0
We need to run more tests with OpenDJ and G1, especially with very large heaps (from 4 to 32GB), but we’re not sure whether G1 will be able to deliver the performances it promised.
And today I noticed on LinkedIn that both Charly Hunt and Tony Printezis, the 2 main engineers behind the HotSpot JVM and Garbage First, had left Oracle for new adventures. Charly’s gone to SalesForce and Tony to Adobe. This is certainly a good move for both of them, but it leaves me worried about the future of the Hotspot JVM and its ability to deliver innovation in GCs.
[Update on May 6th]
It appears that more engineers of the Sun JVM team have actually left in the last couple of months : John Pampuch, Igor Veresov, Paul Hohensee..
I was in Paris end of last week, attending the first edition of Devoxx France, a Java developers’ conference.
Devoxx is a well known and highly attended Java developers conference that takes place late fall in Antwerp. The French version has been initiated by the Paris Java User Group and has a similar structure but with 75% of the talks in French.
For a first edition, Devoxx France 2012 is a real success. Sold out 2 weeks before the event, over 1200 persons attended the 3 days’ conference. Yet, the conference felt human.
I was there only for the second and third days, as an attendee and as a co-speaker in the BOF session about Open Source Software in France.It was also the opportunity to meet and discuss with other developers, open source project leaders and potential customers.
photo by Pierre-Antoine Gregoire, alias @zepag
Out of the talks that I’ve attended, I preferred the ones that were quite low level. Among them, 2 around hacking the JVM and the bytecode:
Julien Viet did a quickie (a 15 minutes talk) presenting a tool and open source project he released : CraSH, an interactive shell for the JVM.
I also enjoyed 2 presentations by Alex Snaps, one around concurrency and the CompareAndSet method. The other one about SizeOf or the difficulty to compute the exact size of Java objects, in order to improve large cache efficiency and management. I shall look at the ehcache project code, to see if we can leverage some of it for OpenDJ caches.
Also worth mentioning, 2 greats keynotes on the Friday morning with Pat Chanezon and Neal Ford.
I’ve taken a few photos during Devoxx France 2012, feel free to use or share them (under Creative Commons). And if you want to see more photos of the event, you can check Arnaud Heritier’s collections : Day 1, Day 2, Day 3.
See you next year at Devoxx France 2013, and may be in Antwerp in November for Devoxx (WorldWide)
"It’s all over the place inside Sun. People are doing cool things in any direction you want to look. The enterprise guys — the GlassFish group — they’re totally on a tear these days. The OpenDS guys are being really successful. The OpenJDK guys are getting some real traction. Stuff like the Jigsaw modularity stuff is getting a lot of excitement."
As one of the OpenDS guys, I like the middle of the response… And so it must be true !
Submit your proposal today – Deadline is November 16, 2007
JavaOne, Sun’s 2008 Worldwide Developer Conference, is seeking proposals for technical sessions and Birds-of-a-Feather (BOFs) sessions for this year’s Conference.
Attracting over 15,000 developers and leaders in the developer community – from industry leaders, to experienced developers to developers starting out – this conference is one that brings together some of the industry’s best and brightest.
The JavaOne conference is your opportunity to reach this specialized community by educating and sharing your experience and expertise with the developer community.
Jaya has just published a new JNDI Trail, shorter and updated to cover the JDK5.0 and JDK6.0 features: a reference to keep for any LDAP / Java developer.