Berkeley DB Java Edition HA vs Gathering Writes
While working on performance measurement and improvements for JE High Availability (HA) we noticed that we could eliminate a buffer copy by using a gathering write. The changes were simple enough but when I made them, weird things started happening with the stress test I was using. It seemed like the ByteBuffers which were supposedly being sent from master to replica were ending up corrupted over when they got to the replica side. Eventually, we decided that bug 6812202 was responsible (even though we didn't always see an OOME) and in fact, moving to the JDK 1.7 "fixes" the problem. Unfortunately, we are not in a position to pre-req Java 7 for HA or JE for that matter.
You're probably wondering if this means that HA is imminent. Yes, the beta is expected to start in a few weeks, which is a very exciting development for JE. And you may be wondering what we know about HA performance. I'll just say that we're quite comfortable with where HA performance is right now. We know of some areas where we can make improvements and we'll eventually make them, but for now, we like what we see.