• Kirill Smelkov's avatar
    slapos/recipe/redis: Add support for UNIX sockets · cbbfd405
    Kirill Smelkov authored
    It is well known that UNIX sockets are faster than TCP over loopback.
    
    E.g. on my machine according to lmbench[1] they have ~ 2 times
    lower latency and ~ 2-3 times more throughput compared to TCP over
    loopback:
    
        *Local* Communication latencies in microseconds - smaller is better
        ---------------------------------------------------------------------
        Host                 OS 2p/0K  Pipe AF     UDP  RPC/   TCP  RPC/ TCP
                                ctxsw       UNIX         UDP         TCP conn
        --------- ------------- ----- ----- ---- ----- ----- ----- ----- ----
        teco      Linux 4.2.0-1  13.8  29.2 26.8  45.0  47.9  48.5  55.5  45.
    
        *Local* Communication bandwidths in MB/s - bigger is better
        -----------------------------------------------------------------------------
        Host                OS  Pipe AF    TCP  File   Mmap  Bcopy  Bcopy  Mem   Mem
                                     UNIX      reread reread (libc) (hand) read write
        --------- ------------- ---- ---- ---- ------ ------ ------ ------ ---- -----
        teco      Linux 4.2.0-1 1084 4353 1493 2329.1 3720.7 1613.8 1109.2 3402 1404.
    
    The same ratio holds for our std shuttle servers.
    
    API to work with unix sockets is essentially the same as with TCP/UDP.
    Because of that it is easy to support both TCP and UNIX socket in one
    software, and this way a lot of software support unix sockets out of the
    box, including Redis.
    
    Because of lower latencies and higher throughput, for performance
    reasons, it makes sense to interconnect services on one machine via unix
    sockets and talk via TCP only to outside world.
    
    Here we add support for unix sockets to Redis recipe.
    
    [1] http://www.bitmover.com/lmbench/
    
    /reviewed-by @kazuhiko  (on !27)
    /cc @alain.takoudjou, @jerome, @vpelletier
    cbbfd405
Name
Last commit
Last update
..
6tunnel Loading commit data...
accords Loading commit data...
addresiliency Loading commit data...
agent Loading commit data...
apache_zope_backend Loading commit data...
apacheperl Loading commit data...
apachephp Loading commit data...
apachephpconfigure Loading commit data...
apacheproxy Loading commit data...
boinc Loading commit data...
bonjourgrid Loading commit data...
certificate_authority Loading commit data...
check_page_content Loading commit data...
check_parameter Loading commit data...
check_port_listening Loading commit data...
check_url_available Loading commit data...
cloud9 Loading commit data...
condor Loading commit data...
configurationfile Loading commit data...
davstorage Loading commit data...
erp5 Loading commit data...
erp5_bootstrap Loading commit data...
erp5_promise Loading commit data...
erp5_test Loading commit data...
erp5_update Loading commit data...
erp5scalabilitytestbed Loading commit data...
erp5testnode Loading commit data...
firefox Loading commit data...
fontconfig Loading commit data...
generic_cloudooo Loading commit data...
generic_kumofs Loading commit data...
generic_memcached Loading commit data...
generic_mysql Loading commit data...
generic_varnish Loading commit data...
generic_zope Loading commit data...
generic_zope_zeo_client Loading commit data...
haproxy Loading commit data...
kumofs Loading commit data...
kvm Loading commit data...
kvm_frontend Loading commit data...
lamp Loading commit data...
lampgeneric Loading commit data...
libcloud Loading commit data...
librecipe Loading commit data...
memcached Loading commit data...
mioga Loading commit data...
mysql Loading commit data...
nbdserver Loading commit data...
nosqltestbed Loading commit data...
novnc Loading commit data...
onetimeupload Loading commit data...
postgres Loading commit data...
proactive Loading commit data...
pulse2 Loading commit data...
re6stnet Loading commit data...
redis Loading commit data...
reverse_proxy_nginx Loading commit data...
seleniumrunner Loading commit data...
sheepdogtestbed Loading commit data...
simplehttpserver Loading commit data...
siptester Loading commit data...
slapmonitor Loading commit data...
slapreport Loading commit data...
sphinx Loading commit data...
squid Loading commit data...
stunnel Loading commit data...
tidstorage Loading commit data...
web_checker Loading commit data...
xvfb Loading commit data...
xwiki Loading commit data...
zabbixagent Loading commit data...
zeo Loading commit data...
zimbra_kvm Loading commit data...
README.cloudooo.txt Loading commit data...
README.erp5.txt Loading commit data...
README.erp5testnode.txt Loading commit data...
README.generic_varnish.txt Loading commit data...
README.kumofs.txt Loading commit data...
README.kvm.txt Loading commit data...
README.kvm_frontend.txt Loading commit data...
README.lamp.txt Loading commit data...
README.libcloud.txt Loading commit data...
README.libcloudrequest.txt Loading commit data...
README.librecipe.txt Loading commit data...
README.memcached.txt Loading commit data...
README.mkdirectory.txt Loading commit data...
README.mysql.txt Loading commit data...
README.nbdserver.txt Loading commit data...
README.nosqltestbed.txt Loading commit data...
README.proactive.txt Loading commit data...
README.seleniumrunner.txt Loading commit data...
README.sheepdogtestbed.txt Loading commit data...
README.siptester.txt Loading commit data...
README.slaprunner.txt Loading commit data...
README.vifib.txt Loading commit data...
README.xwiki.txt Loading commit data...
README.zabbixagent.txt Loading commit data...
README.zero_knowledge.txt Loading commit data...
__init__.py Loading commit data...
_urlparse.py Loading commit data...
_uuid.py Loading commit data...
container.py Loading commit data...
copyfilelist.py Loading commit data...
dcron.py Loading commit data...
downloader.py Loading commit data...
dropbear.py Loading commit data...
duplicity.py Loading commit data...
equeue.py Loading commit data...
generatemac.py Loading commit data...
generatepassword.py Loading commit data...
gitinit.py Loading commit data...
jsondump.py Loading commit data...
libcloudrequest.py Loading commit data...
lockfile.py Loading commit data...
logrotate.py Loading commit data...
mkdirectory.py Loading commit data...
mydumper.py Loading commit data...
neoppod.py Loading commit data...
notifier.py Loading commit data...
pbs.py Loading commit data...
publish.py Loading commit data...
publish_early.py Loading commit data...
publishurl.py Loading commit data...
readline.py Loading commit data...
request.py Loading commit data...
shell.py Loading commit data...
shellinabox.py Loading commit data...
signal_wrapper.py Loading commit data...
simplelogger.py Loading commit data...
slapconfiguration.py Loading commit data...
softwaretype.py Loading commit data...
sshkeys_authority.py Loading commit data...
switch_softwaretype.py Loading commit data...
symbolic_link.py Loading commit data...
trac.py Loading commit data...
userinfo.py Loading commit data...
vifib.py Loading commit data...
waitfor.py Loading commit data...
wrapper.py Loading commit data...
zero_knowledge.py Loading commit data...