summaryrefslogtreecommitdiff
path: root/t/chunked-items.t
diff options
context:
space:
mode:
authordormando <dormando@rydia.net>2019-10-05 13:22:45 -0700
committerdormando <dormando@rydia.net>2020-02-01 14:36:23 -0800
commitb2cadc45dfb514ef16c3353abe18845f146dfb2b (patch)
tree0f1adf576317d14c45bf87c178deafa426813491 /t/chunked-items.t
parent1517d15ecbc3fda6903d6e68be84f0bda7828ec5 (diff)
downloadmemcached-b2cadc45dfb514ef16c3353abe18845f146dfb2b.tar.gz
network: response stacking for all commands
This change refactors most of memcached's networking frontend code. The goals with this change: - Decouple buffer memory from client connections where plausible, reducing memory usage for currently inactive TCP sessions. - Allow easy response stacking for all protocols. Previously every binary command generates a syscall during response. This is no longer true when multiple commands are read off the wire at once. The new meta protocol and most text protocol commands are similar. - Reduce code complexity for network handling. Remove automatic buffer adjustments, error checking, and so on. This is accomplished by removing the iovec, msg, and "write buffer" structures from connection objects. A `mc_resp` object is now used to represent an individual response. These objects contain small iovec's and enough detail to be late-combined on transmit. As a side effect, UDP mode now works with extstore :) Adding to the iovec always had a remote chance of memory failure, so every call had to be checked for an error. Now once a response object is allocated, most manipulations can happen without any checking. This is both a boost to code robustness and performance for some hot paths. This patch is the first in a series, focusing on the client response.
Diffstat (limited to 't/chunked-items.t')
-rw-r--r--t/chunked-items.t2
1 files changed, 1 insertions, 1 deletions
diff --git a/t/chunked-items.t b/t/chunked-items.t
index 5dc9a3d..615e66f 100644
--- a/t/chunked-items.t
+++ b/t/chunked-items.t
@@ -32,7 +32,7 @@ for (1..5) {
my $data = "x" x $size;
print $sock "set foo$_ 0 0 $size\r\n$data\r\n";
my $res = <$sock>;
- is($res, "STORED\r\n", "stored some big items");
+ is($res, "STORED\r\n", "stored some big items: $size");
}
{