diff --git a/CHANGES.txt b/CHANGES.txt index c41839e3b3..95ccde96ad 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,3 +1,7 @@ +0.6.10 + * buffer network stack to avoid inefficient small TCP messages while avoiding + the nagle/delayed ack problem (CASSANDRA-1896) + 0.6.9 * add clustertool, config-converter, sstablekeys, and schematool Windows .bat files (CASSANDRA-1723) diff --git a/src/java/org/apache/cassandra/net/IncomingTcpConnection.java b/src/java/org/apache/cassandra/net/IncomingTcpConnection.java index 045580dd58..8a58c48ce9 100644 --- a/src/java/org/apache/cassandra/net/IncomingTcpConnection.java +++ b/src/java/org/apache/cassandra/net/IncomingTcpConnection.java @@ -41,7 +41,7 @@ public class IncomingTcpConnection extends Thread this.socket = socket; try { - input = new DataInputStream(socket.getInputStream()); + input = new DataInputStream(new BufferedInputStream(socket.getInputStream(), 4096)); } catch (IOException e) { diff --git a/src/java/org/apache/cassandra/net/OutboundTcpConnection.java b/src/java/org/apache/cassandra/net/OutboundTcpConnection.java index 11782c49f0..5abb3b7e28 100644 --- a/src/java/org/apache/cassandra/net/OutboundTcpConnection.java +++ b/src/java/org/apache/cassandra/net/OutboundTcpConnection.java @@ -21,6 +21,7 @@ package org.apache.cassandra.net; */ +import java.io.BufferedOutputStream; import java.io.DataOutputStream; import java.io.IOException; import java.net.InetAddress; @@ -150,7 +151,7 @@ public class OutboundTcpConnection extends Thread socket = new Socket(endpoint, DatabaseDescriptor.getStoragePort(), FBUtilities.getLocalAddress(), 0); socket.setKeepAlive(true); socket.setTcpNoDelay(true); - output = new DataOutputStream(socket.getOutputStream()); + output = new DataOutputStream(new BufferedOutputStream(socket.getOutputStream(), 4096)); return true; } catch (IOException e)