Cleanup of spelling error in option.
author <brian@h220-215-226-164.catv02.itscom.jp> <>
Wed, 5 Dec 2007 13:13:52 +0000 (22:13 +0900)
committer <brian@h220-215-226-164.catv02.itscom.jp> <>
Wed, 5 Dec 2007 13:13:52 +0000 (22:13 +0900)
Documentation on storage by key commands.

ChangeLog
docs/Makefile.am
docs/memcached_behavior.pod
docs/memcached_set.pod
include/memcached.h
lib/memcached.c
lib/memcached_hash.c
src/memslap.c
support/libmemcached.spec.in
tests/Makefile.am
tests/t/memslap.test

index 3875e7e1facb29ce8d7d7493819bf28752edbcbb..79cb10c7cfded8da24d39b60c8d541bd584aff5e 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -10,6 +10,7 @@
   * Fixed bug where key could be out of range of characters
   * Added _by_key() methods to allow partitioning of values to particular
     servers.
+  * MEMCACHED_DEFAILT_TIMEOUT is now set to 100 microseconds.
 
 0.11 Mon Nov 26 01:05:52 PST 2007
   * Added option to memcache_behavior_set() so that poll() can be timed out.
index d9795ad5c3991293ae4cd8825a1cf25964d5eeb1..b19cc769e6ee9c6327cc5f69a4308602ef386a84 100644 (file)
@@ -33,10 +33,13 @@ man_MANS = libmemcached.3\
        memslap.1\\r
        memstat.1\\r
        memcached_add.3\\r
+       memcached_add_by_key.3\\r
        memcached_append.3\\r
+       memcached_append_by_key.3\\r
        memcached_behavior_get.3\\r
        memcached_behavior_set.3\\r
        memcached_cas.3\\r
+       memcached_cas_by_key.3\\r
        memcached_clone.3\\r
        memcached_create.3\\r
        memcached_decrement.3\\r
@@ -50,7 +53,9 @@ man_MANS = libmemcached.3\
        memcached_mget.3\\r
        memcached_mget_by_key.3\\r
        memcached_prepend.3\\r
+       memcached_prepend_by_key.3\\r
        memcached_replace.3\\r
+       memcached_replace_by_key.3\\r
        memcached_server_add.3\\r
        memcached_server_count.3\\r
        memcached_server_list.3\\r
@@ -60,6 +65,7 @@ man_MANS = libmemcached.3\
        memcached_server_push.3\\r
        memcached_servers_parse.3\\r
        memcached_set.3\\r
+       memcached_set_by_key.3\\r
        memcached_stat.3\\r
        memcached_stat_get_keys.3\\r
        memcached_stat_get_value.3\\r
@@ -86,21 +92,39 @@ memcached_clone.3: memcached_create.pod
 memcached_set.3: memcached_set.pod\r
        pod2man -c "libmemcached" -r "" -s 3 memcached_set.pod > memcached_set.3\r
 \r
+memcached_set_by_key.3: memcached_set.pod\r
+       pod2man -c "libmemcached" -r "" -s 3 memcached_set.pod > memcached_set_by_key.3\r
+\r
 memcached_cas.3: memcached_set.pod\r
        pod2man -c "libmemcached" -r "" -s 3 memcached_set.pod > memcached_cas.3\r
 \r
+memcached_cas_by_key.3: memcached_set.pod\r
+       pod2man -c "libmemcached" -r "" -s 3 memcached_set.pod > memcached_cas_by_key.3\r
+\r
 memcached_replace.3: memcached_set.pod\r
        pod2man -c "libmemcached" -r "" -s 3 memcached_set.pod > memcached_replace.3\r
 \r
+memcached_replace_by_key.3: memcached_set.pod\r
+       pod2man -c "libmemcached" -r "" -s 3 memcached_set.pod > memcached_replace_by_key.3\r
+\r
 memcached_add.3: memcached_set.pod\r
        pod2man -c "libmemcached" -r "" -s 3 memcached_set.pod > memcached_add.3\r
 \r
