Cassandra
  1. Cassandra
  2. CASSANDRA-3675

ship with -XX:+ExplicitGCInvokesConcurrent by default

    Details

    • Type: Improvement Improvement
    • Status: Resolved
    • Priority: Minor Minor
    • Resolution: Won't Fix
    • Fix Version/s: 1.1.0
    • Component/s: None
    • Labels:
      None

      Description

      It's so much easier if you can safely tell people to trigger a full GC to discover their live set (see CASSANDRA-3574), instead of explaining the behavior of CMS and what the memory usage graph looks like etc etc. Shipping with -XX:+ExplicitGCInvokesConcurrent means this is by default safe.

      For people that have special needs like some kind of rolling compacting GC with disablegossip, they are special enough that they can just change the VM options.

        Issue Links

          Activity

          Hide
          Jonathan Ellis added a comment -

          Of course the downside is that CMS is not compacting. Given that fragmentation has been an issue I have reservations about changing this behavior from the default, expected behavior. It seems to me that if people are in the "let's see what my working set is" testing phase, a STW collection is not going to cause big problems.

          Show
          Jonathan Ellis added a comment - Of course the downside is that CMS is not compacting. Given that fragmentation has been an issue I have reservations about changing this behavior from the default, expected behavior. It seems to me that if people are in the "let's see what my working set is" testing phase, a STW collection is not going to cause big problems.
          Hide
          Peter Schuller added a comment -

          I don't understand. If you have fragmentation problems, you're going to take full gc:s that do compaction anyway when you have a promotion failure so it's not like you're not going to get your heap compacted.

          Are you saying people are expected to be in the category of people that want to pre-emptively run full compacting GC:s, yet want to do so ad-hoc without changing GC settings and scripting around it?

          Show
          Peter Schuller added a comment - I don't understand. If you have fragmentation problems, you're going to take full gc:s that do compaction anyway when you have a promotion failure so it's not like you're not going to get your heap compacted. Are you saying people are expected to be in the category of people that want to pre-emptively run full compacting GC:s, yet want to do so ad-hoc without changing GC settings and scripting around it?
          Hide
          Peter Schuller added a comment -

          Btw I have been in a position several times of a production cluster having some kind of issue, and wanting to know what the live set is in a situation where I don't want to trigger full gcs. It's also a way to trigger CMS earlier without having to restart a node (temporarily).

          Show
          Peter Schuller added a comment - Btw I have been in a position several times of a production cluster having some kind of issue, and wanting to know what the live set is in a situation where I don't want to trigger full gcs. It's also a way to trigger CMS earlier without having to restart a node (temporarily).
          Hide
          Jonathan Ellis added a comment -

          Looks like this got ninja committed during the discussion. I'm -0, for the record: people who need this can easily add it; for the majority who don't, I'd rather preserve the default behavior.

          Show
          Jonathan Ellis added a comment - Looks like this got ninja committed during the discussion. I'm -0, for the record: people who need this can easily add it; for the majority who don't, I'd rather preserve the default behavior.
          Hide
          Chris Goffinet added a comment - - edited

          I am going to revert this commit. I reviewed it, and posted a note in IRC but that looks to be missed. We had been running this in prod on 0.8 for sometime, so I felt it was safe.

          Show
          Chris Goffinet added a comment - - edited I am going to revert this commit. I reviewed it, and posted a note in IRC but that looks to be missed. We had been running this in prod on 0.8 for sometime, so I felt it was safe.
          Hide
          Chris Goffinet added a comment -

          For the record, I still think this is a sane default.

          Show
          Chris Goffinet added a comment - For the record, I still think this is a sane default.
          Hide
          Chris Goffinet added a comment -

          Reverted

          Show
          Chris Goffinet added a comment - Reverted

            People

            • Assignee:
              Peter Schuller
              Reporter:
              Peter Schuller
              Reviewer:
              Chris Goffinet
            • Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:

                Development