diff --git a/component/egg-patch/ZEO4/TCP_NODELAY.patch b/component/egg-patch/ZEO4/TCP_NODELAY.patch new file mode 100644 index 0000000000000000000000000000000000000000..31505347553822ac49e68fa683c72404f5973b8d --- /dev/null +++ b/component/egg-patch/ZEO4/TCP_NODELAY.patch @@ -0,0 +1,39 @@ +From 8b31ccec54584a287cc61501948283d7d6ee7073 Mon Sep 17 00:00:00 2001 +From: Julien Muchembled <jm@nexedi.com> +Date: Mon, 26 Mar 2018 20:39:07 +0200 +Subject: [PATCH] Enable TCP_NODELAY for inet(6) sockets + +See commit 3d886d426243655b9f5a2528636e42b5c7662c19. +--- + src/ZEO/zrpc/client.py | 2 ++ + src/ZEO/zrpc/server.py | 1 + + 2 files changed, 3 insertions(+) + +diff --git a/src/ZEO/zrpc/client.py b/src/ZEO/zrpc/client.py +index 32a7a877..669f5962 100644 +--- a/src/ZEO/zrpc/client.py ++++ b/src/ZEO/zrpc/client.py +@@ -568,6 +568,8 @@ def __init__(self, domain, addr, mgr, client): + self.close() + return + self.sock.setblocking(0) ++ if domain in (socket.AF_INET, socket.AF_INET6): ++ self.sock.setsockopt(socket.IPPROTO_TCP, socket.TCP_NODELAY, 1) + self.state = "opened" + + def connect_procedure(self): +diff --git a/src/ZEO/zrpc/server.py b/src/ZEO/zrpc/server.py +index b83cc004..af91e3e4 100644 +--- a/src/ZEO/zrpc/server.py ++++ b/src/ZEO/zrpc/server.py +@@ -66,6 +66,7 @@ def _open_socket(self): + socket.IPPROTO_IPV6, socket.IPV6_V6ONLY, True) + else: + self.create_socket(socket.AF_INET, socket.SOCK_STREAM) ++ self.socket.setsockopt(socket.IPPROTO_TCP, socket.TCP_NODELAY, 1) + else: + self.create_socket(socket.AF_UNIX, socket.SOCK_STREAM) + self.set_reuse_addr() +-- +2.14.1 + diff --git a/software/neoppod/software-common.cfg b/software/neoppod/software-common.cfg index dad2905c7cf229b51d66f8fc7f8444a600726ed3..85725aee18bbccc5d90e17c0dcf0adcfaab5836f 100644 --- a/software/neoppod/software-common.cfg +++ b/software/neoppod/software-common.cfg @@ -48,6 +48,11 @@ eggs = neoppod[admin, ctl, master, storage-mysqldb] ZODB zope.testing zodbtools +patch-binary = ${patch:location}/bin/patch +ZEO-patch-options = -p1 +ZEO-patches = + ${:_profile_base_location_}/../../component/egg-patch/ZEO4/TCP_NODELAY.patch#b07288522d5c6857738240d948321df6 + [slapos-deps-eggs] recipe = zc.recipe.egg @@ -161,7 +166,7 @@ zodburi = 2.3.0 # Required by: # zodburi==2.0 # ZEO 5 requires transaction >= 2 -ZEO = 4.3.1 +ZEO = 4.3.1+SlapOSPatched001 # Required by: # zodburi==2.0 diff --git a/software/neoppod/software-zodb5.cfg b/software/neoppod/software-zodb5.cfg index 290ce57b9ecfcda2c89b6a6dfeb91c9e6cb59f4c..b625d1fe56f64f175949ca53efa96a9059c008e6 100644 --- a/software/neoppod/software-zodb5.cfg +++ b/software/neoppod/software-zodb5.cfg @@ -1,6 +1,9 @@ [buildout] extends = software.cfg +[neoppod] +ZEO-patches = + [versions] ZODB = 5.3.0 ZEO = 5.1.0