Uploaded image for project: 'Cassandra'
  1. Cassandra
  2. CASSANDRA-15387 Reduce compaction & local read path garbage
  3. CASSANDRA-15388

Add compaction allocation measurement test to support compaction gc optimization.

    XMLWordPrintableJSON

    Details

    • Type: Sub-task
    • Status: Patch Available
    • Priority: Normal
    • Resolution: Unresolved
    • Fix Version/s: 4.0
    • Component/s: Local/Compaction
    • Labels:
      None
    • Change Category:
      Performance
    • Complexity:
      Normal
    • Platform:
      All
    • Impacts:
      None
    • Test and Documentation Plan:
      Hide

      circle

      Show
      circle

      Description

      This adds a test that is able to quickly and accurately measure the effect of potential gc optimizations against a wide range of (synthetic) compaction workloads. This test accurately measures allocation rates from 16 workloads in less that 2 minutes.

      This test uses google’s java-allocation-instrumenter agent to measure the workloads. Measurements using this agent are very accurate and pretty repeatable from run to run, with most variance being negligible (1-2 bytes per partition), although workloads with larger but fewer partitions vary a bit more (still less that 0.03%).

      The thinking behind this patch is that with compaction, we’re generally interested in the memory allocated per partition, since garbage scales more or less linearly with the number of partitions compacted. So measuring allocation from a small number of partitions that otherwise represent real world use cases is a good enough approximation.

      In addition to helping with compaction optimizations, this test could be used as a template for future optimization work. This pattern could also be used to set allocation limits on workloads/operations and fail CI if the allocation behavior changes past some threshold.

        Attachments

          Activity

            People

            • Assignee:
              bdeggleston Blake Eggleston
              Reporter:
              bdeggleston Blake Eggleston
              Authors:
              Blake Eggleston
            • Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

              • Created:
                Updated: