nutcracker 0.2.3 → 0.2.4.beta1
Sign up to get free protection for your applications and to get access to all the features.
- data/README.md +53 -5
- data/Rakefile +14 -19
- data/bin/nutcracker +6 -1
- data/ext/nutcracker/ChangeLog +9 -0
- data/ext/nutcracker/LICENSE +0 -0
- data/ext/nutcracker/Makefile +643 -0
- data/ext/nutcracker/Makefile.am +0 -0
- data/ext/nutcracker/Makefile.in +66 -149
- data/ext/nutcracker/NOTICE +0 -0
- data/ext/nutcracker/README.md +13 -11
- data/ext/nutcracker/aclocal.m4 +112 -201
- data/ext/nutcracker/autom4te.cache/output.0 +18664 -0
- data/ext/nutcracker/autom4te.cache/output.1 +18664 -0
- data/ext/nutcracker/autom4te.cache/output.2 +18664 -0
- data/ext/nutcracker/autom4te.cache/requests +494 -0
- data/ext/nutcracker/autom4te.cache/traces.0 +2415 -0
- data/ext/nutcracker/autom4te.cache/traces.1 +945 -0
- data/ext/nutcracker/autom4te.cache/traces.2 +2415 -0
- data/ext/nutcracker/conf/nutcracker.leaf.yml +0 -0
- data/ext/nutcracker/conf/nutcracker.root.yml +0 -0
- data/ext/nutcracker/conf/nutcracker.yml +0 -0
- data/ext/nutcracker/config.h +332 -0
- data/ext/nutcracker/config.h.in +15 -0
- data/ext/nutcracker/config.log +2684 -0
- data/ext/nutcracker/config.status +2317 -0
- data/ext/nutcracker/config/config.guess +23 -84
- data/ext/nutcracker/config/config.sub +23 -93
- data/ext/nutcracker/config/depcomp +35 -81
- data/ext/nutcracker/config/install-sh +109 -122
- data/ext/nutcracker/config/ltmain.sh +1053 -721
- data/ext/nutcracker/config/missing +20 -29
- data/ext/nutcracker/configure +2122 -2320
- data/ext/nutcracker/configure.ac +35 -3
- data/ext/nutcracker/contrib/Makefile +494 -0
- data/ext/nutcracker/contrib/Makefile.am +0 -0
- data/ext/nutcracker/contrib/Makefile.in +41 -107
- data/ext/nutcracker/contrib/yaml-0.1.4.tar.gz +0 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/Makefile +736 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/autom4te.cache/output.0 +13102 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/autom4te.cache/output.1 +13085 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/autom4te.cache/output.2 +13085 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/autom4te.cache/requests +476 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/autom4te.cache/traces.0 +2339 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/autom4te.cache/traces.1 +545 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/autom4te.cache/traces.2 +2339 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/config.h +81 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/config.h.in~ +80 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/config.log +688 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/config.status +2032 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/annotated.html +51 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/bc_s.png +0 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/classes.html +41 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/closed.png +0 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/doxygen.css +656 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/doxygen.png +0 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/files.html +40 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions.html +91 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_0x62.html +84 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_0x63.html +87 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_0x64.html +83 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_0x65.html +110 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_0x66.html +79 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_0x68.html +80 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_0x69.html +92 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_0x6b.html +71 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_0x6c.html +88 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_0x6d.html +96 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_0x6e.html +71 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_0x6f.html +80 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_0x70.html +100 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_0x71.html +71 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_0x72.html +87 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_0x73.html +163 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_0x74.html +115 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_0x75.html +71 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_0x76.html +80 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_0x77.html +77 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_vars.html +91 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_vars_0x62.html +84 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_vars_0x63.html +87 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_vars_0x64.html +83 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_vars_0x65.html +110 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_vars_0x66.html +79 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_vars_0x68.html +80 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_vars_0x69.html +92 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_vars_0x6b.html +71 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_vars_0x6c.html +88 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_vars_0x6d.html +96 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_vars_0x6e.html +71 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_vars_0x6f.html +80 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_vars_0x70.html +100 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_vars_0x71.html +71 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_vars_0x72.html +87 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_vars_0x73.html +163 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_vars_0x74.html +115 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_vars_0x75.html +71 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_vars_0x76.html +80 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/functions_vars_0x77.html +77 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/globals.html +667 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/globals_defs.html +81 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/globals_enum.html +78 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/globals_eval.html +373 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/globals_func.html +196 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/globals_type.html +126 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/group__basic.html +320 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/group__emitter.html +819 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/group__events.html +664 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/group__export.html +60 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/group__nodes.html +795 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/group__parser.html +606 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/group__styles.html +222 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/group__tokens.html +246 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/group__version.html +106 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/index.html +31 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/modules.html +42 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/nav_f.png +0 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/nav_h.png +0 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/open.png +0 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/structyaml__alias__data__s.html +108 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/structyaml__document__s.html +235 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/structyaml__emitter__s.html +1300 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/structyaml__event__s.html +496 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/structyaml__mark__s.html +108 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/structyaml__node__pair__s.html +91 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/structyaml__node__s.html +420 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/structyaml__parser__s.html +1229 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/structyaml__simple__key__s.html +97 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/structyaml__tag__directive__s.html +91 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/structyaml__token__s.html +413 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/structyaml__version__directive__s.html +91 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/tab_a.png +0 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/tab_b.png +0 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/tab_h.png +0 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/tab_s.png +0 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/tabs.css +59 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/doc/html/yaml_8h.html +525 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/include/Makefile.am +17 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/include/Makefile.in +470 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/libtool +8890 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/src/Makefile +484 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/src/api.lo +12 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/src/api.o +0 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/src/dumper.lo +12 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/src/dumper.o +0 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/src/emitter.lo +12 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/src/emitter.o +0 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/src/libyaml.la +41 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/src/loader.lo +12 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/src/loader.o +0 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/src/parser.lo +12 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/src/parser.o +0 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/src/reader.lo +12 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/src/reader.o +0 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/src/scanner.lo +12 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/src/scanner.o +0 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/src/writer.lo +12 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/src/writer.o +0 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/stamp-h1 +1 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/tests/Makefile +675 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/tests/example-deconstructor +0 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/tests/example-deconstructor-alt +0 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/tests/example-deconstructor-alt.o +0 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/tests/example-deconstructor.o +0 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/tests/example-reformatter +0 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/tests/example-reformatter-alt +0 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/tests/example-reformatter-alt.o +0 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/tests/example-reformatter.o +0 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/tests/run-dumper +0 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/tests/run-dumper.o +0 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/tests/run-emitter +0 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/tests/run-emitter.o +0 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/tests/run-loader +0 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/tests/run-loader.o +0 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/tests/run-parser +0 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/tests/run-parser.o +0 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/tests/run-scanner +0 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/tests/run-scanner.o +0 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/yaml-0.1.pc +10 -0
- data/ext/nutcracker/contrib/yaml-0.1.4/yaml-0.1.pc.in +10 -0
- data/ext/nutcracker/extconf.rb +0 -5
- data/ext/nutcracker/libtool +9403 -0
- data/ext/nutcracker/m4/libtool.m4 +553 -492
- data/ext/nutcracker/m4/ltoptions.m4 +7 -6
- data/ext/nutcracker/m4/ltversion.m4 +5 -5
- data/ext/nutcracker/m4/lt~obsolete.m4 +9 -3
- data/ext/nutcracker/notes/c-styleguide.txt +0 -0
- data/ext/nutcracker/notes/debug.txt +0 -0
- data/ext/nutcracker/notes/memcache.txt +0 -0
- data/ext/nutcracker/notes/recommendation.md +21 -2
- data/ext/nutcracker/notes/redis.md +9 -9
- data/ext/nutcracker/notes/socket.txt +0 -0
- data/ext/nutcracker/scripts/nutcracker.init +0 -0
- data/ext/nutcracker/scripts/nutcracker.spec +0 -0
- data/ext/nutcracker/scripts/redis-check.py +0 -0
- data/ext/nutcracker/scripts/redis-check.sh +9 -0
- data/ext/nutcracker/src/Makefile +647 -0
- data/ext/nutcracker/src/Makefile.am +1 -1
- data/ext/nutcracker/src/Makefile.in +74 -153
- data/ext/nutcracker/src/hashkit/Makefile +476 -0
- data/ext/nutcracker/src/hashkit/Makefile.am +1 -0
- data/ext/nutcracker/src/hashkit/Makefile.in +39 -64
- data/ext/nutcracker/src/hashkit/libhashkit.a +0 -0
- data/ext/nutcracker/src/hashkit/nc_crc16.c +66 -0
- data/ext/nutcracker/src/hashkit/nc_crc16.o +0 -0
- data/ext/nutcracker/src/hashkit/nc_crc32.c +0 -0
- data/ext/nutcracker/src/hashkit/nc_crc32.o +0 -0
- data/ext/nutcracker/src/hashkit/nc_fnv.c +0 -0
- data/ext/nutcracker/src/hashkit/nc_fnv.o +0 -0
- data/ext/nutcracker/src/hashkit/nc_hashkit.h +2 -0
- data/ext/nutcracker/src/hashkit/nc_hsieh.c +0 -0
- data/ext/nutcracker/src/hashkit/nc_hsieh.o +0 -0
- data/ext/nutcracker/src/hashkit/nc_jenkins.c +0 -0
- data/ext/nutcracker/src/hashkit/nc_jenkins.o +0 -0
- data/ext/nutcracker/src/hashkit/nc_ketama.c +0 -0
- data/ext/nutcracker/src/hashkit/nc_ketama.o +0 -0
- data/ext/nutcracker/src/hashkit/nc_md5.c +0 -0
- data/ext/nutcracker/src/hashkit/nc_md5.o +0 -0
- data/ext/nutcracker/src/hashkit/nc_modula.c +18 -6
- data/ext/nutcracker/src/hashkit/nc_modula.o +0 -0
- data/ext/nutcracker/src/hashkit/nc_murmur.c +0 -0
- data/ext/nutcracker/src/hashkit/nc_murmur.o +0 -0
- data/ext/nutcracker/src/hashkit/nc_one_at_a_time.c +0 -0
- data/ext/nutcracker/src/hashkit/nc_one_at_a_time.o +0 -0
- data/ext/nutcracker/src/hashkit/nc_random.c +0 -0
- data/ext/nutcracker/src/hashkit/nc_random.o +0 -0
- data/ext/nutcracker/src/nc.c +0 -0
- data/ext/nutcracker/src/nc.o +0 -0
- data/ext/nutcracker/src/nc_array.c +0 -0
- data/ext/nutcracker/src/nc_array.h +0 -0
- data/ext/nutcracker/src/nc_array.o +0 -0
- data/ext/nutcracker/src/nc_client.c +0 -0
- data/ext/nutcracker/src/nc_client.h +0 -0
- data/ext/nutcracker/src/nc_client.o +0 -0
- data/ext/nutcracker/src/nc_conf.c +14 -35
- data/ext/nutcracker/src/nc_conf.h +1 -1
- data/ext/nutcracker/src/nc_conf.o +0 -0
- data/ext/nutcracker/src/nc_connection.c +0 -0
- data/ext/nutcracker/src/nc_connection.h +0 -0
- data/ext/nutcracker/src/nc_connection.o +0 -0
- data/ext/nutcracker/src/nc_core.c +29 -26
- data/ext/nutcracker/src/nc_core.h +13 -5
- data/ext/nutcracker/src/nc_core.o +0 -0
- data/ext/nutcracker/src/{nc_event.c → nc_epoll.c} +94 -30
- data/ext/nutcracker/src/nc_epoll.o +0 -0
- data/ext/nutcracker/src/nc_event.h +33 -13
- data/ext/nutcracker/src/nc_kqueue.c +296 -0
- data/ext/nutcracker/src/nc_kqueue.o +0 -0
- data/ext/nutcracker/src/nc_log.c +0 -0
- data/ext/nutcracker/src/nc_log.h +0 -0
- data/ext/nutcracker/src/nc_log.o +0 -0
- data/ext/nutcracker/src/nc_mbuf.c +0 -0
- data/ext/nutcracker/src/nc_mbuf.h +0 -0
- data/ext/nutcracker/src/nc_mbuf.o +0 -0
- data/ext/nutcracker/src/nc_message.c +0 -0
- data/ext/nutcracker/src/nc_message.h +2 -0
- data/ext/nutcracker/src/nc_message.o +0 -0
- data/ext/nutcracker/src/nc_proxy.c +8 -8
- data/ext/nutcracker/src/nc_proxy.h +0 -0
- data/ext/nutcracker/src/nc_proxy.o +0 -0
- data/ext/nutcracker/src/nc_queue.h +0 -0
- data/ext/nutcracker/src/nc_rbtree.c +0 -0
- data/ext/nutcracker/src/nc_rbtree.h +0 -0
- data/ext/nutcracker/src/nc_rbtree.o +0 -0
- data/ext/nutcracker/src/nc_request.c +3 -3
- data/ext/nutcracker/src/nc_request.o +0 -0
- data/ext/nutcracker/src/nc_response.c +4 -6
- data/ext/nutcracker/src/nc_response.o +0 -0
- data/ext/nutcracker/src/nc_server.c +14 -12
- data/ext/nutcracker/src/nc_server.h +0 -0
- data/ext/nutcracker/src/nc_server.o +0 -0
- data/ext/nutcracker/src/nc_signal.c +0 -0
- data/ext/nutcracker/src/nc_signal.h +0 -0
- data/ext/nutcracker/src/nc_signal.o +0 -0
- data/ext/nutcracker/src/nc_stats.c +16 -21
- data/ext/nutcracker/src/nc_stats.h +3 -4
- data/ext/nutcracker/src/nc_stats.o +0 -0
- data/ext/nutcracker/src/nc_string.c +0 -0
- data/ext/nutcracker/src/nc_string.h +0 -0
- data/ext/nutcracker/src/nc_string.o +0 -0
- data/ext/nutcracker/src/nc_util.c +16 -0
- data/ext/nutcracker/src/nc_util.h +1 -0
- data/ext/nutcracker/src/nc_util.o +0 -0
- data/ext/nutcracker/src/nutcracker +0 -0
- data/ext/nutcracker/src/proto/Makefile +454 -0
- data/ext/nutcracker/src/proto/Makefile.am +0 -0
- data/ext/nutcracker/src/proto/Makefile.in +32 -60
- data/ext/nutcracker/src/proto/libproto.a +0 -0
- data/ext/nutcracker/src/proto/nc_memcache.c +0 -0
- data/ext/nutcracker/src/proto/nc_memcache.o +0 -0
- data/ext/nutcracker/src/proto/nc_proto.h +0 -0
- data/ext/nutcracker/src/proto/nc_redis.c +17 -4
- data/ext/nutcracker/src/proto/nc_redis.o +0 -0
- data/ext/nutcracker/stamp-h1 +1 -0
- data/lib/nutcracker.rb +64 -2
- data/lib/nutcracker/version.rb +1 -1
- metadata +237 -9
@@ -1,9 +1,8 @@
|
|
1
|
-
# Makefile.in generated by automake 1.
|
1
|
+
# Makefile.in generated by automake 1.10 from Makefile.am.
|
2
2
|
# @configure_input@
|
3
3
|
|
4
4
|
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
|
5
|
-
# 2003, 2004, 2005, 2006
|
6
|
-
# Inc.
|
5
|
+
# 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
|
7
6
|
# This Makefile.in is free software; the Free Software Foundation
|
8
7
|
# gives unlimited permission to copy and/or distribute it,
|
9
8
|
# with or without modifications, as long as this notice is preserved.
|
@@ -18,9 +17,8 @@
|
|
18
17
|
|
19
18
|
VPATH = @srcdir@
|
20
19
|
pkgdatadir = $(datadir)/@PACKAGE@
|
21
|
-
pkgincludedir = $(includedir)/@PACKAGE@
|
22
20
|
pkglibdir = $(libdir)/@PACKAGE@
|
23
|
-
|
21
|
+
pkgincludedir = $(includedir)/@PACKAGE@
|
24
22
|
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
|
25
23
|
install_sh_DATA = $(install_sh) -c -m 644
|
26
24
|
install_sh_PROGRAM = $(install_sh) -c
|
@@ -48,20 +46,19 @@ am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
|
|
48
46
|
mkinstalldirs = $(install_sh) -d
|
49
47
|
CONFIG_HEADER = $(top_builddir)/config.h
|
50
48
|
CONFIG_CLEAN_FILES =
|
51
|
-
CONFIG_CLEAN_VPATH_FILES =
|
52
49
|
LIBRARIES = $(noinst_LIBRARIES)
|
53
50
|
ARFLAGS = cru
|
54
51
|
libhashkit_a_AR = $(AR) $(ARFLAGS)
|
55
52
|
libhashkit_a_LIBADD =
|
56
|
-
am_libhashkit_a_OBJECTS =
|
57
|
-
|
58
|
-
|
59
|
-
|
53
|
+
am_libhashkit_a_OBJECTS = nc_crc16.$(OBJEXT) nc_crc32.$(OBJEXT) \
|
54
|
+
nc_fnv.$(OBJEXT) nc_hsieh.$(OBJEXT) nc_jenkins.$(OBJEXT) \
|
55
|
+
nc_ketama.$(OBJEXT) nc_md5.$(OBJEXT) nc_modula.$(OBJEXT) \
|
56
|
+
nc_murmur.$(OBJEXT) nc_one_at_a_time.$(OBJEXT) \
|
57
|
+
nc_random.$(OBJEXT)
|
60
58
|
libhashkit_a_OBJECTS = $(am_libhashkit_a_OBJECTS)
|
61
|
-
DEFAULT_INCLUDES = -I
|
59
|
+
DEFAULT_INCLUDES = -I. -I$(top_builddir)@am__isrc@
|
62
60
|
depcomp = $(SHELL) $(top_srcdir)/config/depcomp
|
63
61
|
am__depfiles_maybe = depfiles
|
64
|
-
am__mv = mv -f
|
65
62
|
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
|
66
63
|
$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
|
67
64
|
LTCOMPILE = $(LIBTOOL) --tag=CC $(AM_LIBTOOLFLAGS) $(LIBTOOLFLAGS) \
|
@@ -177,7 +174,6 @@ libdir = @libdir@
|
|
177
174
|
libexecdir = @libexecdir@
|
178
175
|
localedir = @localedir@
|
179
176
|
localstatedir = @localstatedir@
|
180
|
-
lt_ECHO = @lt_ECHO@
|
181
177
|
mandir = @mandir@
|
182
178
|
mkdir_p = @mkdir_p@
|
183
179
|
oldincludedir = @oldincludedir@
|
@@ -200,6 +196,7 @@ AM_CFLAGS = -Wall -Wshadow -Wno-unused-parameter -Wno-unused-value
|
|
200
196
|
noinst_LIBRARIES = libhashkit.a
|
201
197
|
noinst_HEADERS = nc_hashkit.h
|
202
198
|
libhashkit_a_SOURCES = \
|
199
|
+
nc_crc16.c \
|
203
200
|
nc_crc32.c \
|
204
201
|
nc_fnv.c \
|
205
202
|
nc_hsieh.c \
|
@@ -219,14 +216,14 @@ $(srcdir)/Makefile.in: $(srcdir)/Makefile.am $(am__configure_deps)
|
|
219
216
|
@for dep in $?; do \
|
220
217
|
case '$(am__configure_deps)' in \
|
221
218
|
*$$dep*) \
|
222
|
-
|
223
|
-
|
219
|
+
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
|
220
|
+
&& exit 0; \
|
224
221
|
exit 1;; \
|
225
222
|
esac; \
|
226
223
|
done; \
|
227
|
-
echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign
|
228
|
-
|
229
|
-
$(AUTOMAKE) --foreign
|
224
|
+
echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign src/hashkit/Makefile'; \
|
225
|
+
cd $(top_srcdir) && \
|
226
|
+
$(AUTOMAKE) --foreign src/hashkit/Makefile
|
230
227
|
.PRECIOUS: Makefile
|
231
228
|
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
|
232
229
|
@case '$?' in \
|
@@ -244,7 +241,6 @@ $(top_srcdir)/configure: $(am__configure_deps)
|
|
244
241
|
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
245
242
|
$(ACLOCAL_M4): $(am__aclocal_m4_deps)
|
246
243
|
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
|
247
|
-
$(am__aclocal_m4_deps):
|
248
244
|
|
249
245
|
clean-noinstLIBRARIES:
|
250
246
|
-test -z "$(noinst_LIBRARIES)" || rm -f $(noinst_LIBRARIES)
|
@@ -259,6 +255,7 @@ mostlyclean-compile:
|
|
259
255
|
distclean-compile:
|
260
256
|
-rm -f *.tab.c
|
261
257
|
|
258
|
+
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nc_crc16.Po@am__quote@
|
262
259
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nc_crc32.Po@am__quote@
|
263
260
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nc_fnv.Po@am__quote@
|
264
261
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nc_hsieh.Po@am__quote@
|
@@ -272,21 +269,21 @@ distclean-compile:
|
|
272
269
|
|
273
270
|
.c.o:
|
274
271
|
@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
|
275
|
-
@am__fastdepCC_TRUE@
|
272
|
+
@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
|
276
273
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
|
277
274
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
278
275
|
@am__fastdepCC_FALSE@ $(COMPILE) -c $<
|
279
276
|
|
280
277
|
.c.obj:
|
281
278
|
@am__fastdepCC_TRUE@ $(COMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ `$(CYGPATH_W) '$<'`
|
282
|
-
@am__fastdepCC_TRUE@
|
279
|
+
@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Po
|
283
280
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
|
284
281
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
285
282
|
@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'`
|
286
283
|
|
287
284
|
.c.lo:
|
288
285
|
@am__fastdepCC_TRUE@ $(LTCOMPILE) -MT $@ -MD -MP -MF $(DEPDIR)/$*.Tpo -c -o $@ $<
|
289
|
-
@am__fastdepCC_TRUE@
|
286
|
+
@am__fastdepCC_TRUE@ mv -f $(DEPDIR)/$*.Tpo $(DEPDIR)/$*.Plo
|
290
287
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
|
291
288
|
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
|
292
289
|
@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $<
|
@@ -302,49 +299,45 @@ ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
|
|
302
299
|
unique=`for i in $$list; do \
|
303
300
|
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
304
301
|
done | \
|
305
|
-
$(AWK) '{ files[$$0] = 1;
|
306
|
-
|
302
|
+
$(AWK) ' { files[$$0] = 1; } \
|
303
|
+
END { for (i in files) print i; }'`; \
|
307
304
|
mkid -fID $$unique
|
308
305
|
tags: TAGS
|
309
306
|
|
310
307
|
TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
|
311
308
|
$(TAGS_FILES) $(LISP)
|
312
|
-
|
309
|
+
tags=; \
|
313
310
|
here=`pwd`; \
|
314
311
|
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
|
315
312
|
unique=`for i in $$list; do \
|
316
313
|
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
317
314
|
done | \
|
318
|
-
$(AWK) '{ files[$$0] = 1;
|
319
|
-
|
320
|
-
|
321
|
-
if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
|
315
|
+
$(AWK) ' { files[$$0] = 1; } \
|
316
|
+
END { for (i in files) print i; }'`; \
|
317
|
+
if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
|
322
318
|
test -n "$$unique" || unique=$$empty_fix; \
|
323
|
-
|
324
|
-
|
325
|
-
"$$@" $$unique; \
|
326
|
-
else \
|
327
|
-
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
|
328
|
-
$$unique; \
|
329
|
-
fi; \
|
319
|
+
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
|
320
|
+
$$tags $$unique; \
|
330
321
|
fi
|
331
322
|
ctags: CTAGS
|
332
323
|
CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
|
333
324
|
$(TAGS_FILES) $(LISP)
|
325
|
+
tags=; \
|
326
|
+
here=`pwd`; \
|
334
327
|
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
|
335
328
|
unique=`for i in $$list; do \
|
336
329
|
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
|
337
330
|
done | \
|
338
|
-
$(AWK) '{ files[$$0] = 1;
|
339
|
-
|
340
|
-
test -z "$(CTAGS_ARGS)$$unique" \
|
331
|
+
$(AWK) ' { files[$$0] = 1; } \
|
332
|
+
END { for (i in files) print i; }'`; \
|
333
|
+
test -z "$(CTAGS_ARGS)$$tags$$unique" \
|
341
334
|
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
|
342
|
-
$$unique
|
335
|
+
$$tags $$unique
|
343
336
|
|
344
337
|
GTAGS:
|
345
338
|
here=`$(am__cd) $(top_builddir) && pwd` \
|
346
|
-
&&
|
347
|
-
&& gtags -i $(GTAGS_ARGS)
|
339
|
+
&& cd $(top_srcdir) \
|
340
|
+
&& gtags -i $(GTAGS_ARGS) $$here
|
348
341
|
|
349
342
|
distclean-tags:
|
350
343
|
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
|
@@ -365,17 +358,13 @@ distdir: $(DISTFILES)
|
|
365
358
|
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
|
366
359
|
if test -d $$d/$$file; then \
|
367
360
|
dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
|
368
|
-
if test -d "$(distdir)/$$file"; then \
|
369
|
-
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
|
370
|
-
fi; \
|
371
361
|
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
|
372
|
-
cp -
|
373
|
-
find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
|
362
|
+
cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
|
374
363
|
fi; \
|
375
|
-
cp -
|
364
|
+
cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
|
376
365
|
else \
|
377
|
-
test -f
|
378
|
-
|| cp -p $$d/$$file
|
366
|
+
test -f $(distdir)/$$file \
|
367
|
+
|| cp -p $$d/$$file $(distdir)/$$file \
|
379
368
|
|| exit 1; \
|
380
369
|
fi; \
|
381
370
|
done
|
@@ -403,7 +392,6 @@ clean-generic:
|
|
403
392
|
|
404
393
|
distclean-generic:
|
405
394
|
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
|
406
|
-
-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
|
407
395
|
|
408
396
|
maintainer-clean-generic:
|
409
397
|
@echo "This command is intended for maintainers to use"
|
@@ -426,8 +414,6 @@ dvi-am:
|
|
426
414
|
|
427
415
|
html: html-am
|
428
416
|
|
429
|
-
html-am:
|
430
|
-
|
431
417
|
info: info-am
|
432
418
|
|
433
419
|
info-am:
|
@@ -436,28 +422,18 @@ install-data-am:
|
|
436
422
|
|
437
423
|
install-dvi: install-dvi-am
|
438
424
|
|
439
|
-
install-dvi-am:
|
440
|
-
|
441
425
|
install-exec-am:
|
442
426
|
|
443
427
|
install-html: install-html-am
|
444
428
|
|
445
|
-
install-html-am:
|
446
|
-
|
447
429
|
install-info: install-info-am
|
448
430
|
|
449
|
-
install-info-am:
|
450
|
-
|
451
431
|
install-man:
|
452
432
|
|
453
433
|
install-pdf: install-pdf-am
|
454
434
|
|
455
|
-
install-pdf-am:
|
456
|
-
|
457
435
|
install-ps: install-ps-am
|
458
436
|
|
459
|
-
install-ps-am:
|
460
|
-
|
461
437
|
installcheck-am:
|
462
438
|
|
463
439
|
maintainer-clean: maintainer-clean-am
|
@@ -495,7 +471,6 @@ uninstall-am:
|
|
495
471
|
mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
|
496
472
|
pdf pdf-am ps ps-am tags uninstall uninstall-am
|
497
473
|
|
498
|
-
|
499
474
|
# Tell versions [3.59,3.63) of GNU make to not export all variables.
|
500
475
|
# Otherwise a system limit (for SysV at least) may be exceeded.
|
501
476
|
.NOEXPORT:
|
Binary file
|
@@ -0,0 +1,66 @@
|
|
1
|
+
/*
|
2
|
+
* twemproxy - A fast and lightweight proxy for memcached protocol.
|
3
|
+
* Copyright (C) 2011 Twitter, Inc.
|
4
|
+
*
|
5
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
6
|
+
* you may not use this file except in compliance with the License.
|
7
|
+
* You may obtain a copy of the License at
|
8
|
+
*
|
9
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
10
|
+
*
|
11
|
+
* Unless required by applicable law or agreed to in writing, software
|
12
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
13
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
14
|
+
* See the License for the specific language governing permissions and
|
15
|
+
* limitations under the License.
|
16
|
+
*/
|
17
|
+
|
18
|
+
#include <nc_core.h>
|
19
|
+
|
20
|
+
static const uint16_t crc16tab[256] = {
|
21
|
+
0x0000, 0x1021, 0x2042, 0x3063, 0x4084, 0x50a5, 0x60c6, 0x70e7,
|
22
|
+
0x8108, 0x9129, 0xa14a, 0xb16b, 0xc18c, 0xd1ad, 0xe1ce, 0xf1ef,
|
23
|
+
0x1231, 0x0210, 0x3273, 0x2252, 0x52b5, 0x4294, 0x72f7, 0x62d6,
|
24
|
+
0x9339, 0x8318, 0xb37b, 0xa35a, 0xd3bd, 0xc39c, 0xf3ff, 0xe3de,
|
25
|
+
0x2462, 0x3443, 0x0420, 0x1401, 0x64e6, 0x74c7, 0x44a4, 0x5485,
|
26
|
+
0xa56a, 0xb54b, 0x8528, 0x9509, 0xe5ee, 0xf5cf, 0xc5ac, 0xd58d,
|
27
|
+
0x3653, 0x2672, 0x1611, 0x0630, 0x76d7, 0x66f6, 0x5695, 0x46b4,
|
28
|
+
0xb75b, 0xa77a, 0x9719, 0x8738, 0xf7df, 0xe7fe, 0xd79d, 0xc7bc,
|
29
|
+
0x48c4, 0x58e5, 0x6886, 0x78a7, 0x0840, 0x1861, 0x2802, 0x3823,
|
30
|
+
0xc9cc, 0xd9ed, 0xe98e, 0xf9af, 0x8948, 0x9969, 0xa90a, 0xb92b,
|
31
|
+
0x5af5, 0x4ad4, 0x7ab7, 0x6a96, 0x1a71, 0x0a50, 0x3a33, 0x2a12,
|
32
|
+
0xdbfd, 0xcbdc, 0xfbbf, 0xeb9e, 0x9b79, 0x8b58, 0xbb3b, 0xab1a,
|
33
|
+
0x6ca6, 0x7c87, 0x4ce4, 0x5cc5, 0x2c22, 0x3c03, 0x0c60, 0x1c41,
|
34
|
+
0xedae, 0xfd8f, 0xcdec, 0xddcd, 0xad2a, 0xbd0b, 0x8d68, 0x9d49,
|
35
|
+
0x7e97, 0x6eb6, 0x5ed5, 0x4ef4, 0x3e13, 0x2e32, 0x1e51, 0x0e70,
|
36
|
+
0xff9f, 0xefbe, 0xdfdd, 0xcffc, 0xbf1b, 0xaf3a, 0x9f59, 0x8f78,
|
37
|
+
0x9188, 0x81a9, 0xb1ca, 0xa1eb, 0xd10c, 0xc12d, 0xf14e, 0xe16f,
|
38
|
+
0x1080, 0x00a1, 0x30c2, 0x20e3, 0x5004, 0x4025, 0x7046, 0x6067,
|
39
|
+
0x83b9, 0x9398, 0xa3fb, 0xb3da, 0xc33d, 0xd31c, 0xe37f, 0xf35e,
|
40
|
+
0x02b1, 0x1290, 0x22f3, 0x32d2, 0x4235, 0x5214, 0x6277, 0x7256,
|
41
|
+
0xb5ea, 0xa5cb, 0x95a8, 0x8589, 0xf56e, 0xe54f, 0xd52c, 0xc50d,
|
42
|
+
0x34e2, 0x24c3, 0x14a0, 0x0481, 0x7466, 0x6447, 0x5424, 0x4405,
|
43
|
+
0xa7db, 0xb7fa, 0x8799, 0x97b8, 0xe75f, 0xf77e, 0xc71d, 0xd73c,
|
44
|
+
0x26d3, 0x36f2, 0x0691, 0x16b0, 0x6657, 0x7676, 0x4615, 0x5634,
|
45
|
+
0xd94c, 0xc96d, 0xf90e, 0xe92f, 0x99c8, 0x89e9, 0xb98a, 0xa9ab,
|
46
|
+
0x5844, 0x4865, 0x7806, 0x6827, 0x18c0, 0x08e1, 0x3882, 0x28a3,
|
47
|
+
0xcb7d, 0xdb5c, 0xeb3f, 0xfb1e, 0x8bf9, 0x9bd8, 0xabbb, 0xbb9a,
|
48
|
+
0x4a75, 0x5a54, 0x6a37, 0x7a16, 0x0af1, 0x1ad0, 0x2ab3, 0x3a92,
|
49
|
+
0xfd2e, 0xed0f, 0xdd6c, 0xcd4d, 0xbdaa, 0xad8b, 0x9de8, 0x8dc9,
|
50
|
+
0x7c26, 0x6c07, 0x5c64, 0x4c45, 0x3ca2, 0x2c83, 0x1ce0, 0x0cc1,
|
51
|
+
0xef1f, 0xff3e, 0xcf5d, 0xdf7c, 0xaf9b, 0xbfba, 0x8fd9, 0x9ff8,
|
52
|
+
0x6e17, 0x7e36, 0x4e55, 0x5e74, 0x2e93, 0x3eb2, 0x0ed1, 0x1ef0,
|
53
|
+
};
|
54
|
+
|
55
|
+
uint32_t
|
56
|
+
hash_crc16(const char *key, size_t key_length)
|
57
|
+
{
|
58
|
+
uint64_t x;
|
59
|
+
uint32_t crc = 0;
|
60
|
+
|
61
|
+
for (x=0; x < key_length; x++) {
|
62
|
+
crc = (crc << 8) ^ crc16tab[((crc >> 8) ^ *key++) & 0x00ff];
|
63
|
+
}
|
64
|
+
|
65
|
+
return crc;
|
66
|
+
}
|
Binary file
|
File without changes
|
Binary file
|
File without changes
|
Binary file
|
@@ -24,6 +24,7 @@
|
|
24
24
|
#define HASH_CODEC(ACTION) \
|
25
25
|
ACTION( HASH_ONE_AT_A_TIME, one_at_a_time ) \
|
26
26
|
ACTION( HASH_MD5, md5 ) \
|
27
|
+
ACTION( HASH_CRC16, crc16 ) \
|
27
28
|
ACTION( HASH_CRC32, crc32 ) \
|
28
29
|
ACTION( HASH_FNV1_64, fnv1_64 ) \
|
29
30
|
ACTION( HASH_FNV1A_64, fnv1a_64 ) \
|
@@ -56,6 +57,7 @@ uint32_t hash_one_at_a_time(const char *key, size_t key_length);
|
|
56
57
|
void md5_signature(const unsigned char *key, unsigned int length, unsigned char *result);
|
57
58
|
uint32_t hash_md5(const char *key, size_t key_length);
|
58
59
|
uint32_t hash_crc32(const char *key, size_t key_length);
|
60
|
+
uint32_t hash_crc16(const char *key, size_t key_length);
|
59
61
|
uint32_t hash_fnv1_64(const char *key, size_t key_length);
|
60
62
|
uint32_t hash_fnv1a_64(const char *key, size_t key_length);
|
61
63
|
uint32_t hash_fnv1_32(const char *key, size_t key_length);
|
File without changes
|
Binary file
|
File without changes
|
Binary file
|
File without changes
|
Binary file
|
File without changes
|
Binary file
|
@@ -36,6 +36,8 @@ modula_update(struct server_pool *pool)
|
|
36
36
|
uint32_t continuum_index; /* continuum index */
|
37
37
|
uint32_t continuum_addition; /* extra space in the continuum */
|
38
38
|
uint32_t server_index; /* server index */
|
39
|
+
uint32_t weight_index; /* weight index */
|
40
|
+
uint32_t total_weight; /* total live server weight */
|
39
41
|
int64_t now; /* current timestamp in usec */
|
40
42
|
|
41
43
|
now = nc_usec_now();
|
@@ -45,6 +47,7 @@ modula_update(struct server_pool *pool)
|
|
45
47
|
|
46
48
|
nserver = array_n(&pool->server);
|
47
49
|
nlive_server = 0;
|
50
|
+
total_weight = 0;
|
48
51
|
pool->next_rebuild = 0LL;
|
49
52
|
|
50
53
|
for (server_index = 0; server_index < nserver; server_index++) {
|
@@ -61,6 +64,13 @@ modula_update(struct server_pool *pool)
|
|
61
64
|
} else {
|
62
65
|
nlive_server++;
|
63
66
|
}
|
67
|
+
|
68
|
+
ASSERT(server->weight > 0);
|
69
|
+
|
70
|
+
/* count weight only for live servers */
|
71
|
+
if (!pool->auto_eject_hosts || server->next_retry <= now) {
|
72
|
+
total_weight += server->weight;
|
73
|
+
}
|
64
74
|
}
|
65
75
|
|
66
76
|
pool->nlive_server = nlive_server;
|
@@ -85,9 +95,9 @@ modula_update(struct server_pool *pool)
|
|
85
95
|
* Allocate the continuum for the pool, the first time, and every time we
|
86
96
|
* add a new server to the pool
|
87
97
|
*/
|
88
|
-
if (
|
98
|
+
if (total_weight > pool->nserver_continuum) {
|
89
99
|
struct continuum *continuum;
|
90
|
-
uint32_t nserver_continuum =
|
100
|
+
uint32_t nserver_continuum = total_weight + MODULA_CONTINUUM_ADDITION;
|
91
101
|
uint32_t ncontinuum = nserver_continuum * MODULA_POINTS_PER_SERVER;
|
92
102
|
|
93
103
|
continuum = nc_realloc(pool->continuum, sizeof(*continuum) * ncontinuum);
|
@@ -110,12 +120,14 @@ modula_update(struct server_pool *pool)
|
|
110
120
|
continue;
|
111
121
|
}
|
112
122
|
|
113
|
-
|
123
|
+
for (weight_index = 0; weight_index < server->weight; weight_index++) {
|
124
|
+
pointer_per_server = 1;
|
114
125
|
|
115
|
-
|
116
|
-
|
126
|
+
pool->continuum[continuum_index].index = server_index;
|
127
|
+
pool->continuum[continuum_index++].value = 0;
|
117
128
|
|
118
|
-
|
129
|
+
pointer_counter += pointer_per_server;
|
130
|
+
}
|
119
131
|
}
|
120
132
|
pool->ncontinuum = pointer_counter;
|
121
133
|
|