+memcached_add_by_key.3: memcached_set.pod\r
+       pod2man -c "libmemcached" -r "" -s 3 memcached_set.pod > memcached_add_by_key.3\r
+\r
 memcached_prepend.3: memcached_set.pod\r
        pod2man -c "libmemcached" -r "" -s 3 memcached_set.pod > memcached_prepend.3\r
 \r
+memcached_prepend_by_key.3: memcached_set.pod\r
+       pod2man -c "libmemcached" -r "" -s 3 memcached_set.pod > memcached_prepend_by_key.3\r
+\r
 memcached_append.3: memcached_set.pod\r
        pod2man -c "libmemcached" -r "" -s 3 memcached_set.pod > memcached_append.3\r
 \r
+memcached_append_by_key.3: memcached_set.pod\r
+       pod2man -c "libmemcached" -r "" -s 3 memcached_set.pod > memcached_append_by_key.3\r
+\r
 memcached_delete.3: memcached_delete.pod\r
        pod2man -c "libmemcached" -r "" -s 3 memcached_delete.pod > memcached_delete.3\r
 \r
index e654778573369a336d19d71c02f2485e18edbdd3..b1545534e70e9f07c6251b51ca007263185c009f 100755 (executable)
@@ -54,7 +54,7 @@ Makes the default hashing algorithm for keys use MD5. The value can be set to ei
 =item MEMCACHED_BEHAVIOR_DISTRIBUTION
 
 Using this you can enable different means of distributing values to servers.
-The default method is MEMCACHED_DISTRIBUTION_MODULO. You can enable
+The default method is MEMCACHED_DISTRIBUTION_MODULA. You can enable
 consistent hashing by setting MEMCACHED_DISTRIBUTION_CONSISTENT. 
 Consistent hashing delivers better distribution and allows servers to be 
 added to the cluster with minimal cache losses. 
index 0578d17f3b372c39db2e3a1f39e36b1efb758dac..8db5b06d8ff2b3750af7806a08a11bdcefa2e184 100755 (executable)
@@ -52,6 +52,55 @@ C Client Library for memcached (libmemcached, -lmemcached)
                   uint16_t flags,
                   uint64_t cas);
 
+  memcached_return 
+    memcached_set_by_key(memcached_st *ptr, 
+                         char *master_key, size_t master_key_length, 
+                         char *key, size_t key_length, 
+                         char *value, size_t value_length, 
+                         time_t expiration,
+                         uint16_t flags);
+
+  memcached_return 
+    memcached_add_by_key(memcached_st *ptr, 
+                         char *master_key, size_t master_key_length,
+                         char *key, size_t key_length,
+                         char *value, size_t value_length, 
+                         time_t expiration,
+                         uint16_t flags);
+
+  memcached_return 
+    memcached_replace_by_key(memcached_st *ptr, 
+                             char *master_key, size_t master_key_length,
+                             char *key, size_t key_length,
+                             char *value, size_t value_length, 
+                             time_t expiration,
+                             uint16_t flags);
+
+  memcached_return 
+    memcached_prepend_by_key(memcached_st *ptr, 
+                             char *master_key, size_t master_key_length,
+                             char *key, size_t key_length,
+                             char *value, size_t value_length, 
+                             time_t expiration,
+                             uint16_t flags);
+
+  memcached_return 
+    memcached_append_by_key(memcached_st *ptr, 
+                            char *master_key, size_t master_key_length,
+                            char *key, size_t key_length,
+                            char *value, size_t value_length, 
+                            time_t expiration,
+                            uint16_t flags);
+
+  memcached_return 
+    memcached_cas_by_key(memcached_st *ptr, 
+                         char *master_key, size_t master_key_length,
+                         char *key, size_t key_length,
+                         char *value, size_t value_length, 
+                         time_t expiration,
+                         uint16_t flags,
+                         uint64_t cas);
+
 =head1 DESCRIPTION
 
 memcached_set(), memcached_add(), and memcached_replace() are all used to
