[
https://issues.apache.org/jira/browse/CASSANDRA-11303?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15299749#comment-15299749
]
Satoshi Konno commented on CASSANDRA-11303:
-------------------------------------------
Hi Paulo,
Thanks for your helpful advice. According to your advices, I have updated the
following functions.
* Fixed not to use the same static RateLimiter in inbound and outbound.
** Added each limiters into StreamOutboundRateLimiter and
StreamInboundRateLimiter.
* Updated CompressedStreamReader::read() to count the streaming bytes from
CompressedInputStream.
* Added '--inbound' and '--outbound' into setstreamthroughput and
getstreamthroughput options of nodetool.
** Added the following methods into StorageServiceMBean instead of
(set/get)StreamThroughputMbPerSec and (set/get)InterDCStreamThroughputMbPerSec
*** (set/get)(Inbound/Outbound)StreamThroughputMbPerSec
*** (set/get)(Inbound/Outbound)InterDCStreamThroughputMbPerSec
* Fixed StreamDeserializer to static.
* Fixed invalid comments in 'cassandra.yaml'.
I have done the following code refactoring too, but I don't merge
StreamInboundRateLimiter and StreamOutboundRateLimiter because I might have to
add many changes X-<
* Updated StreamRateLimiter::getOutboundRateLimiter() and
getInboundRateLimiter() to return abstract StreamRateLimiter.
** Changed StreamOutboundRateLimiter and StreamInboundRateLimiter into private
in StreamRateLimiter.
* Renamed StreamRateLimiter::mayUpdateThroughput() into
setValidatedLimiterRate() to check only the specified limit value.
Please let me know if you have any suggestions.
> New inbound throughput parameters for streaming
> -----------------------------------------------
>
> Key: CASSANDRA-11303
> URL: https://issues.apache.org/jira/browse/CASSANDRA-11303
> Project: Cassandra
> Issue Type: New Feature
> Components: Configuration
> Reporter: Satoshi Konno
> Priority: Minor
> Attachments: 11303_inbound_limit_debug_20160419.log,
> 11303_inbound_nolimit_debug_20160419.log,
> 11303_inbound_patch_for_trunk_20160419.diff,
> 11303_inbound_patch_for_trunk_20160525.diff, cassandra_inbound_stream.diff
>
>
> Hi,
> To specify stream throughputs of a node more clearly, I would like to add the
> following new inbound parameters like existing outbound parameters in the
> cassandra.yaml.
> - stream_throughput_inbound_megabits_per_sec
> - inter_dc_stream_throughput_outbound_megabits_per_sec
> We use only the existing outbound parameters now, but it is difficult to
> control the total throughputs of a node. In our production network, some
> critical alerts occurs when a node exceed the specified total throughput
> which is the sum of the input and output throughputs.
> In our operation of Cassandra, the alerts occurs during the bootstrap or
> repair processing when a new node is added. In the worst case, we have to
> stop the operation of the exceed node.
> I have attached the patch under consideration. I would like to add a new
> limiter class, StreamInboundRateLimiter, and use the limiter class in
> StreamDeserializer class. I use Row::dataSize( )to get the input throughput
> in StreamDeserializer::newPartition(), but I am not sure whether the
> dataSize() returns the correct data size.
> Can someone please tell me how to do it ?
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)