Uploaded image for project: 'Cassandra'
  1. Cassandra
  2. CASSANDRA-18873

Fix broken JMH benchmarks

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Triage Needed
    • Normal
    • Resolution: Unresolved
    • None
    • Test/benchmark
    • None
    • All
    • None

    Description

      The following benchmarks are broken:

      • ZeroCopyStreamingBench
      • MutationBench
      • FastThreadLocalBench
      • AtomicBTreePartitionUpdateBench (OOM on Jenkins)
      • ReadSmallPartitionsBench (assertion error)
      • ReadWidePartitionsBench (assertion error)
      • BloomFilterSerializerBench (NPE)
      • KeyLookupBench (IAE)

      Additionally, those benchmarks take too much time to run:

      • BTreeUpdateBench ~ 58 hours
      • AtomicBTreePartitionUpdateBench ~ 5 hours
      • BTreeTransformBench ~ 2.5 hours

      Here the complete list of estimated benchmark times:

      Estimated time for CacheLoaderBench: ~5 s
      Estimated time for LatencyTrackingBench: ~26 s
      Estimated time for SampleBench: ~30 s
      Estimated time for ReadWriteBench: ~30 s
      Estimated time for MutationBench: ~30 s
      Estimated time for CompactionBench: ~35 s
      Estimated time for DiagnosticEventPersistenceBench: ~40 s
      Estimated time for ZeroCopyStreamingBench: ~44 s
      Estimated time for BatchStatementBench: ~110 s
      Estimated time for DiagnosticEventServiceBench: ~120 s
      Estimated time for MessageOutBench: ~144 s
      Estimated time for BloomFilterSerializerBench: ~144 s
      Estimated time for FastThreadLocalBench: ~156 s
      Estimated time for HashingBench: ~156 s
      Estimated time for ChecksumBench: ~208 s
      Estimated time for StreamingTombstoneHistogramBuilderBench: ~208 s
      Estimated time for PendingRangesBench: ~ 5 m
      Estimated time for DirectorySizerBench: ~ 5 m
      Estimated time for instance.ReadSmallPartitionsBench: ~ 5 m
      Estimated time for PreaggregatedByteBufsBench: ~ 7 m
      Estimated time for AutoBoxingBench: ~ 8 m
      Estimated time for OutputStreamBench: ~ 13 m
      Estimated time for BTreeBuildBench: ~ 13 m
      Estimated time for StringsEncodeBench: ~ 20 m
      Estimated time for instance.ReadWidePartitionsBench: ~ 21 m
      Estimated time for btree.BTreeBuildBench: ~ 30 m
      Estimated time for BTreeSearchIteratorBench: ~ 31 m
      Estimated time for btree.BTreeTransformBench: ~ 138 m
      Estimated time for btree.AtomicBTreePartitionUpdateBench: ~ 288 m
      Estimated time for btree.BTreeUpdateBench: ~58 h
      Total estimated time: ~69 h
      

      I'd like to add a test which estimates the benchmark times and fails if a single benchmark estimated run time is longer than xxx minutes.

      Attachments

        1. jmh-AtomicBtreePartitionUpdateBench.log
          18 kB
          Jacek Lewandowski
        2. jmh-ReadWidePartitionsBench.log
          3 kB
          Jacek Lewandowski
        3. jmh-ReadSmallPartitionsBench.log
          3 kB
          Jacek Lewandowski
        4. jmh-KeyLookupBench.log
          6 kB
          Jacek Lewandowski
        5. jmh-BloomFilterSerializerBench.log
          8 kB
          Jacek Lewandowski
        6. BenchTimeTest.java
          10 kB
          Jacek Lewandowski

        Activity

          People

            Unassigned Unassigned
            jlewandowski Jacek Lewandowski
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

              Created:
              Updated: