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

Split the metrics collection into smaller groups

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Patch Available
    • Urgent
    • Resolution: Unresolved
    • 5.x
    • Observability/Metrics
    • None
    • Performance
    • Normal
    • All
    • None
    • Hide

      Run the tests, the benchmarks are also required.

      Show
      Run the tests, the benchmarks are also required.

    Description

      Historically, all metrics are stored in a single collection indexed by a unique metric name - ConcurrentMap<String, Metric>. This storage technique doesn't offer any advantages over other options we might have below, and causes some performance and usability issues when we need to traverse this huge collection while filtering the metrics.

      The following possible solutions could be used: 

      Each of the above options assumes, that the metric groups are statically registered and known at the time a node starts. This may also be an option to consider for dynamically registering metric groups and in turn registering corresponding virtual tables and JmxMbean. In the latter case, we'll need to implement the notification mechanism for the drivers, as they are not currently notified about newly created virtual tables.

      Attachments

        1. select_keyspace_vt_by_scope_19666_vs_trunk.png
          287 kB
          Maxim Muzafarov
        2. select_keyspace_vt_by_primary_key_19666_vs_trunk.png
          261 kB
          Maxim Muzafarov
        3. Memory_MetricsRegistry_SUMMARY.png
          472 kB
          Maxim Muzafarov

        Issue Links

          Activity

            People

              mmuzaf Maxim Muzafarov
              mmuzaf Maxim Muzafarov
              Maxim Muzafarov
              Votes:
              0 Vote for this issue
              Watchers:
              4 Start watching this issue

              Dates

                Created:
                Updated:

                Time Tracking

                  Estimated:
                  Original Estimate - Not Specified
                  Not Specified
                  Remaining:
                  Remaining Estimate - 0h
                  0h
                  Logged:
                  Time Spent - 10m
                  10m