JEP 248: Make G1 the Default Garbage Collector

Kirk Pepperdine kirk.pepperdine at gmail.com
Tue Jun 2 14:46:42 UTC 2015


Hi Charlie,

>> 
>> Using G1 is known to corrupt Lucene indexes.
> 
> Does the term “known” imply past tense?  ;-)  You know I’m just having a little fun with you, right?

Dude, seriously.. I think we agree *far* more often than we disagree on points of view. Even in this discussion.. that said, we’re focusing on where we disagree.

> 
> But seriously, would you happen to have bug reports that show any “corrupt Lucene indexes” issues that have not been fixed in an 8u* release or fixed in JDK 9?  I’m not aware of any. But, I may have missed something too.

My understanding is the Lucene guys have replicated it and have reported it. I’m not sure who is working on it. I think we need to reach out to sort out details.

> 
>> 
>> Assuming the understand that they have an issue to address. Yesterday I had a long heart to heart with a client that had unrealistic expectations as to what problems he could and what problems he could not solve with a random “lets tune the garbage collector” thought.
> 
> I think that is a failure on their part, not your’s or our’s. I’m not sure how not changing the default collector to G1 would impact their unrealistic expectations though.

Not going to argue with you there. My point was, not everyone is a GC expert, even those who think they know often don’t.

> 
>> 
>>> 
>>> At the same time, consider there may likely be cases where if G1 was the default collector, the need for calling in an expert to tune GC beyond G1’s defaults setting may not be needed. In other words, they would have a better out of the box experience with G1 than with Parallel GC.
>> 
>> Not the case here.
> 
> Don’t expect that there is a one(GC) that fits everyone or every application.  I think it is a matter of which GC has the best chance at offer the best out of the box default GC, with no additional tuning, offers the best opportunity for the best experience for the population of all Java apps.  Obviously, as illustrated by this long email thread, it is highly subjective.
> 
> We all have our biased sampling of Java apps, and those who have worked closely with GC know what kind of apps would work well with a given default configuration of a GC whether that be Parallel GC, CMS GC or G1 GC.

I’ve moved a number of apps to G1 with good success. I’ve seen a number of apps where CMS was better and I’ve seen where there was little if any difference. I rarely move apps to Parallel which suggests I should be in full agreement with this JEP. However, I don’t feel I have a broad enough experience with the G1 to understand what it would do in the general population. IME, you don’t want to even consider G1 unless you’re in a fairly large heap. 2G is better served with CMS or Parallel. Even 4G is better with CMS. If you were to say G1 for >16G or something like that, I’d be less concerned.

— Kirk




More information about the hotspot-gc-dev mailing list