@@ -85,6 +134,12 @@ that this note was written cas is still buggy in memached. Turning on support
 for it in libmemcached(3) is optional. Please see memcached_set() for 
 information on how to do this.
 
+memcached_set_by_key(), memcached_add_by_key(), memcached_replace_by_key(), 
+memcached_prepend_by_key(), memcached_append_by_key_by_key(), 
+memcached_cas_by_key() methods all behave in a similar method as the non key 
+methods. The difference is that they use their master_key parameter to map
+objects to particular servers.
+
 If you are looking for performance, memcached_set() with non-blocking IO is 
 the fastest way to store data on the server.
 
index 2b448081733e4fae5e0ac21f1c458c18b3bf91aa..175c93c3529c5e17347d0009ea739dcdf55ac9b2 100644 (file)
@@ -35,7 +35,7 @@ typedef struct memcached_server_st memcached_server_st;
 #define MEMCACHED_MAX_HOST_LENGTH 64
 #define MEMCACHED_WHEEL_SIZE 1024
 #define MEMCACHED_STRIDE 4
-#define MEMCACHED_DEFAILT_TIMEOUT 100
+#define MEMCACHED_DEFAULT_TIMEOUT 100
 
 typedef enum {
   MEMCACHED_SUCCESS,
@@ -72,7 +72,7 @@ typedef enum {
 } memcached_return;
 
 typedef enum {
-  MEMCACHED_DISTRIBUTION_MODULO,
+  MEMCACHED_DISTRIBUTION_MODULA,
   MEMCACHED_DISTRIBUTION_CONSISTENT,
 } memcached_server_distribution;
 
index 9ee49d665f38338e0024301f3a366f82e74247df..30099c39ff7a2f643f2edd9caaaddb0ee5b0d979 100644 (file)
@@ -22,8 +22,8 @@ memcached_st *memcached_create(memcached_st *ptr)
   }
   string_ptr= memcached_string_create(ptr, &ptr->result_buffer, 0);
   WATCHPOINT_ASSERT(string_ptr);
-  ptr->poll_timeout= MEMCACHED_DEFAILT_TIMEOUT;
-  ptr->distribution= MEMCACHED_DISTRIBUTION_MODULO;
+  ptr->poll_timeout= MEMCACHED_DEFAULT_TIMEOUT;
+  ptr->distribution= MEMCACHED_DISTRIBUTION_MODULA;
 
   return ptr;
 }
