You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by vi...@apache.org on 2014/02/16 22:43:40 UTC
[1/2] git commit: fix for througput bits to bytes
Repository: cassandra
Updated Branches:
refs/heads/trunk 97859b0a7 -> 6cf15b2b4
fix for througput bits to bytes
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/ea28d368
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/ea28d368
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/ea28d368
Branch: refs/heads/trunk
Commit: ea28d36892b72480495629d8df3468f8ecfc9764
Parents: b041a93
Author: Vijay <vi...@gmail.com>
Authored: Sun Feb 16 13:37:02 2014 -0800
Committer: Vijay <vi...@gmail.com>
Committed: Sun Feb 16 13:37:02 2014 -0800
----------------------------------------------------------------------
src/java/org/apache/cassandra/streaming/StreamManager.java | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/ea28d368/src/java/org/apache/cassandra/streaming/StreamManager.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/streaming/StreamManager.java b/src/java/org/apache/cassandra/streaming/StreamManager.java
index 18cd28b..3fe6179 100644
--- a/src/java/org/apache/cassandra/streaming/StreamManager.java
+++ b/src/java/org/apache/cassandra/streaming/StreamManager.java
@@ -59,7 +59,7 @@ public class StreamManager implements StreamManagerMBean
*/
public static RateLimiter getRateLimiter()
{
- double currentThroughput = ((double) DatabaseDescriptor.getStreamThroughputOutboundMegabitsPerSec()) * 1024 * 1024 * 8;
+ double currentThroughput = (((double) DatabaseDescriptor.getStreamThroughputOutboundMegabitsPerSec()) * 1024 * 1024 ) / 8;
// if throughput is set to 0, throttling is disabled
if (currentThroughput == 0)
currentThroughput = Double.MAX_VALUE;
[2/2] git commit: Merge branch 'cassandra-2.0' into trunk
Posted by vi...@apache.org.
Merge branch 'cassandra-2.0' into trunk
Conflicts:
src/java/org/apache/cassandra/streaming/StreamManager.java
Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/6cf15b2b
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/6cf15b2b
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/6cf15b2b
Branch: refs/heads/trunk
Commit: 6cf15b2b438b25cabacbad3c1a557061d3aa80e9
Parents: 97859b0 ea28d36
Author: Vijay <vi...@gmail.com>
Authored: Sun Feb 16 13:43:29 2014 -0800
Committer: Vijay <vi...@gmail.com>
Committed: Sun Feb 16 13:43:29 2014 -0800
----------------------------------------------------------------------
src/java/org/apache/cassandra/streaming/StreamManager.java | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cassandra/blob/6cf15b2b/src/java/org/apache/cassandra/streaming/StreamManager.java
----------------------------------------------------------------------
diff --cc src/java/org/apache/cassandra/streaming/StreamManager.java
index c82e45c,3fe6179..872e524
--- a/src/java/org/apache/cassandra/streaming/StreamManager.java
+++ b/src/java/org/apache/cassandra/streaming/StreamManager.java
@@@ -54,47 -55,17 +54,47 @@@ public class StreamManager implements S
* with the rate of Double.MAX_VALUE bytes per second.
* Rate unit is bytes per sec.
*
- * @return RateLimiter with rate limit set
+ * @return StreamRateLimiter with rate limit set based on peer location.
*/
- public static RateLimiter getRateLimiter()
+ public static StreamRateLimiter getRateLimiter(InetAddress peer)
+ {
+ return new StreamRateLimiter(peer);
+ }
+
+ public static class StreamRateLimiter
{
- private static final double ONE_MEGA_BITS = 1024 * 1024 * 8;
- double currentThroughput = (((double) DatabaseDescriptor.getStreamThroughputOutboundMegabitsPerSec()) * 1024 * 1024 ) / 8;
- // if throughput is set to 0, throttling is disabled
- if (currentThroughput == 0)
- currentThroughput = Double.MAX_VALUE;
- if (limiter.getRate() != currentThroughput)
- limiter.setRate(currentThroughput);
- return limiter;
++ private static final double ONE_MEGA_BYTE = (1024 * 1024) / 8; // from bits
+ private static final RateLimiter limiter = RateLimiter.create(Double.MAX_VALUE);
+ private static final RateLimiter interDCLimiter = RateLimiter.create(Double.MAX_VALUE);
+ private final boolean isLocalDC;
+
+ public StreamRateLimiter(InetAddress peer)
+ {
- double throughput = ((double) DatabaseDescriptor.getStreamThroughputOutboundMegabitsPerSec()) * ONE_MEGA_BITS;
++ double throughput = ((double) DatabaseDescriptor.getStreamThroughputOutboundMegabitsPerSec()) * ONE_MEGA_BYTE;
+ mayUpdateThroughput(throughput, limiter);
+
- double interDCThroughput = ((double) DatabaseDescriptor.getInterDCStreamThroughputOutboundMegabitsPerSec()) * ONE_MEGA_BITS;
++ double interDCThroughput = ((double) DatabaseDescriptor.getInterDCStreamThroughputOutboundMegabitsPerSec()) * ONE_MEGA_BYTE;
+ mayUpdateThroughput(interDCThroughput, interDCLimiter);
+
+ isLocalDC = DatabaseDescriptor.getLocalDataCenter().equals(
+ DatabaseDescriptor.getEndpointSnitch().getDatacenter(peer));
+ }
+
+ private void mayUpdateThroughput(double limit, RateLimiter rateLimiter)
+ {
+ // if throughput is set to 0, throttling is disabled
+ if (limit == 0)
+ limit = Double.MAX_VALUE;
+ if (rateLimiter.getRate() != limit)
+ rateLimiter.setRate(limit);
+ }
+
+ public void acquire(int toTransfer)
+ {
+ limiter.acquire(toTransfer);
+ if (!isLocalDC)
+ interDCLimiter.acquire(toTransfer);
+ }
}
private final StreamEventJMXNotifier notifier = new StreamEventJMXNotifier();