[ 
https://issues.apache.org/jira/browse/HBASE-12609?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14233004#comment-14233004
 ] 

cuijianwei commented on HBASE-12609:
------------------------------------

[~lhofhansl], the replication will wait the current ship returned to do next 
ship, which might consume hundreds of milliseconds, or even several seconds 
between two data centers, does this tend to make the available bandwidth 
couldn't be used fully?

> Consider bandwidth throttling in 
> ReplicationSource.readAllEntriesToReplicateOrNextFile
> --------------------------------------------------------------------------------------
>
>                 Key: HBASE-12609
>                 URL: https://issues.apache.org/jira/browse/HBASE-12609
>             Project: HBase
>          Issue Type: Improvement
>          Components: Replication
>    Affects Versions: 0.98.8
>            Reporter: cuijianwei
>            Priority: Minor
>
> The push size in ReplicationSource.shipEdits is controlled by 
> 'replicationQueueSizeCapacity' and 'replicationQueueNbCapacity'. When the 
> push size is much bigger than throttler's bandwidth(replication throttler is 
> enabled), ReplicationSource will have a outgoing bandwidth peak followed by a 
> period of sleep controlled by the throttler. How about considering bandwidth 
> throttling in ReplicationSource.readAllEntriesToReplicateOrNextFile? such as 
> the following code:
> {code}
>        // Stop if too many entries or too big
>       long bandwidth = 
> this.conf.getLong("replication.source.per.peer.node.bandwidth", 0);
>       if ((bandwidth > 0 && currentSize > bandwidth) ||  // ==> also consider 
> bandwidth throttling
>           currentSize >= this.replicationQueueSizeCapacity ||
>            entries.size() >= this.replicationQueueNbCapacity) {
>          break;
>        }
> {code}
> Then, ReplicationSource will have more steady outgoing bandwidth.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to