index 3ea5df976a3df5d6f945b5b89b26b5c019411456..87c59d510ae55cbc32cff6def7d1817acd8104b6 100644 (file)
@@ -86,7 +86,7 @@ unsigned int memcached_generate_hash(memcached_st *ptr, char *key, size_t key_le
 
   WATCHPOINT_ASSERT(hash);
 
-  if (ptr->distribution == MEMCACHED_DISTRIBUTION_MODULO)
+  if (ptr->distribution == MEMCACHED_DISTRIBUTION_MODULA)
   {
     return hash % ptr->number_of_hosts;
   }
index e25d0c03d2e54506ddd7826e09a174ab846cb5cf..486ff7cedf5ffaf915a3a5bda798ee9440a8f4f3 100644 (file)
@@ -123,7 +123,7 @@ int main(int argc, char *argv[])
 void scheduler(memcached_server_st *servers, conclusions_st *conclusion)
 {
   unsigned int x;
-  unsigned int actual_loaded;
+  unsigned int actual_loaded= 0; /* Fix warning */
   memcached_st *memc;
 
   struct timeval start_time, end_time;
index 580241fceb89fc651e1ff943237768fb2d231cc7..d94eac3899036c66b5e0f2266d5fb500b0c4f976 100644 (file)
@@ -67,10 +67,13 @@ memerror - Creates human readable messages from libmemecached error codes.
 %{_mandir}/man3/libmemcached.3.gz
 %{_mandir}/man3/libmemcached_examples.3.gz
 %{_mandir}/man3/memcached_add.3.gz
+%{_mandir}/man3/memcached_add_by_key.3.gz
 %{_mandir}/man3/memcached_append.3.gz
+%{_mandir}/man3/memcached_append_by_key.3.gz
 %{_mandir}/man3/memcached_behavior_get.3.gz
 %{_mandir}/man3/memcached_behavior_set.3.gz
 %{_mandir}/man3/memcached_cas.3.gz
+%{_mandir}/man3/memcached_cas_by_key.3.gz
 %{_mandir}/man3/memcached_clone.3.gz
 %{_mandir}/man3/memcached_create.3.gz
 %{_mandir}/man3/memcached_decrement.3.gz
@@ -84,6 +87,7 @@ memerror - Creates human readable messages from libmemecached error codes.
 %{_mandir}/man3/memcached_mget.3.gz
 %{_mandir}/man3/memcached_mget_by_key.3.gz
 %{_mandir}/man3/memcached_prepend.3.gz
+%{_mandir}/man3/memcached_prepend_by_key.3.gz
 %{_mandir}/man3/memcached_quit.3.gz
 %{_mandir}/man3/memcached_replace.3.gz
 %{_mandir}/man3/memcached_server_add.3.gz
@@ -95,6 +99,7 @@ memerror - Creates human readable messages from libmemecached error codes.
 %{_mandir}/man3/memcached_server_push.3.gz
 %{_mandir}/man3/memcached_servers_parse.3.gz
 %{_mandir}/man3/memcached_set.3.gz
+%{_mandir}/man3/memcached_set_by_key.3.gz
 %{_mandir}/man3/memcached_stat.3.gz
 %{_mandir}/man3/memcached_stat_get_keys.3.gz
 %{_mandir}/man3/memcached_stat_get_value.3.gz
index dc84803e4f8aa2e1e2e8c810d97755f945ef1e6e..cb4269b3ad9a7202f86004466c03b9dcaca8b5f0 100644 (file)
@@ -32,9 +32,16 @@ record:
 record-extended:
        ./testapp extended > output2.res
 
-test: testapp
+test: testapp library_test
+       echo "Tests completed"
+
+library_test:
        ./testapp > output.cmp
        diff output.res output.cmp
+
+clients:
+       memcached -d -P /tmp/Xumemc.pid -p 12555
+       export MEMCACHED_SERVERS="localhost:12555"
        sh t/memcat.test > r/memcat.cmp
        diff r/memcat.res r/memcat.cmp
        sh t/memcp.test > r/memcp.cmp
@@ -45,10 +52,8 @@ test: testapp
        diff r/memslap.res r/memslap.cmp
        sh t/memstat.test > r/memstat.cmp
        diff r/memstat.res r/memstat.cmp
-
-test-extended: testapp
-       ./testapp extended > output.cmp
-       diff output2.res output.cmp
+       cat /tmp/Xumemc.pid | xargs kill
+       rm /tmp/Xumemc.pid
 
 valgrind:
        libtool --mode=execute valgrind --leak-check=yes --show-reachable=yes  testapp
index cc4ea80f202288c28bda66c2aadf4b5b8f0acdb7..c3c71ff9c4637aa072587597a3a6d1cad6616ac5 100644 (file)
@@ -2,4 +2,4 @@ MEMSLAP="../src/memslap"
 
 $MEMSLAP --help
 
-$MEMSLAP --servers=localhost --initial-load=5000 --verbose --flush --concurrency=500 --execute-number=500 > /dev/null
+$MEMSLAP --initial-load=5000 --verbose --flush --concurrency=500 --execute-number=500 > /dev/null