Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

We are currently running the latest 4.3.2 release of ActivePivot, the in-memory real-time OLAP engine, on our servers.

ActivePivot being a Java software, it is deployed in Tomcat 7 running the latest Sun 1.6 Hotspot JDK, with default options.

We were considering updating to the 1.7 Hotspot JDK, and are looking for feedback on this.

Especially:

  • is this a safe upgrade to do? Is ActivePivot certified for Java 7?
  • is the Sun/Oracle Hotspot JDK the best choice for ActivePivot?
  • is the new G1 garbage collection algorithm worth investigating for this kind of programs?
share|improve this question

migrated from stackoverflow.com Sep 18 '12 at 14:31

This question came from our site for professional and enthusiast programmers.

add comment

1 Answer 1

ActivePivot 4.x requires at least JDK6 but runs on JDK7 too (it also runs well on the early builds of JDK8 actually). As often with java applications in general an ActivePivot application runs a bit faster on JDK7 compared to JDK6.

Our continuous build servers (that run unit tests and integration tests) run the Oracle Hotspot JDK6 JVM. So does 80% of our user base. So if you follow the tried and tested path stick to that too.

That being said in the development team we work with various environments, JDK6, JDK7, Hotspot, OpenJDK, and the occasional IBM J9. All work well.

About garbage collection, we have tried the new G1 collector and report that it does not help the large ActivePivot deployments. From our experiments it looks like G1 can handle moderate heaps (up to 64GB) and moderate object allocation rates while keeping its promise of short GC pauses. But for a large ActivePivot application input data can flow at 1GB per second, with a heap close to 1TB. For those use cases G1 struggles, gets overflown and ends up yielding fantastically long stop-the-world events...

Our advice for GC tuning has been the same for a few years now: don't do it. Let the JVM do its best.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.