[
https://issues.apache.org/jira/browse/ZOOKEEPER-2098?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14286474#comment-14286474
]
Flavio Junqueira commented on ZOOKEEPER-2098:
---------------------------------------------
The patch looks good to me, and I've resubmitted for another QA run. Also,
could you please address Hongchao's comment?
> QuorumCnxManager: use BufferedOutputStream for initial msg
> ----------------------------------------------------------
>
> Key: ZOOKEEPER-2098
> URL: https://issues.apache.org/jira/browse/ZOOKEEPER-2098
> Project: ZooKeeper
> Issue Type: Improvement
> Components: quorum, server
> Affects Versions: 3.5.0
> Reporter: Raul Gutierrez Segales
> Assignee: Raul Gutierrez Segales
> Fix For: 3.5.1, 3.6.0
>
> Attachments: ZOOKEEPER-2098.patch
>
>
> Whilst writing fle-dump (a tool like
> [zk-dump|https://github.com/twitter/zktraffic/], but to dump
> FastLeaderElection messages), I noticed that QCM is using DataOutputStream
> (which doesn't buffer) directly.
> So all calls to write() are written immediately to the network, which means
> simple messaages like two participants exchanging Votes can take a couple
> RTTs! This is specially terrible for global clusters (i.e.: x-country RTTs).
> The solution is to use BufferedOutputStream for the initial negotiation
> between members of the cluster. Note that there are other places were
> suboptimal (but not entirely unbuffered) writes to the network still exist.
> I'll get those in separate tickets.
> After using BufferedOutputStream we get only 1 RTT for the initial message,
> so elections & time for for participants to join a cluster is reduced.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)