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

Add a flag for throughput in MiB/s for nodetool setstreamthroughput, getstreamthroughput, setinterdcstreamthroughput and getinterdcstreamthroughput



    • Bug
    • Status: Resolved
    • Normal
    • Resolution: Fixed
    • 4.1-beta1, 4.1
    • Tool/nodetool
    • None


      As we agreed not to add new JMX methods for the new config on the mailing list, we need at least new flags for setstreamthroughput and interdcstreamthroughput for the two 4.0 parameters to be set/get also in MiB, not only in megabits.

      Thus we will have the option either to use the old version for those 2, or to be able to set/get in MiB all 4 streaming parameters. As of 4.1 supported units for DataRateSpec are MiB/s, B/s, KiB/s, megabit is only for legacy from 4.0 - backward compatibility. 

      To be sure we satisfy the requirements around the latest discussions about backward compatibility in tools, I will use this ticket also to make a final pass on the unit changes done, to ensure the probe output is not affected.

      Final patch consists of:

      • Uncomment prepared_statements_cache_size, key_cache_size, counter_cache_size, index_summary_capacity which were
        commented out by mistake in a previous patch
      • Fix breaking change with cache_load_timeout; cache_load_timeout_seconds <=0 and cache_load_timeout=0 are equivalent
        and they both mean disabled
      • Deprecate public method setRate(final double throughputMbPerSec) in Compaction Manager in favor of
        setRateInBytes(final double throughputBytesPerSec)
      • Revert breaking change removal of StressCQLSSTableWriter.Builder.withBufferSizeInMB(int size). Deprecate it in favor
        of StressCQLSSTableWriter.Builder.withBufferSizeInMiB(int size)
      • Fix precision issues, add new -m flag (for nodetool/setstreamthroughput, nodetool/setinterdcstreamthroughput,
        nodetool/getstreamthroughput and nodetoo/getinterdcstreamthroughput), add new -d flags (nodetool/getstreamthroughput, nodetool/getinterdcstreamthroughput, nodetool/getcompactionthroughput)
      • Fix a bug with precision in nodetool/compactionstats
      • Deprecate StorageService methods and add new ones for stream_throughput_outbound, inter_dc_stream_throughput_outbound,
        compaction_throughput_outbound in the JMX MBean `org.apache.cassandra.db:type=StorageService`
      • Removed getEntireSSTableStreamThroughputMebibytesPerSec in favor of new getEntireSSTableStreamThroughputMebibytesPerSecAsDouble
        in the JMX MBean `org.apache.cassandra.db:type=StorageService`
      • Removed getEntireSSTableInterDCStreamThroughputMebibytesPerSec in favor of getEntireSSTableInterDCStreamThroughputMebibytesPerSecAsDouble
        in the JMX MBean `org.apache.cassandra.db:type=StorageService`

      It is the same for 4.1 and trunk



        Issue Links



              e.dimitrova Ekaterina Dimitrova
              e.dimitrova Ekaterina Dimitrova
              Ekaterina Dimitrova
              Caleb Rackliffe, Francisco Guerrero
              0 Vote for this issue
              3 Start watching this issue