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

JMX output inconsistencies from CASSANDRA-7544 storage-port-configurable-per-node

    XMLWordPrintableJSON

Details

    Description

      CASSANDRA-7544 introduced changes to allow the storage port number to be configured per-node. As part of that work it introduces new MBeans for MessagingService, FailureDetector providing new 'WithPort' versions that include the new port information, however there are some mistakes and inconsistencies.

                                 3.11.6                trunk                  trunk w/Port          Notes
        
       AllEndpointStates        /127.0.0.1\n...       /127.0.0.3\n...        127.0.0.3:7000\n        (trunk /w port different)
       SimpleStates             /127.0.0.2=UP         /127.0.0.2=UP          127.0.0.3:7000=UP       (trunk /w port different)
       LargeMessagePendingTasks /127.0.0.1=0          /127.0.0.1=0           127.0.0.3:7000=0        (trunk /w port different)
       TimeoutsPerHost          127.0.0.1=0           /127.0.0.1=0           127.0.0.3:7000=0        3.0/3.11.6 & trunk differ.
       BackPressurePerHost      127.0.0.1=Infinity    /127.0.0.2=Infinity    /127.0.0.2=Infinity     3.11 & trunk differ, missing port number for BackPressurePerHostWithPort
       SchemaVersions          {...=[127.0.0.1,...]} {...=[127.0.0.1,...]}  {...=[127.0.0.1:7000,...]
        
       TokenToEndpointMap      {-92...8=127.0.0.1,   -92...8=127.0.0.1      -92..8=127.0.0.1:7000
       HostIdMap               127.0.0.1=1ee..6f0af  127.0.0.1=e06...7e     MISSING                  Deprecated for EndpointToHostId
       EndpointToHostId        127.0.0.1=1ee..6f0a   127.0.0.1=e06...7e     127.0.0.1:7000=e0..7e
       HostIdToEndpoint        1ee..6f0a=127.0.0.1   e06..7e=127.0.0.1      e06..7e=127.0.0.1:7000
       LoadMap                 127.0.0.1=185.01 KiB  127.0.0.1:7000=106.08 KiB  127.0.0.1=106.08 Ki  LoadMap and LoadMapWithPort are flipped.
       LiveNodes               127.0.0.1             127.0.0.1              127.0.0.1:7000
       Ownership               /127.0.0.1=0.333333   /127.0.0.1=0.333333    127.0.0.1:7000=0.333333
       Scores                  /127.0.0.1=0.0        /127.0.0.1=0.0         127.0.0.1:7000=0.0
        

       
      Proposed changes
       
      1) AllEndpointStats, SimpleStates, Connection message tracking, TimeoutsPerHost - include the host/ip:port in the WithPort version
      2) Add port number to BackPressurePerHostWithPort
      3) Correct LoadMap to omit port / LoadMapWithPort to include port
      4) Ownership - update with port to host/ip:port version
      5) Scores - update with port to host/ip:port version
       
       
      Additionally while dumping out all of the JMX info with `sjk mxdump`
       
      6) DynamicEndpointSnitch.getScoresWithPort now returns an InetAddressAndPort which should just be a String
      7) ClientMetrics.clientsByProtocolVersion returns a Guava Immutable map
      8) StorageService.getIdealConsistencyLevel fails if none set (as we try and call ConsistencyLevel.toString on a null pointer).

      Attachments

        Activity

          People

            jmeredithco Jon Meredith
            jmeredithco Jon Meredith
            Jon Meredith
            David Capwell
            Votes:
            0 Vote for this issue
            Watchers:
            5 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved:

              Time Tracking

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