couchbase-memcached 1.2.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data.tar.gz.sig +2 -0
- data/BENCHMARKS +134 -0
- data/CHANGELOG +127 -0
- data/LICENSE +184 -0
- data/Manifest +535 -0
- data/README +118 -0
- data/Rakefile +83 -0
- data/TODO +4 -0
- data/couchbase-memcached.gemspec +33 -0
- data/ext/extconf-make.rb +25 -0
- data/ext/extconf.rb +91 -0
- data/ext/libmemcached-0.50/AUTHORS +11 -0
- data/ext/libmemcached-0.50/COPYING +33 -0
- data/ext/libmemcached-0.50/ChangeLog +392 -0
- data/ext/libmemcached-0.50/Makefile.am +114 -0
- data/ext/libmemcached-0.50/Makefile.in +4232 -0
- data/ext/libmemcached-0.50/NEWS +1 -0
- data/ext/libmemcached-0.50/README +43 -0
- data/ext/libmemcached-0.50/README.FIRST +31 -0
- data/ext/libmemcached-0.50/README.win32 +25 -0
- data/ext/libmemcached-0.50/THANKS +14 -0
- data/ext/libmemcached-0.50/TODO +11 -0
- data/ext/libmemcached-0.50/aclocal.m4 +1077 -0
- data/ext/libmemcached-0.50/clients/client_options.h +45 -0
- data/ext/libmemcached-0.50/clients/execute.cc +131 -0
- data/ext/libmemcached-0.50/clients/execute.h +30 -0
- data/ext/libmemcached-0.50/clients/generator.cc +96 -0
- data/ext/libmemcached-0.50/clients/generator.h +36 -0
- data/ext/libmemcached-0.50/clients/include.am +116 -0
- data/ext/libmemcached-0.50/clients/memaslap.c +908 -0
- data/ext/libmemcached-0.50/clients/memcapable.cc +2094 -0
- data/ext/libmemcached-0.50/clients/memcat.cc +242 -0
- data/ext/libmemcached-0.50/clients/memcp.cc +317 -0
- data/ext/libmemcached-0.50/clients/memdump.cc +183 -0
- data/ext/libmemcached-0.50/clients/memerror.cc +102 -0
- data/ext/libmemcached-0.50/clients/memflush.cc +154 -0
- data/ext/libmemcached-0.50/clients/memparse.cc +68 -0
- data/ext/libmemcached-0.50/clients/memrm.cc +177 -0
- data/ext/libmemcached-0.50/clients/memslap.cc +495 -0
- data/ext/libmemcached-0.50/clients/memstat.cc +349 -0
- data/ext/libmemcached-0.50/clients/ms_atomic.h +69 -0
- data/ext/libmemcached-0.50/clients/ms_conn.c +3413 -0
- data/ext/libmemcached-0.50/clients/ms_conn.h +241 -0
- data/ext/libmemcached-0.50/clients/ms_memslap.h +132 -0
- data/ext/libmemcached-0.50/clients/ms_setting.c +1068 -0
- data/ext/libmemcached-0.50/clients/ms_setting.h +181 -0
- data/ext/libmemcached-0.50/clients/ms_sigsegv.c +126 -0
- data/ext/libmemcached-0.50/clients/ms_sigsegv.h +34 -0
- data/ext/libmemcached-0.50/clients/ms_stats.c +307 -0
- data/ext/libmemcached-0.50/clients/ms_stats.h +69 -0
- data/ext/libmemcached-0.50/clients/ms_task.c +1114 -0
- data/ext/libmemcached-0.50/clients/ms_task.h +94 -0
- data/ext/libmemcached-0.50/clients/ms_thread.c +351 -0
- data/ext/libmemcached-0.50/clients/ms_thread.h +78 -0
- data/ext/libmemcached-0.50/clients/utilities.cc +231 -0
- data/ext/libmemcached-0.50/clients/utilities.h +64 -0
- data/ext/libmemcached-0.50/config.h.in +647 -0
- data/ext/libmemcached-0.50/config/autorun.sh +126 -0
- data/ext/libmemcached-0.50/config/compile +143 -0
- data/ext/libmemcached-0.50/config/config.guess +1517 -0
- data/ext/libmemcached-0.50/config/config.rpath +666 -0
- data/ext/libmemcached-0.50/config/config.sub +1760 -0
- data/ext/libmemcached-0.50/config/depcomp +630 -0
- data/ext/libmemcached-0.50/config/install-sh +520 -0
- data/ext/libmemcached-0.50/config/ltmain.sh +9642 -0
- data/ext/libmemcached-0.50/config/missing +376 -0
- data/ext/libmemcached-0.50/config/pandora-plugin +752 -0
- data/ext/libmemcached-0.50/config/uncrustify.cfg +1112 -0
- data/ext/libmemcached-0.50/configure +27103 -0
- data/ext/libmemcached-0.50/configure.ac +186 -0
- data/ext/libmemcached-0.50/docs/conf.py.in +354 -0
- data/ext/libmemcached-0.50/docs/include.am +240 -0
- data/ext/libmemcached-0.50/docs/man/hashkit_clone.3 +88 -0
- data/ext/libmemcached-0.50/docs/man/hashkit_crc32.3 +105 -0
- data/ext/libmemcached-0.50/docs/man/hashkit_create.3 +88 -0
- data/ext/libmemcached-0.50/docs/man/hashkit_fnv1_32.3 +105 -0
- data/ext/libmemcached-0.50/docs/man/hashkit_fnv1_64.3 +105 -0
- data/ext/libmemcached-0.50/docs/man/hashkit_fnv1a_32.3 +105 -0
- data/ext/libmemcached-0.50/docs/man/hashkit_fnv1a_64.3 +105 -0
- data/ext/libmemcached-0.50/docs/man/hashkit_free.3 +88 -0
- data/ext/libmemcached-0.50/docs/man/hashkit_functions.3 +105 -0
- data/ext/libmemcached-0.50/docs/man/hashkit_hsieh.3 +105 -0
- data/ext/libmemcached-0.50/docs/man/hashkit_is_allocated.3 +88 -0
- data/ext/libmemcached-0.50/docs/man/hashkit_jenkins.3 +105 -0
- data/ext/libmemcached-0.50/docs/man/hashkit_md5.3 +105 -0
- data/ext/libmemcached-0.50/docs/man/hashkit_murmur.3 +105 -0
- data/ext/libmemcached-0.50/docs/man/hashkit_value.3 +66 -0
- data/ext/libmemcached-0.50/docs/man/libhashkit.3 +57 -0
- data/ext/libmemcached-0.50/docs/man/libmemcached.3 +208 -0
- data/ext/libmemcached-0.50/docs/man/libmemcached_check_configuration.3 +293 -0
- data/ext/libmemcached-0.50/docs/man/libmemcached_configuration.3 +293 -0
- data/ext/libmemcached-0.50/docs/man/libmemcached_examples.3 +144 -0
- data/ext/libmemcached-0.50/docs/man/libmemcachedutil.3 +68 -0
- data/ext/libmemcached-0.50/docs/man/memaslap.1 +1222 -0
- data/ext/libmemcached-0.50/docs/man/memcached.3 +293 -0
- data/ext/libmemcached-0.50/docs/man/memcached_add.3 +132 -0
- data/ext/libmemcached-0.50/docs/man/memcached_add_by_key.3 +132 -0
- data/ext/libmemcached-0.50/docs/man/memcached_analyze.3 +77 -0
- data/ext/libmemcached-0.50/docs/man/memcached_append.3 +111 -0
- data/ext/libmemcached-0.50/docs/man/memcached_append_by_key.3 +111 -0
- data/ext/libmemcached-0.50/docs/man/memcached_behavior_get.3 +333 -0
- data/ext/libmemcached-0.50/docs/man/memcached_behavior_set.3 +333 -0
- data/ext/libmemcached-0.50/docs/man/memcached_callback_get.3 +159 -0
- data/ext/libmemcached-0.50/docs/man/memcached_callback_set.3 +159 -0
- data/ext/libmemcached-0.50/docs/man/memcached_cas.3 +91 -0
- data/ext/libmemcached-0.50/docs/man/memcached_cas_by_key.3 +91 -0
- data/ext/libmemcached-0.50/docs/man/memcached_clone.3 +99 -0
- data/ext/libmemcached-0.50/docs/man/memcached_create.3 +99 -0
- data/ext/libmemcached-0.50/docs/man/memcached_decrement.3 +124 -0
- data/ext/libmemcached-0.50/docs/man/memcached_decrement_with_initial.3 +124 -0
- data/ext/libmemcached-0.50/docs/man/memcached_delete.3 +83 -0
- data/ext/libmemcached-0.50/docs/man/memcached_delete_by_key.3 +83 -0
- data/ext/libmemcached-0.50/docs/man/memcached_destroy_sasl_auth_data.3 +95 -0
- data/ext/libmemcached-0.50/docs/man/memcached_dump.3 +77 -0
- data/ext/libmemcached-0.50/docs/man/memcached_fetch.3 +174 -0
- data/ext/libmemcached-0.50/docs/man/memcached_fetch_execute.3 +174 -0
- data/ext/libmemcached-0.50/docs/man/memcached_fetch_result.3 +174 -0
- data/ext/libmemcached-0.50/docs/man/memcached_flush_buffers.3 +72 -0
- data/ext/libmemcached-0.50/docs/man/memcached_free.3 +99 -0
- data/ext/libmemcached-0.50/docs/man/memcached_generate_hash.3 +85 -0
- data/ext/libmemcached-0.50/docs/man/memcached_generate_hash_value.3 +85 -0
- data/ext/libmemcached-0.50/docs/man/memcached_get.3 +174 -0
- data/ext/libmemcached-0.50/docs/man/memcached_get_by_key.3 +174 -0
- data/ext/libmemcached-0.50/docs/man/memcached_get_memory_allocators.3 +111 -0
- data/ext/libmemcached-0.50/docs/man/memcached_get_sasl_callbacks.3 +95 -0
- data/ext/libmemcached-0.50/docs/man/memcached_get_user_data.3 +79 -0
- data/ext/libmemcached-0.50/docs/man/memcached_increment.3 +124 -0
- data/ext/libmemcached-0.50/docs/man/memcached_increment_with_initial.3 +124 -0
- data/ext/libmemcached-0.50/docs/man/memcached_lib_version.3 +76 -0
- data/ext/libmemcached-0.50/docs/man/memcached_mget.3 +174 -0
- data/ext/libmemcached-0.50/docs/man/memcached_mget_by_key.3 +174 -0
- data/ext/libmemcached-0.50/docs/man/memcached_mget_execute.3 +174 -0
- data/ext/libmemcached-0.50/docs/man/memcached_mget_execute_by_key.3 +174 -0
- data/ext/libmemcached-0.50/docs/man/memcached_pool_behavior_get.3 +139 -0
- data/ext/libmemcached-0.50/docs/man/memcached_pool_behavior_set.3 +139 -0
- data/ext/libmemcached-0.50/docs/man/memcached_pool_create.3 +139 -0
- data/ext/libmemcached-0.50/docs/man/memcached_pool_destroy.3 +139 -0
- data/ext/libmemcached-0.50/docs/man/memcached_pool_pop.3 +139 -0
- data/ext/libmemcached-0.50/docs/man/memcached_pool_push.3 +139 -0
- data/ext/libmemcached-0.50/docs/man/memcached_pool_st.3 +139 -0
- data/ext/libmemcached-0.50/docs/man/memcached_prepend.3 +111 -0
- data/ext/libmemcached-0.50/docs/man/memcached_prepend_by_key.3 +111 -0
- data/ext/libmemcached-0.50/docs/man/memcached_quit.3 +74 -0
- data/ext/libmemcached-0.50/docs/man/memcached_replace.3 +132 -0
- data/ext/libmemcached-0.50/docs/man/memcached_replace_by_key.3 +132 -0
- data/ext/libmemcached-0.50/docs/man/memcached_sasl_set_auth_data.3 +95 -0
- data/ext/libmemcached-0.50/docs/man/memcached_server_add.3 +141 -0
- data/ext/libmemcached-0.50/docs/man/memcached_server_count.3 +141 -0
- data/ext/libmemcached-0.50/docs/man/memcached_server_cursor.3 +141 -0
- data/ext/libmemcached-0.50/docs/man/memcached_server_list.3 +141 -0
- data/ext/libmemcached-0.50/docs/man/memcached_server_list_append.3 +111 -0
- data/ext/libmemcached-0.50/docs/man/memcached_server_list_count.3 +111 -0
- data/ext/libmemcached-0.50/docs/man/memcached_server_list_free.3 +111 -0
- data/ext/libmemcached-0.50/docs/man/memcached_server_push.3 +141 -0
- data/ext/libmemcached-0.50/docs/man/memcached_servers_parse.3 +111 -0
- data/ext/libmemcached-0.50/docs/man/memcached_set.3 +132 -0
- data/ext/libmemcached-0.50/docs/man/memcached_set_by_key.3 +132 -0
- data/ext/libmemcached-0.50/docs/man/memcached_set_memory_allocators.3 +111 -0
- data/ext/libmemcached-0.50/docs/man/memcached_set_sasl_callbacks.3 +95 -0
- data/ext/libmemcached-0.50/docs/man/memcached_set_user_data.3 +79 -0
- data/ext/libmemcached-0.50/docs/man/memcached_stat.3 +116 -0
- data/ext/libmemcached-0.50/docs/man/memcached_stat_execute.3 +116 -0
- data/ext/libmemcached-0.50/docs/man/memcached_stat_get_keys.3 +116 -0
- data/ext/libmemcached-0.50/docs/man/memcached_stat_get_value.3 +116 -0
- data/ext/libmemcached-0.50/docs/man/memcached_stat_servername.3 +116 -0
- data/ext/libmemcached-0.50/docs/man/memcached_strerror.3 +69 -0
- data/ext/libmemcached-0.50/docs/man/memcached_verbosity.3 +66 -0
- data/ext/libmemcached-0.50/docs/man/memcached_version.3 +76 -0
- data/ext/libmemcached-0.50/docs/man/memcapable.1 +92 -0
- data/ext/libmemcached-0.50/docs/man/memcat.1 +71 -0
- data/ext/libmemcached-0.50/docs/man/memcp.1 +77 -0
- data/ext/libmemcached-0.50/docs/man/memdump.1 +66 -0
- data/ext/libmemcached-0.50/docs/man/memerror.1 +65 -0
- data/ext/libmemcached-0.50/docs/man/memflush.1 +73 -0
- data/ext/libmemcached-0.50/docs/man/memrm.1 +72 -0
- data/ext/libmemcached-0.50/docs/man/memslap.1 +59 -0
- data/ext/libmemcached-0.50/docs/man/memstat.1 +70 -0
- data/ext/libmemcached-0.50/example/include.am +24 -0
- data/ext/libmemcached-0.50/example/interface_v0.c +594 -0
- data/ext/libmemcached-0.50/example/interface_v1.c +411 -0
- data/ext/libmemcached-0.50/example/memcached_light.c +474 -0
- data/ext/libmemcached-0.50/example/memcached_light.h +7 -0
- data/ext/libmemcached-0.50/example/storage.c +172 -0
- data/ext/libmemcached-0.50/example/storage.h +27 -0
- data/ext/libmemcached-0.50/example/storage_innodb.c +535 -0
- data/ext/libmemcached-0.50/libhashkit/algorithm.cc +69 -0
- data/ext/libmemcached-0.50/libhashkit/algorithm.h +96 -0
- data/ext/libmemcached-0.50/libhashkit/behavior.cc +9 -0
- data/ext/libmemcached-0.50/libhashkit/behavior.h +26 -0
- data/ext/libmemcached-0.50/libhashkit/common.h +33 -0
- data/ext/libmemcached-0.50/libhashkit/configure.h.in +19 -0
- data/ext/libmemcached-0.50/libhashkit/crc32.cc +86 -0
- data/ext/libmemcached-0.50/libhashkit/digest.cc +62 -0
- data/ext/libmemcached-0.50/libhashkit/digest.h +30 -0
- data/ext/libmemcached-0.50/libhashkit/fnv.cc +75 -0
- data/ext/libmemcached-0.50/libhashkit/function.cc +156 -0
- data/ext/libmemcached-0.50/libhashkit/function.h +44 -0
- data/ext/libmemcached-0.50/libhashkit/hashkit.cc +100 -0
- data/ext/libmemcached-0.50/libhashkit/hashkit.h +95 -0
- data/ext/libmemcached-0.50/libhashkit/hashkit.hpp +97 -0
- data/ext/libmemcached-0.50/libhashkit/hsieh.cc +70 -0
- data/ext/libmemcached-0.50/libhashkit/include.am +69 -0
- data/ext/libmemcached-0.50/libhashkit/jenkins.cc +214 -0
- data/ext/libmemcached-0.50/libhashkit/ketama.cc +164 -0
- data/ext/libmemcached-0.50/libhashkit/md5.cc +367 -0
- data/ext/libmemcached-0.50/libhashkit/murmur.cc +77 -0
- data/ext/libmemcached-0.50/libhashkit/one_at_a_time.cc +34 -0
- data/ext/libmemcached-0.50/libhashkit/str_algorithm.cc +58 -0
- data/ext/libmemcached-0.50/libhashkit/str_algorithm.h +48 -0
- data/ext/libmemcached-0.50/libhashkit/strerror.cc +25 -0
- data/ext/libmemcached-0.50/libhashkit/strerror.h +23 -0
- data/ext/libmemcached-0.50/libhashkit/types.h +90 -0
- data/ext/libmemcached-0.50/libhashkit/visibility.h +48 -0
- data/ext/libmemcached-0.50/libmemcached/allocators.cc +119 -0
- data/ext/libmemcached-0.50/libmemcached/allocators.h +87 -0
- data/ext/libmemcached-0.50/libmemcached/analyze.cc +110 -0
- data/ext/libmemcached-0.50/libmemcached/analyze.h +66 -0
- data/ext/libmemcached-0.50/libmemcached/array.c +128 -0
- data/ext/libmemcached-0.50/libmemcached/array.h +75 -0
- data/ext/libmemcached-0.50/libmemcached/auto.cc +383 -0
- data/ext/libmemcached-0.50/libmemcached/auto.h +111 -0
- data/ext/libmemcached-0.50/libmemcached/basic_string.h +55 -0
- data/ext/libmemcached-0.50/libmemcached/behavior.cc +590 -0
- data/ext/libmemcached-0.50/libmemcached/behavior.h +86 -0
- data/ext/libmemcached-0.50/libmemcached/byteorder.cc +90 -0
- data/ext/libmemcached-0.50/libmemcached/byteorder.h +52 -0
- data/ext/libmemcached-0.50/libmemcached/callback.cc +160 -0
- data/ext/libmemcached-0.50/libmemcached/callback.h +61 -0
- data/ext/libmemcached-0.50/libmemcached/common.h +182 -0
- data/ext/libmemcached-0.50/libmemcached/configure.h.in +52 -0
- data/ext/libmemcached-0.50/libmemcached/connect.cc +626 -0
- data/ext/libmemcached-0.50/libmemcached/constants.h +167 -0
- data/ext/libmemcached-0.50/libmemcached/delete.cc +266 -0
- data/ext/libmemcached-0.50/libmemcached/delete.h +57 -0
- data/ext/libmemcached-0.50/libmemcached/do.cc +100 -0
- data/ext/libmemcached-0.50/libmemcached/do.hpp +49 -0
- data/ext/libmemcached-0.50/libmemcached/dump.cc +107 -0
- data/ext/libmemcached-0.50/libmemcached/dump.h +51 -0
- data/ext/libmemcached-0.50/libmemcached/error.cc +419 -0
- data/ext/libmemcached-0.50/libmemcached/error.h +61 -0
- data/ext/libmemcached-0.50/libmemcached/error.hpp +87 -0
- data/ext/libmemcached-0.50/libmemcached/exception.hpp +63 -0
- data/ext/libmemcached-0.50/libmemcached/fetch.cc +267 -0
- data/ext/libmemcached-0.50/libmemcached/fetch.h +53 -0
- data/ext/libmemcached-0.50/libmemcached/flush.cc +149 -0
- data/ext/libmemcached-0.50/libmemcached/flush.h +49 -0
- data/ext/libmemcached-0.50/libmemcached/flush_buffers.cc +66 -0
- data/ext/libmemcached-0.50/libmemcached/flush_buffers.h +49 -0
- data/ext/libmemcached-0.50/libmemcached/get.cc +842 -0
- data/ext/libmemcached-0.50/libmemcached/get.h +135 -0
- data/ext/libmemcached-0.50/libmemcached/hash.cc +178 -0
- data/ext/libmemcached-0.50/libmemcached/hash.h +68 -0
- data/ext/libmemcached-0.50/libmemcached/hosts.cc +516 -0
- data/ext/libmemcached-0.50/libmemcached/include.am +183 -0
- data/ext/libmemcached-0.50/libmemcached/initialize_query.cc +70 -0
- data/ext/libmemcached-0.50/libmemcached/initialize_query.h +51 -0
- data/ext/libmemcached-0.50/libmemcached/internal.h +46 -0
- data/ext/libmemcached-0.50/libmemcached/io.cc +920 -0
- data/ext/libmemcached-0.50/libmemcached/io.h +119 -0
- data/ext/libmemcached-0.50/libmemcached/is.h +48 -0
- data/ext/libmemcached-0.50/libmemcached/key.cc +23 -0
- data/ext/libmemcached-0.50/libmemcached/libmemcached_probes.d +30 -0
- data/ext/libmemcached-0.50/libmemcached/libmemcached_probes.h +118 -0
- data/ext/libmemcached-0.50/libmemcached/memcached.cc +437 -0
- data/ext/libmemcached-0.50/libmemcached/memcached.h +214 -0
- data/ext/libmemcached-0.50/libmemcached/memcached.hpp +799 -0
- data/ext/libmemcached-0.50/libmemcached/memcached/README.txt +7 -0
- data/ext/libmemcached-0.50/libmemcached/memcached/protocol_binary.h +726 -0
- data/ext/libmemcached-0.50/libmemcached/memcached/vbucket.h +26 -0
- data/ext/libmemcached-0.50/libmemcached/memcached_util.h +44 -0
- data/ext/libmemcached-0.50/libmemcached/memory.h +79 -0
- data/ext/libmemcached-0.50/libmemcached/options.cc +178 -0
- data/ext/libmemcached-0.50/libmemcached/options.h +49 -0
- data/ext/libmemcached-0.50/libmemcached/options.hpp +56 -0
- data/ext/libmemcached-0.50/libmemcached/options/context.h +151 -0
- data/ext/libmemcached-0.50/libmemcached/options/include.am +19 -0
- data/ext/libmemcached-0.50/libmemcached/options/parser.am +0 -0
- data/ext/libmemcached-0.50/libmemcached/options/parser.cc +2324 -0
- data/ext/libmemcached-0.50/libmemcached/options/parser.h +122 -0
- data/ext/libmemcached-0.50/libmemcached/options/scanner.cc +3203 -0
- data/ext/libmemcached-0.50/libmemcached/options/scanner.h +479 -0
- data/ext/libmemcached-0.50/libmemcached/options/server.h +60 -0
- data/ext/libmemcached-0.50/libmemcached/options/symbol.h +57 -0
- data/ext/libmemcached-0.50/libmemcached/parse.cc +110 -0
- data/ext/libmemcached-0.50/libmemcached/parse.h +23 -0
- data/ext/libmemcached-0.50/libmemcached/platform.h +56 -0
- data/ext/libmemcached-0.50/libmemcached/prefix_key.cc +65 -0
- data/ext/libmemcached-0.50/libmemcached/prefix_key.h +49 -0
- data/ext/libmemcached-0.50/libmemcached/protocol/ascii_handler.c +963 -0
- data/ext/libmemcached-0.50/libmemcached/protocol/ascii_handler.h +40 -0
- data/ext/libmemcached-0.50/libmemcached/protocol/binary_handler.c +1121 -0
- data/ext/libmemcached-0.50/libmemcached/protocol/binary_handler.h +47 -0
- data/ext/libmemcached-0.50/libmemcached/protocol/cache.c +149 -0
- data/ext/libmemcached-0.50/libmemcached/protocol/cache.h +116 -0
- data/ext/libmemcached-0.50/libmemcached/protocol/callback.h +418 -0
- data/ext/libmemcached-0.50/libmemcached/protocol/common.h +163 -0
- data/ext/libmemcached-0.50/libmemcached/protocol/include.am +26 -0
- data/ext/libmemcached-0.50/libmemcached/protocol/pedantic.c +202 -0
- data/ext/libmemcached-0.50/libmemcached/protocol/protocol_handler.c +365 -0
- data/ext/libmemcached-0.50/libmemcached/protocol_handler.h +215 -0
- data/ext/libmemcached-0.50/libmemcached/purge.cc +90 -0
- data/ext/libmemcached-0.50/libmemcached/quit.cc +139 -0
- data/ext/libmemcached-0.50/libmemcached/quit.h +55 -0
- data/ext/libmemcached-0.50/libmemcached/response.cc +619 -0
- data/ext/libmemcached-0.50/libmemcached/response.h +57 -0
- data/ext/libmemcached-0.50/libmemcached/result.cc +173 -0
- data/ext/libmemcached-0.50/libmemcached/result.h +100 -0
- data/ext/libmemcached-0.50/libmemcached/return.h +98 -0
- data/ext/libmemcached-0.50/libmemcached/sasl.c +408 -0
- data/ext/libmemcached-0.50/libmemcached/sasl.h +86 -0
- data/ext/libmemcached-0.50/libmemcached/server.cc +351 -0
- data/ext/libmemcached-0.50/libmemcached/server.h +169 -0
- data/ext/libmemcached-0.50/libmemcached/server_list.cc +88 -0
- data/ext/libmemcached-0.50/libmemcached/server_list.h +77 -0
- data/ext/libmemcached-0.50/libmemcached/stats.cc +623 -0
- data/ext/libmemcached-0.50/libmemcached/stats.h +96 -0
- data/ext/libmemcached-0.50/libmemcached/storage.cc +567 -0
- data/ext/libmemcached-0.50/libmemcached/storage.h +133 -0
- data/ext/libmemcached-0.50/libmemcached/strerror.cc +189 -0
- data/ext/libmemcached-0.50/libmemcached/strerror.h +50 -0
- data/ext/libmemcached-0.50/libmemcached/string.cc +253 -0
- data/ext/libmemcached-0.50/libmemcached/string.h +121 -0
- data/ext/libmemcached-0.50/libmemcached/touch.cc +106 -0
- data/ext/libmemcached-0.50/libmemcached/touch.h +59 -0
- data/ext/libmemcached-0.50/libmemcached/types.h +117 -0
- data/ext/libmemcached-0.50/libmemcached/util.h +40 -0
- data/ext/libmemcached-0.50/libmemcached/util/flush.cc +61 -0
- data/ext/libmemcached-0.50/libmemcached/util/flush.h +50 -0
- data/ext/libmemcached-0.50/libmemcached/util/include.am +34 -0
- data/ext/libmemcached-0.50/libmemcached/util/ping.cc +62 -0
- data/ext/libmemcached-0.50/libmemcached/util/ping.h +49 -0
- data/ext/libmemcached-0.50/libmemcached/util/pool.cc +392 -0
- data/ext/libmemcached-0.50/libmemcached/util/pool.h +78 -0
- data/ext/libmemcached-0.50/libmemcached/util/version.cc +87 -0
- data/ext/libmemcached-0.50/libmemcached/util/version.h +53 -0
- data/ext/libmemcached-0.50/libmemcached/verbosity.cc +97 -0
- data/ext/libmemcached-0.50/libmemcached/verbosity.h +50 -0
- data/ext/libmemcached-0.50/libmemcached/version.cc +214 -0
- data/ext/libmemcached-0.50/libmemcached/version.h +52 -0
- data/ext/libmemcached-0.50/libmemcached/virtual_bucket.c +118 -0
- data/ext/libmemcached-0.50/libmemcached/virtual_bucket.h +59 -0
- data/ext/libmemcached-0.50/libmemcached/visibility.h +51 -0
- data/ext/libmemcached-0.50/libmemcached/watchpoint.h +110 -0
- data/ext/libmemcached-0.50/libtest/callbacks.h +21 -0
- data/ext/libmemcached-0.50/libtest/collection.h +19 -0
- data/ext/libmemcached-0.50/libtest/common.h +50 -0
- data/ext/libmemcached-0.50/libtest/core.h +11 -0
- data/ext/libmemcached-0.50/libtest/error.h +18 -0
- data/ext/libmemcached-0.50/libtest/failed.h +52 -0
- data/ext/libmemcached-0.50/libtest/framework.cc +57 -0
- data/ext/libmemcached-0.50/libtest/framework.h +137 -0
- data/ext/libmemcached-0.50/libtest/get.h +22 -0
- data/ext/libmemcached-0.50/libtest/include.am +52 -0
- data/ext/libmemcached-0.50/libtest/runner.h +19 -0
- data/ext/libmemcached-0.50/libtest/server.c +355 -0
- data/ext/libmemcached-0.50/libtest/server.h +43 -0
- data/ext/libmemcached-0.50/libtest/stats.h +30 -0
- data/ext/libmemcached-0.50/libtest/strerror.h +14 -0
- data/ext/libmemcached-0.50/libtest/test.cc +319 -0
- data/ext/libmemcached-0.50/libtest/test.h +162 -0
- data/ext/libmemcached-0.50/libtest/test.hpp +46 -0
- data/ext/libmemcached-0.50/libtest/visibility.h +69 -0
- data/ext/libmemcached-0.50/m4/ac_cxx_header_stdcxx_98.m4 +83 -0
- data/ext/libmemcached-0.50/m4/acx_pthread.m4 +271 -0
- data/ext/libmemcached-0.50/m4/byteorder.m4 +19 -0
- data/ext/libmemcached-0.50/m4/deprecated.m4 +17 -0
- data/ext/libmemcached-0.50/m4/eagain.m4 +28 -0
- data/ext/libmemcached-0.50/m4/enable_utillib.m4 +16 -0
- data/ext/libmemcached-0.50/m4/gettext.m4 +379 -0
- data/ext/libmemcached-0.50/m4/hsieh.m4 +18 -0
- data/ext/libmemcached-0.50/m4/iconv.m4 +214 -0
- data/ext/libmemcached-0.50/m4/lib-ld.m4 +110 -0
- data/ext/libmemcached-0.50/m4/lib-link.m4 +767 -0
- data/ext/libmemcached-0.50/m4/lib-prefix.m4 +221 -0
- data/ext/libmemcached-0.50/m4/libtool.m4 +7851 -0
- data/ext/libmemcached-0.50/m4/ltoptions.m4 +369 -0
- data/ext/libmemcached-0.50/m4/ltsugar.m4 +123 -0
- data/ext/libmemcached-0.50/m4/ltversion.m4 +23 -0
- data/ext/libmemcached-0.50/m4/lt~obsolete.m4 +98 -0
- data/ext/libmemcached-0.50/m4/memaslap.m4 +9 -0
- data/ext/libmemcached-0.50/m4/memcached.m4 +31 -0
- data/ext/libmemcached-0.50/m4/murmur.m4 +18 -0
- data/ext/libmemcached-0.50/m4/pandora_64bit.m4 +60 -0
- data/ext/libmemcached-0.50/m4/pandora_bison.m4 +33 -0
- data/ext/libmemcached-0.50/m4/pandora_canonical.m4 +418 -0
- data/ext/libmemcached-0.50/m4/pandora_check_compiler_version.m4 +37 -0
- data/ext/libmemcached-0.50/m4/pandora_check_cxx_standard.m4 +23 -0
- data/ext/libmemcached-0.50/m4/pandora_cinttypes.m4 +39 -0
- data/ext/libmemcached-0.50/m4/pandora_clock_gettime.m4 +15 -0
- data/ext/libmemcached-0.50/m4/pandora_compile_stdcxx_0x.m4 +103 -0
- data/ext/libmemcached-0.50/m4/pandora_cstdint.m4 +38 -0
- data/ext/libmemcached-0.50/m4/pandora_cxx_demangle.m4 +27 -0
- data/ext/libmemcached-0.50/m4/pandora_enable_dtrace.m4 +60 -0
- data/ext/libmemcached-0.50/m4/pandora_ensure_gcc_version.m4 +62 -0
- data/ext/libmemcached-0.50/m4/pandora_extensions.m4 +16 -0
- data/ext/libmemcached-0.50/m4/pandora_fdatasync.m4 +25 -0
- data/ext/libmemcached-0.50/m4/pandora_flex.m4 +33 -0
- data/ext/libmemcached-0.50/m4/pandora_have_better_malloc.m4 +66 -0
- data/ext/libmemcached-0.50/m4/pandora_have_boost.m4 +93 -0
- data/ext/libmemcached-0.50/m4/pandora_have_gcc_atomics.m4 +37 -0
- data/ext/libmemcached-0.50/m4/pandora_have_innodb.m4 +41 -0
- data/ext/libmemcached-0.50/m4/pandora_have_libaio.m4 +56 -0
- data/ext/libmemcached-0.50/m4/pandora_have_libavahi.m4 +41 -0
- data/ext/libmemcached-0.50/m4/pandora_have_libbdb.m4 +40 -0
- data/ext/libmemcached-0.50/m4/pandora_have_libboost_date_time.m4 +46 -0
- data/ext/libmemcached-0.50/m4/pandora_have_libboost_filesystem.m4 +47 -0
- data/ext/libmemcached-0.50/m4/pandora_have_libboost_iostreams.m4 +49 -0
- data/ext/libmemcached-0.50/m4/pandora_have_libboost_options.m4 +47 -0
- data/ext/libmemcached-0.50/m4/pandora_have_libboost_regex.m4 +54 -0
- data/ext/libmemcached-0.50/m4/pandora_have_libboost_test.m4 +45 -0
- data/ext/libmemcached-0.50/m4/pandora_have_libboost_thread.m4 +54 -0
- data/ext/libmemcached-0.50/m4/pandora_have_libcassandra.m4 +44 -0
- data/ext/libmemcached-0.50/m4/pandora_have_libcurl.m4 +62 -0
- data/ext/libmemcached-0.50/m4/pandora_have_libdl.m4 +51 -0
- data/ext/libmemcached-0.50/m4/pandora_have_libdrizzle.m4 +61 -0
- data/ext/libmemcached-0.50/m4/pandora_have_libevent.m4 +66 -0
- data/ext/libmemcached-0.50/m4/pandora_have_libgearman.m4 +41 -0
- data/ext/libmemcached-0.50/m4/pandora_have_libgtest.m4 +47 -0
- data/ext/libmemcached-0.50/m4/pandora_have_libhaildb.m4 +43 -0
- data/ext/libmemcached-0.50/m4/pandora_have_libhashkit.m4 +42 -0
- data/ext/libmemcached-0.50/m4/pandora_have_libinnodb.m4 +64 -0
- data/ext/libmemcached-0.50/m4/pandora_have_libldap.m4 +73 -0
- data/ext/libmemcached-0.50/m4/pandora_have_libmemcached.m4 +106 -0
- data/ext/libmemcached-0.50/m4/pandora_have_libmysqlclient.m4 +146 -0
- data/ext/libmemcached-0.50/m4/pandora_have_libndbclient.m4 +80 -0
- data/ext/libmemcached-0.50/m4/pandora_have_libpcre.m4 +73 -0
- data/ext/libmemcached-0.50/m4/pandora_have_libpq.m4 +46 -0
- data/ext/libmemcached-0.50/m4/pandora_have_libpqxx.m4 +44 -0
- data/ext/libmemcached-0.50/m4/pandora_have_libsqlite3.m4 +42 -0
- data/ext/libmemcached-0.50/m4/pandora_have_libtokyocabinet.m4 +54 -0
- data/ext/libmemcached-0.50/m4/pandora_have_libuuid.m4 +55 -0
- data/ext/libmemcached-0.50/m4/pandora_have_libvbucket.m4 +40 -0
- data/ext/libmemcached-0.50/m4/pandora_have_libxml2.m4 +52 -0
- data/ext/libmemcached-0.50/m4/pandora_have_libz.m4 +51 -0
- data/ext/libmemcached-0.50/m4/pandora_have_protobuf.m4 +82 -0
- data/ext/libmemcached-0.50/m4/pandora_have_sasl.m4 +133 -0
- data/ext/libmemcached-0.50/m4/pandora_have_thrift.m4 +45 -0
- data/ext/libmemcached-0.50/m4/pandora_header_assert.m4 +23 -0
- data/ext/libmemcached-0.50/m4/pandora_header_stdcxx_98.m4 +83 -0
- data/ext/libmemcached-0.50/m4/pandora_intltool.m4 +225 -0
- data/ext/libmemcached-0.50/m4/pandora_libtool.m4 +25 -0
- data/ext/libmemcached-0.50/m4/pandora_optimize.m4 +75 -0
- data/ext/libmemcached-0.50/m4/pandora_platform.m4 +117 -0
- data/ext/libmemcached-0.50/m4/pandora_plugins.m4 +62 -0
- data/ext/libmemcached-0.50/m4/pandora_print_callstack.m4 +61 -0
- data/ext/libmemcached-0.50/m4/pandora_pthread.m4 +258 -0
- data/ext/libmemcached-0.50/m4/pandora_python3_devel.m4 +236 -0
- data/ext/libmemcached-0.50/m4/pandora_run_cpplint.m4 +8 -0
- data/ext/libmemcached-0.50/m4/pandora_sasl.m4 +133 -0
- data/ext/libmemcached-0.50/m4/pandora_shared_ptr.m4 +59 -0
- data/ext/libmemcached-0.50/m4/pandora_stack_direction.m4 +39 -0
- data/ext/libmemcached-0.50/m4/pandora_stl_hash.m4 +94 -0
- data/ext/libmemcached-0.50/m4/pandora_swig.m4 +39 -0
- data/ext/libmemcached-0.50/m4/pandora_use_pipe.m4 +36 -0
- data/ext/libmemcached-0.50/m4/pandora_vc_build.m4 +168 -0
- data/ext/libmemcached-0.50/m4/pandora_version.m4 +11 -0
- data/ext/libmemcached-0.50/m4/pandora_visibility.m4 +75 -0
- data/ext/libmemcached-0.50/m4/pandora_warnings.m4 +447 -0
- data/ext/libmemcached-0.50/m4/pandora_with_gettext.m4 +44 -0
- data/ext/libmemcached-0.50/m4/pandora_with_lua.m4 +55 -0
- data/ext/libmemcached-0.50/m4/pandora_with_memcached.m4 +41 -0
- data/ext/libmemcached-0.50/m4/pandora_with_perl.m4 +81 -0
- data/ext/libmemcached-0.50/m4/pandora_with_php.m4 +56 -0
- data/ext/libmemcached-0.50/m4/pandora_with_python.m4 +37 -0
- data/ext/libmemcached-0.50/m4/pandora_with_python3.m4 +44 -0
- data/ext/libmemcached-0.50/m4/pandora_with_r.m4 +33 -0
- data/ext/libmemcached-0.50/m4/pandora_with_ruby.m4 +79 -0
- data/ext/libmemcached-0.50/m4/pandora_with_valgrind.m4 +17 -0
- data/ext/libmemcached-0.50/m4/pkg.m4 +157 -0
- data/ext/libmemcached-0.50/m4/po.m4 +449 -0
- data/ext/libmemcached-0.50/m4/progtest.m4 +92 -0
- data/ext/libmemcached-0.50/m4/protocol_binary.m4 +36 -0
- data/ext/libmemcached-0.50/m4/setsockopt.m4 +73 -0
- data/ext/libmemcached-0.50/m4/socket_send_flags.m4 +66 -0
- data/ext/libmemcached-0.50/poll/include.am +8 -0
- data/ext/libmemcached-0.50/poll/poll.c +77 -0
- data/ext/libmemcached-0.50/poll/poll.h +45 -0
- data/ext/libmemcached-0.50/support/include.am +11 -0
- data/ext/libmemcached-0.50/support/libmemcached-fc.spec.in +105 -0
- data/ext/libmemcached-0.50/support/libmemcached.pc.in +10 -0
- data/ext/libmemcached-0.50/support/libmemcached.spec.in +281 -0
- data/ext/libmemcached-0.50/support/set_benchmark.sh +5 -0
- data/ext/libmemcached-0.50/tests/atomsmasher.cc +295 -0
- data/ext/libmemcached-0.50/tests/basic.cc +134 -0
- data/ext/libmemcached-0.50/tests/basic.h +66 -0
- data/ext/libmemcached-0.50/tests/cpp_example.cc +195 -0
- data/ext/libmemcached-0.50/tests/deprecated.cc +72 -0
- data/ext/libmemcached-0.50/tests/deprecated.h +49 -0
- data/ext/libmemcached-0.50/tests/error_conditions.cc +63 -0
- data/ext/libmemcached-0.50/tests/error_conditions.h +48 -0
- data/ext/libmemcached-0.50/tests/hash_plus.cc +225 -0
- data/ext/libmemcached-0.50/tests/hash_results.h +127 -0
- data/ext/libmemcached-0.50/tests/hashkit_functions.cc +619 -0
- data/ext/libmemcached-0.50/tests/include.am +342 -0
- data/ext/libmemcached-0.50/tests/ketama_test_cases.h +121 -0
- data/ext/libmemcached-0.50/tests/ketama_test_cases_spy.h +118 -0
- data/ext/libmemcached-0.50/tests/libmemcached_world.h +205 -0
- data/ext/libmemcached-0.50/tests/mem_functions.cc +6648 -0
- data/ext/libmemcached-0.50/tests/mem_udp.cc +510 -0
- data/ext/libmemcached-0.50/tests/output_plus.res +5 -0
- data/ext/libmemcached-0.50/tests/parser.cc +599 -0
- data/ext/libmemcached-0.50/tests/parser.h +109 -0
- data/ext/libmemcached-0.50/tests/plus.cpp +240 -0
- data/ext/libmemcached-0.50/tests/pool.cc +78 -0
- data/ext/libmemcached-0.50/tests/pool.h +49 -0
- data/ext/libmemcached-0.50/tests/print.cc +58 -0
- data/ext/libmemcached-0.50/tests/print.h +51 -0
- data/ext/libmemcached-0.50/tests/replication.cc +333 -0
- data/ext/libmemcached-0.50/tests/replication.h +64 -0
- data/ext/libmemcached-0.50/tests/start.cc +29 -0
- data/ext/libmemcached-0.50/tests/string.cc +174 -0
- data/ext/libmemcached-0.50/tests/string.h +67 -0
- data/ext/libmemcached-0.50/tests/virtual_buckets.cc +143 -0
- data/ext/libmemcached-0.50/tests/virtual_buckets.h +51 -0
- data/ext/libmemcached-0.50/win32/include.am +11 -0
- data/ext/libmemcached-0.50/win32/wrappers.h +55 -0
- data/ext/rlibmemcached.i +263 -0
- data/ext/rlibmemcached_wrap.c +16732 -0
- data/lib/memcached.rb +32 -0
- data/lib/memcached/auth.rb +16 -0
- data/lib/memcached/behaviors.rb +77 -0
- data/lib/memcached/exceptions.rb +84 -0
- data/lib/memcached/experimental.rb +48 -0
- data/lib/memcached/memcached.rb +660 -0
- data/lib/memcached/rails.rb +133 -0
- data/test/profile/benchmark.rb +245 -0
- data/test/profile/c_profiler.rb +14 -0
- data/test/profile/exercise.rb +185 -0
- data/test/profile/rb_profiler.rb +21 -0
- data/test/profile/valgrind.rb +10 -0
- data/test/setup.rb +30 -0
- data/test/teardown.rb +0 -0
- data/test/test_helper.rb +19 -0
- data/test/unit/binding_test.rb +8 -0
- data/test/unit/memcached_experimental_test.rb +274 -0
- data/test/unit/memcached_test.rb +1293 -0
- data/test/unit/rails_test.rb +122 -0
- metadata +650 -0
- metadata.gz.sig +0 -0
|
@@ -0,0 +1,181 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* File: ms_setting.h
|
|
3
|
+
* Author: Mingqiang Zhuang
|
|
4
|
+
*
|
|
5
|
+
* Created on February 10, 2009
|
|
6
|
+
*
|
|
7
|
+
* (c) Copyright 2009, Schooner Information Technology, Inc.
|
|
8
|
+
* http://www.schoonerinfotech.com/
|
|
9
|
+
*
|
|
10
|
+
*/
|
|
11
|
+
#ifndef MS_SETTING_H
|
|
12
|
+
#define MS_SETTING_H
|
|
13
|
+
|
|
14
|
+
#include "ms_memslap.h"
|
|
15
|
+
|
|
16
|
+
#ifdef __cplusplus
|
|
17
|
+
extern "C" {
|
|
18
|
+
#endif
|
|
19
|
+
|
|
20
|
+
#define MCD_SRVS_NUM_INIT 8
|
|
21
|
+
#define MCD_HOST_LENGTH 64
|
|
22
|
+
#define KEY_RANGE_COUNT_INIT 8
|
|
23
|
+
#define VALUE_RANGE_COUNT_INIT 8
|
|
24
|
+
#define PROP_ERROR 0.001
|
|
25
|
+
|
|
26
|
+
#define MIN_KEY_SIZE 16
|
|
27
|
+
#define MAX_KEY_SIZE 250
|
|
28
|
+
#define MAX_VALUE_SIZE (1024 * 1024)
|
|
29
|
+
|
|
30
|
+
/* the content of the configuration file for memslap running without configuration file */
|
|
31
|
+
#define DEFAULT_CONGIF_STR \
|
|
32
|
+
"key\n" \
|
|
33
|
+
"64 64 1\n" \
|
|
34
|
+
"value\n" \
|
|
35
|
+
"1024 1024 1\n" \
|
|
36
|
+
"cmd\n" \
|
|
37
|
+
"0 0.1\n" \
|
|
38
|
+
"1 0.9"
|
|
39
|
+
|
|
40
|
+
/* Used to parse the value length return by server and path string */
|
|
41
|
+
typedef struct token_s
|
|
42
|
+
{
|
|
43
|
+
char *value;
|
|
44
|
+
size_t length;
|
|
45
|
+
} token_t;
|
|
46
|
+
|
|
47
|
+
#define MAX_TOKENS 10
|
|
48
|
+
|
|
49
|
+
/* server information */
|
|
50
|
+
typedef struct mcd_sever
|
|
51
|
+
{
|
|
52
|
+
char srv_host_name[MCD_HOST_LENGTH]; /* host name of server */
|
|
53
|
+
int srv_port; /* server port */
|
|
54
|
+
|
|
55
|
+
/* for calculating how long the server disconnects */
|
|
56
|
+
volatile uint32_t disconn_cnt; /* number of disconnections count */
|
|
57
|
+
volatile uint32_t reconn_cnt; /* number of reconnections count */
|
|
58
|
+
struct timeval disconn_time; /* start time of disconnection */
|
|
59
|
+
struct timeval reconn_time; /* end time of reconnection */
|
|
60
|
+
} ms_mcd_server_t;
|
|
61
|
+
|
|
62
|
+
/* information of an item distribution including key and value */
|
|
63
|
+
typedef struct distr
|
|
64
|
+
{
|
|
65
|
+
size_t key_size; /* size of key */
|
|
66
|
+
int key_offset; /* offset of one key in character block */
|
|
67
|
+
size_t value_size; /* size of value */
|
|
68
|
+
} ms_distr_t;
|
|
69
|
+
|
|
70
|
+
/* information of key distribution */
|
|
71
|
+
typedef struct key_distr
|
|
72
|
+
{
|
|
73
|
+
size_t start_len; /* start of the key length range */
|
|
74
|
+
size_t end_len; /* end of the key length range */
|
|
75
|
+
double key_prop; /* key proportion */
|
|
76
|
+
} ms_key_distr_t;
|
|
77
|
+
|
|
78
|
+
/* information of value distribution */
|
|
79
|
+
typedef struct value_distr
|
|
80
|
+
{
|
|
81
|
+
size_t start_len; /* start of the value length range */
|
|
82
|
+
size_t end_len; /* end of the value length range */
|
|
83
|
+
double value_prop; /* value proportion */
|
|
84
|
+
} ms_value_distr_t;
|
|
85
|
+
|
|
86
|
+
/* memcached command types */
|
|
87
|
+
typedef enum cmd_type
|
|
88
|
+
{
|
|
89
|
+
CMD_SET,
|
|
90
|
+
CMD_GET,
|
|
91
|
+
CMD_NULL
|
|
92
|
+
} ms_cmd_type_t;
|
|
93
|
+
|
|
94
|
+
/* types in the configuration file */
|
|
95
|
+
typedef enum conf_type
|
|
96
|
+
{
|
|
97
|
+
CONF_KEY,
|
|
98
|
+
CONF_VALUE,
|
|
99
|
+
CONF_CMD,
|
|
100
|
+
CONF_NULL
|
|
101
|
+
} ms_conf_type_t;
|
|
102
|
+
|
|
103
|
+
/* information of command distribution */
|
|
104
|
+
typedef struct cmd_distr
|
|
105
|
+
{
|
|
106
|
+
ms_cmd_type_t cmd_type; /* command type */
|
|
107
|
+
double cmd_prop; /* proportion of the command */
|
|
108
|
+
} ms_cmd_distr_t;
|
|
109
|
+
|
|
110
|
+
/* global setting structure */
|
|
111
|
+
typedef struct setting
|
|
112
|
+
{
|
|
113
|
+
uint32_t ncpu; /* cpu count of this system */
|
|
114
|
+
uint32_t nthreads; /* total thread count, must equal or less than cpu cores */
|
|
115
|
+
uint32_t nconns; /* total conn count, must multiply by total thread count */
|
|
116
|
+
int64_t exec_num; /* total execute number */
|
|
117
|
+
int run_time; /* total run time */
|
|
118
|
+
|
|
119
|
+
uint32_t char_blk_size; /* global character block size */
|
|
120
|
+
char *char_block; /* global character block with random character */
|
|
121
|
+
ms_distr_t *distr; /* distribution from configure file */
|
|
122
|
+
|
|
123
|
+
char *srv_str; /* string includes servers information */
|
|
124
|
+
char *cfg_file; /* configure file name */
|
|
125
|
+
|
|
126
|
+
ms_mcd_server_t *servers; /* servers array */
|
|
127
|
+
uint32_t total_srv_cnt; /* total servers count of the servers array */
|
|
128
|
+
uint32_t srv_cnt; /* servers count */
|
|
129
|
+
|
|
130
|
+
ms_key_distr_t *key_distr; /* array of key distribution */
|
|
131
|
+
int total_key_rng_cnt; /* total key range count of the array */
|
|
132
|
+
int key_rng_cnt; /* actual key range count */
|
|
133
|
+
|
|
134
|
+
ms_value_distr_t *value_distr; /* array of value distribution */
|
|
135
|
+
int total_val_rng_cnt; /* total value range count of the array */
|
|
136
|
+
int val_rng_cnt; /* actual value range count */
|
|
137
|
+
|
|
138
|
+
ms_cmd_distr_t cmd_distr[CMD_NULL]; /* total we have CMD_NULL commands */
|
|
139
|
+
int cmd_used_count; /* supported command count */
|
|
140
|
+
|
|
141
|
+
size_t fixed_value_size; /* fixed value size */
|
|
142
|
+
size_t avg_val_size; /* average value size */
|
|
143
|
+
size_t avg_key_size; /* average value size */
|
|
144
|
+
|
|
145
|
+
double verify_percent; /* percent of data verification */
|
|
146
|
+
double exp_ver_per; /* percent of data verification with expire time */
|
|
147
|
+
double overwrite_percent; /* percent of overwrite */
|
|
148
|
+
int mult_key_num; /* number of keys used by multi-get once */
|
|
149
|
+
size_t win_size; /* item window size per connection */
|
|
150
|
+
bool udp; /* whether or not use UDP */
|
|
151
|
+
int stat_freq; /* statistic frequency second */
|
|
152
|
+
bool reconnect; /* whether it reconnect when connection close */
|
|
153
|
+
bool verbose; /* whether it outputs detailed information when verification */
|
|
154
|
+
bool facebook_test; /* facebook test, TCP set and multi-get with UDP */
|
|
155
|
+
uint32_t sock_per_conn; /* number of socks per connection structure */
|
|
156
|
+
bool binary_prot; /* whether it use binary protocol */
|
|
157
|
+
int expected_tps; /* expected throughput */
|
|
158
|
+
uint32_t rep_write_srv; /* which servers are used to do replication writing */
|
|
159
|
+
} ms_setting_st;
|
|
160
|
+
|
|
161
|
+
extern ms_setting_st ms_setting;
|
|
162
|
+
|
|
163
|
+
/* previous part of initialization of setting structure */
|
|
164
|
+
void ms_setting_init_pre(void);
|
|
165
|
+
|
|
166
|
+
|
|
167
|
+
/* post part of initialization of setting structure */
|
|
168
|
+
void ms_setting_init_post(void);
|
|
169
|
+
|
|
170
|
+
|
|
171
|
+
/* clean up the global setting structure */
|
|
172
|
+
void ms_setting_cleanup(void);
|
|
173
|
+
|
|
174
|
+
|
|
175
|
+
#define UNUSED_ARGUMENT(x) (void)x
|
|
176
|
+
|
|
177
|
+
#ifdef __cplusplus
|
|
178
|
+
}
|
|
179
|
+
#endif
|
|
180
|
+
|
|
181
|
+
#endif /* end of MS_SETTING_H */
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* File: ms_sigsegv.c
|
|
3
|
+
* Author: Mingqiang Zhuang
|
|
4
|
+
*
|
|
5
|
+
* Created on March 15, 2009
|
|
6
|
+
*
|
|
7
|
+
* (c) Copyright 2009, Schooner Information Technology, Inc.
|
|
8
|
+
* http://www.schoonerinfotech.com/
|
|
9
|
+
*
|
|
10
|
+
* Rewrite of stack dump:
|
|
11
|
+
* Copyright (C) 2009 Sun Microsystems
|
|
12
|
+
* Author Trond Norbye
|
|
13
|
+
*/
|
|
14
|
+
|
|
15
|
+
#include "config.h"
|
|
16
|
+
|
|
17
|
+
#include <memory.h>
|
|
18
|
+
#include <stdlib.h>
|
|
19
|
+
#include <stdio.h>
|
|
20
|
+
#include <signal.h>
|
|
21
|
+
#include <pthread.h>
|
|
22
|
+
|
|
23
|
+
#include "ms_memslap.h"
|
|
24
|
+
#include "ms_setting.h"
|
|
25
|
+
|
|
26
|
+
/* prototypes */
|
|
27
|
+
int ms_setup_sigsegv(void);
|
|
28
|
+
int ms_setup_sigpipe(void);
|
|
29
|
+
int ms_setup_sigint(void);
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
/* signal seg reaches, this function will run */
|
|
33
|
+
static void ms_signal_segv(int signum, siginfo_t *info, void *ptr)
|
|
34
|
+
{
|
|
35
|
+
UNUSED_ARGUMENT(signum);
|
|
36
|
+
UNUSED_ARGUMENT(info);
|
|
37
|
+
UNUSED_ARGUMENT(ptr);
|
|
38
|
+
|
|
39
|
+
pthread_mutex_lock(&ms_global.quit_mutex);
|
|
40
|
+
fprintf(stderr, "Segmentation fault occurred.\nStack trace:\n");
|
|
41
|
+
pandora_print_callstack(stderr);
|
|
42
|
+
fprintf(stderr, "End of stack trace\n");
|
|
43
|
+
pthread_mutex_unlock(&ms_global.quit_mutex);
|
|
44
|
+
abort();
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
/* signal int reaches, this function will run */
|
|
48
|
+
static void ms_signal_int(int signum, siginfo_t *info, void *ptr)
|
|
49
|
+
{
|
|
50
|
+
UNUSED_ARGUMENT(signum);
|
|
51
|
+
UNUSED_ARGUMENT(info);
|
|
52
|
+
UNUSED_ARGUMENT(ptr);
|
|
53
|
+
|
|
54
|
+
pthread_mutex_lock(&ms_global.quit_mutex);
|
|
55
|
+
fprintf(stderr, "SIGINT handled.\n");
|
|
56
|
+
pthread_mutex_unlock(&ms_global.quit_mutex);
|
|
57
|
+
exit(1);
|
|
58
|
+
} /* ms_signal_int */
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
/**
|
|
62
|
+
* redirect signal seg
|
|
63
|
+
*
|
|
64
|
+
* @return if success, return EXIT_SUCCESS, else return -1
|
|
65
|
+
*/
|
|
66
|
+
int ms_setup_sigsegv(void)
|
|
67
|
+
{
|
|
68
|
+
struct sigaction action;
|
|
69
|
+
|
|
70
|
+
memset(&action, 0, sizeof(action));
|
|
71
|
+
action.sa_sigaction= ms_signal_segv;
|
|
72
|
+
action.sa_flags= SA_SIGINFO;
|
|
73
|
+
if (sigaction(SIGSEGV, &action, NULL) < 0)
|
|
74
|
+
{
|
|
75
|
+
perror("sigaction");
|
|
76
|
+
return EXIT_SUCCESS;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
return -1;
|
|
80
|
+
} /* ms_setup_sigsegv */
|
|
81
|
+
|
|
82
|
+
|
|
83
|
+
/**
|
|
84
|
+
* redirect signal pipe
|
|
85
|
+
*
|
|
86
|
+
* @return if success, return EXIT_SUCCESS, else return -1
|
|
87
|
+
*/
|
|
88
|
+
int ms_setup_sigpipe(void)
|
|
89
|
+
{
|
|
90
|
+
/* ignore the SIGPIPE signal */
|
|
91
|
+
signal(SIGPIPE, SIG_IGN);
|
|
92
|
+
|
|
93
|
+
return -1;
|
|
94
|
+
} /* ms_setup_sigpipe */
|
|
95
|
+
|
|
96
|
+
|
|
97
|
+
/**
|
|
98
|
+
* redirect signal int
|
|
99
|
+
*
|
|
100
|
+
* @return if success, return EXIT_SUCCESS, else return -1
|
|
101
|
+
*/
|
|
102
|
+
int ms_setup_sigint(void)
|
|
103
|
+
{
|
|
104
|
+
struct sigaction action_3;
|
|
105
|
+
|
|
106
|
+
memset(&action_3, 0, sizeof(action_3));
|
|
107
|
+
action_3.sa_sigaction= ms_signal_int;
|
|
108
|
+
action_3.sa_flags= SA_SIGINFO;
|
|
109
|
+
if (sigaction(SIGINT, &action_3, NULL) < 0)
|
|
110
|
+
{
|
|
111
|
+
perror("sigaction");
|
|
112
|
+
return EXIT_SUCCESS;
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
return -1;
|
|
116
|
+
} /* ms_setup_sigint */
|
|
117
|
+
|
|
118
|
+
|
|
119
|
+
#ifndef SIGSEGV_NO_AUTO_INIT
|
|
120
|
+
static void __attribute((constructor)) ms_init(void)
|
|
121
|
+
{
|
|
122
|
+
ms_setup_sigsegv();
|
|
123
|
+
ms_setup_sigpipe();
|
|
124
|
+
ms_setup_sigint();
|
|
125
|
+
}
|
|
126
|
+
#endif
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* File: ms_sigsegv.h
|
|
3
|
+
* Author: Mingqiang Zhuang
|
|
4
|
+
*
|
|
5
|
+
* Created on March 15, 2009
|
|
6
|
+
*
|
|
7
|
+
* (c) Copyright 2009, Schooner Information Technology, Inc.
|
|
8
|
+
* http://www.schoonerinfotech.com/
|
|
9
|
+
*
|
|
10
|
+
*/
|
|
11
|
+
#ifndef MS_SIGSEGV_H
|
|
12
|
+
#define MS_SIGSEGV_H
|
|
13
|
+
|
|
14
|
+
#ifdef __cplusplus
|
|
15
|
+
extern "C" {
|
|
16
|
+
#endif
|
|
17
|
+
|
|
18
|
+
/* redirect signal seg */
|
|
19
|
+
int ms_setup_sigsegv(void);
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
/* redirect signal pipe */
|
|
23
|
+
int ms_setup_sigpipe(void);
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
/* redirect signal int */
|
|
27
|
+
int ms_setup_sigint(void);
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
#ifdef __cplusplus
|
|
31
|
+
}
|
|
32
|
+
#endif
|
|
33
|
+
|
|
34
|
+
#endif /* end of MS_SIGSEGV_H */
|
|
@@ -0,0 +1,307 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* File: ms_stats.h
|
|
3
|
+
* Author: Mingqiang Zhuang
|
|
4
|
+
*
|
|
5
|
+
* Created on March 25, 2009
|
|
6
|
+
*
|
|
7
|
+
* (c) Copyright 2009, Schooner Information Technology, Inc.
|
|
8
|
+
* http://www.schoonerinfotech.com/
|
|
9
|
+
*
|
|
10
|
+
*/
|
|
11
|
+
|
|
12
|
+
#include "config.h"
|
|
13
|
+
|
|
14
|
+
#include <inttypes.h>
|
|
15
|
+
#include "ms_stats.h"
|
|
16
|
+
|
|
17
|
+
#define array_size(x) (sizeof(x) / sizeof((x)[0]))
|
|
18
|
+
|
|
19
|
+
static int ms_local_log2(uint64_t value);
|
|
20
|
+
static uint64_t ms_get_events(ms_stat_t *stat);
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* get the index of local log2 array
|
|
25
|
+
*
|
|
26
|
+
* @param value
|
|
27
|
+
*
|
|
28
|
+
* @return return the index of local log2 array
|
|
29
|
+
*/
|
|
30
|
+
static int ms_local_log2(uint64_t value)
|
|
31
|
+
{
|
|
32
|
+
int result= 0;
|
|
33
|
+
|
|
34
|
+
while (result <= 63 && ((uint64_t)1 << result) < value)
|
|
35
|
+
{
|
|
36
|
+
result++;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
return result;
|
|
40
|
+
} /* ms_local_log2 */
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* initialize statistic structure
|
|
45
|
+
*
|
|
46
|
+
* @param stat, pointer of the statistic structure
|
|
47
|
+
* @param name, name of the statistic
|
|
48
|
+
*/
|
|
49
|
+
void ms_init_stats(ms_stat_t *stat, const char *name)
|
|
50
|
+
{
|
|
51
|
+
memset(stat, 0, sizeof(*stat));
|
|
52
|
+
|
|
53
|
+
stat->name= (char *)name;
|
|
54
|
+
stat->min_time= (uint64_t)-1;
|
|
55
|
+
stat->max_time= 0;
|
|
56
|
+
stat->period_min_time= (uint64_t)-1;
|
|
57
|
+
stat->period_max_time= 0;
|
|
58
|
+
stat->log_product= 0;
|
|
59
|
+
stat->total_time= 0;
|
|
60
|
+
stat->pre_total_time= 0;
|
|
61
|
+
stat->squares= 0;
|
|
62
|
+
stat->pre_squares= 0;
|
|
63
|
+
stat->pre_events= 0;
|
|
64
|
+
stat->pre_log_product= 0;
|
|
65
|
+
stat->get_miss= 0;
|
|
66
|
+
stat->pre_get_miss= 0;
|
|
67
|
+
} /* ms_init_stats */
|
|
68
|
+
|
|
69
|
+
|
|
70
|
+
/**
|
|
71
|
+
* record one event
|
|
72
|
+
*
|
|
73
|
+
* @param stat, pointer of the statistic structure
|
|
74
|
+
* @param total_time, response time of the command
|
|
75
|
+
* @param get_miss, whether it gets miss
|
|
76
|
+
*/
|
|
77
|
+
void ms_record_event(ms_stat_t *stat, uint64_t total_time, int get_miss)
|
|
78
|
+
{
|
|
79
|
+
stat->total_time+= total_time;
|
|
80
|
+
|
|
81
|
+
if (total_time < stat->min_time)
|
|
82
|
+
{
|
|
83
|
+
stat->min_time= total_time;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
if (total_time > stat->max_time)
|
|
87
|
+
{
|
|
88
|
+
stat->max_time= total_time;
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
if (total_time < stat->period_min_time)
|
|
92
|
+
{
|
|
93
|
+
stat->period_min_time= total_time;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
if (total_time > stat->period_max_time)
|
|
97
|
+
{
|
|
98
|
+
stat->period_max_time= total_time;
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
if (get_miss)
|
|
102
|
+
{
|
|
103
|
+
stat->get_miss++;
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
stat->dist[ms_local_log2(total_time)]++;
|
|
107
|
+
stat->squares+= (double)(total_time * total_time);
|
|
108
|
+
|
|
109
|
+
if (total_time != 0)
|
|
110
|
+
{
|
|
111
|
+
stat->log_product+= log((double)total_time);
|
|
112
|
+
}
|
|
113
|
+
} /* ms_record_event */
|
|
114
|
+
|
|
115
|
+
|
|
116
|
+
/**
|
|
117
|
+
* get the events count
|
|
118
|
+
*
|
|
119
|
+
* @param stat, pointer of the statistic structure
|
|
120
|
+
*
|
|
121
|
+
* @return total events recorded
|
|
122
|
+
*/
|
|
123
|
+
static uint64_t ms_get_events(ms_stat_t *stat)
|
|
124
|
+
{
|
|
125
|
+
uint64_t events= 0;
|
|
126
|
+
|
|
127
|
+
for (uint32_t i= 0; i < array_size(stat->dist); i++)
|
|
128
|
+
{
|
|
129
|
+
events+= stat->dist[i];
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
return events;
|
|
133
|
+
} /* ms_get_events */
|
|
134
|
+
|
|
135
|
+
|
|
136
|
+
/**
|
|
137
|
+
* dump the statistics
|
|
138
|
+
*
|
|
139
|
+
* @param stat, pointer of the statistic structure
|
|
140
|
+
*/
|
|
141
|
+
void ms_dump_stats(ms_stat_t *stat)
|
|
142
|
+
{
|
|
143
|
+
uint64_t events= 0;
|
|
144
|
+
int max_non_zero= 0;
|
|
145
|
+
int min_non_zero= 0;
|
|
146
|
+
double average= 0;
|
|
147
|
+
|
|
148
|
+
for (uint32_t i= 0; i < array_size(stat->dist); i++)
|
|
149
|
+
{
|
|
150
|
+
events+= stat->dist[i];
|
|
151
|
+
if (stat->dist[i] != 0)
|
|
152
|
+
{
|
|
153
|
+
max_non_zero= (int)i;
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
if (events == 0)
|
|
158
|
+
{
|
|
159
|
+
return;
|
|
160
|
+
}
|
|
161
|
+
average= (double)(stat->total_time / events);
|
|
162
|
+
|
|
163
|
+
printf("%s Statistics (%lld events)\n", stat->name, (long long)events);
|
|
164
|
+
printf(" Min: %8lld\n", (long long)stat->min_time);
|
|
165
|
+
printf(" Max: %8lld\n", (long long)stat->max_time);
|
|
166
|
+
printf(" Avg: %8lld\n", (long long)(stat->total_time / events));
|
|
167
|
+
printf(" Geo: %8.2lf\n", exp(stat->log_product / (double)events));
|
|
168
|
+
|
|
169
|
+
if (events > 1)
|
|
170
|
+
{
|
|
171
|
+
printf(" Std: %8.2lf\n",
|
|
172
|
+
sqrt((stat->squares - (double)events * average
|
|
173
|
+
* average) / ((double)events - 1)));
|
|
174
|
+
}
|
|
175
|
+
printf(" Log2 Dist:");
|
|
176
|
+
|
|
177
|
+
for (int i= 0; i <= max_non_zero - 4; i+= 4)
|
|
178
|
+
{
|
|
179
|
+
if ((stat->dist[i + 0] != 0)
|
|
180
|
+
|| (stat->dist[i + 1] != 0)
|
|
181
|
+
|| (stat->dist[i + 2] != 0)
|
|
182
|
+
|| (stat->dist[i + 3] != 0))
|
|
183
|
+
{
|
|
184
|
+
min_non_zero= i;
|
|
185
|
+
break;
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
for (int i= min_non_zero; i <= max_non_zero; i++)
|
|
190
|
+
{
|
|
191
|
+
if ((i % 4) == 0)
|
|
192
|
+
{
|
|
193
|
+
printf("\n %2d:", (int)i);
|
|
194
|
+
}
|
|
195
|
+
printf(" %6" PRIu64 , stat->dist[i]);
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
printf("\n\n");
|
|
199
|
+
} /* ms_dump_stats */
|
|
200
|
+
|
|
201
|
+
|
|
202
|
+
/**
|
|
203
|
+
* dump the format statistics
|
|
204
|
+
*
|
|
205
|
+
* @param stat, pointer of the statistic structure
|
|
206
|
+
* @param run_time, the total run time
|
|
207
|
+
* @param freq, statistic frequency
|
|
208
|
+
* @param obj_size, average object size
|
|
209
|
+
*/
|
|
210
|
+
void ms_dump_format_stats(ms_stat_t *stat,
|
|
211
|
+
int run_time,
|
|
212
|
+
int freq,
|
|
213
|
+
int obj_size)
|
|
214
|
+
{
|
|
215
|
+
uint64_t events= 0;
|
|
216
|
+
double global_average= 0;
|
|
217
|
+
uint64_t global_tps= 0;
|
|
218
|
+
double global_rate= 0;
|
|
219
|
+
double global_std= 0;
|
|
220
|
+
double global_log= 0;
|
|
221
|
+
|
|
222
|
+
uint64_t diff_time= 0;
|
|
223
|
+
uint64_t diff_events= 0;
|
|
224
|
+
double diff_squares= 0;
|
|
225
|
+
double diff_log_product= 0;
|
|
226
|
+
double period_average= 0;
|
|
227
|
+
uint64_t period_tps= 0;
|
|
228
|
+
double period_rate= 0;
|
|
229
|
+
double period_std= 0;
|
|
230
|
+
double period_log= 0;
|
|
231
|
+
|
|
232
|
+
if ((events= ms_get_events(stat)) == 0)
|
|
233
|
+
{
|
|
234
|
+
return;
|
|
235
|
+
}
|
|
236
|
+
|
|
237
|
+
global_average= (double)(stat->total_time / events);
|
|
238
|
+
global_tps= events / (uint64_t)run_time;
|
|
239
|
+
global_rate= (double)events * obj_size / 1024 / 1024 / run_time;
|
|
240
|
+
global_std= sqrt((stat->squares - (double)events * global_average
|
|
241
|
+
* global_average) / (double)(events - 1));
|
|
242
|
+
global_log= exp(stat->log_product / (double)events);
|
|
243
|
+
|
|
244
|
+
diff_time= stat->total_time - stat->pre_total_time;
|
|
245
|
+
diff_events= events - stat->pre_events;
|
|
246
|
+
if (diff_events >= 1)
|
|
247
|
+
{
|
|
248
|
+
period_average= (double)(diff_time / diff_events);
|
|
249
|
+
period_tps= diff_events / (uint64_t)freq;
|
|
250
|
+
period_rate= (double)diff_events * obj_size / 1024 / 1024 / freq;
|
|
251
|
+
diff_squares= (double)stat->squares - (double)stat->pre_squares;
|
|
252
|
+
period_std= sqrt((diff_squares - (double)diff_events * period_average
|
|
253
|
+
* period_average) / (double)(diff_events - 1));
|
|
254
|
+
diff_log_product= stat->log_product - stat->pre_log_product;
|
|
255
|
+
period_log= exp(diff_log_product / (double)diff_events);
|
|
256
|
+
}
|
|
257
|
+
|
|
258
|
+
printf("%s Statistics\n", stat->name);
|
|
259
|
+
printf("%-8s %-8s %-12s %-12s %-10s %-10s %-8s %-10s %-10s %-10s %-10s\n",
|
|
260
|
+
"Type",
|
|
261
|
+
"Time(s)",
|
|
262
|
+
"Ops",
|
|
263
|
+
"TPS(ops/s)",
|
|
264
|
+
"Net(M/s)",
|
|
265
|
+
"Get_miss",
|
|
266
|
+
"Min(us)",
|
|
267
|
+
"Max(us)",
|
|
268
|
+
"Avg(us)",
|
|
269
|
+
"Std_dev",
|
|
270
|
+
"Geo_dist");
|
|
271
|
+
|
|
272
|
+
printf(
|
|
273
|
+
"%-8s %-8d %-12llu %-12lld %-10.1f %-10lld %-8lld %-10lld %-10lld %-10.2f %.2f\n",
|
|
274
|
+
"Period",
|
|
275
|
+
freq,
|
|
276
|
+
(long long)diff_events,
|
|
277
|
+
(long long)period_tps,
|
|
278
|
+
global_rate,
|
|
279
|
+
(long long)(stat->get_miss - stat->pre_get_miss),
|
|
280
|
+
(long long)stat->period_min_time,
|
|
281
|
+
(long long)stat->period_max_time,
|
|
282
|
+
(long long)period_average,
|
|
283
|
+
period_std,
|
|
284
|
+
period_log);
|
|
285
|
+
|
|
286
|
+
printf(
|
|
287
|
+
"%-8s %-8d %-12llu %-12lld %-10.1f %-10lld %-8lld %-10lld %-10lld %-10.2f %.2f\n\n",
|
|
288
|
+
"Global",
|
|
289
|
+
run_time,
|
|
290
|
+
(long long)events,
|
|
291
|
+
(long long)global_tps,
|
|
292
|
+
period_rate,
|
|
293
|
+
(long long)stat->get_miss,
|
|
294
|
+
(long long)stat->min_time,
|
|
295
|
+
(long long)stat->max_time,
|
|
296
|
+
(long long)global_average,
|
|
297
|
+
global_std,
|
|
298
|
+
global_log);
|
|
299
|
+
|
|
300
|
+
stat->pre_events= events;
|
|
301
|
+
stat->pre_squares= (uint64_t)stat->squares;
|
|
302
|
+
stat->pre_total_time= stat->total_time;
|
|
303
|
+
stat->pre_log_product= stat->log_product;
|
|
304
|
+
stat->period_min_time= (uint64_t)-1;
|
|
305
|
+
stat->period_max_time= 0;
|
|
306
|
+
stat->pre_get_miss= stat->get_miss;
|
|
307
|
+
} /* ms_dump_format_stats */
|