Adding delete_by_key function to complete partitioning by key feature.
author <brian@gir.local> <>
Fri, 7 Dec 2007 03:22:25 +0000 (12:22 +0900)
committer <brian@gir.local> <>
Fri, 7 Dec 2007 03:22:25 +0000 (12:22 +0900)
docs/Makefile.am
docs/memcached_delete.pod
include/memcached.h
lib/memcached_delete.c
support/libmemcached.spec.in

index b19cc769e6ee9c6327cc5f69a4308602ef386a84..2b0c432196678a748743e1c553a59c5044861540 100644 (file)
@@ -44,6 +44,7 @@ man_MANS = libmemcached.3\
        memcached_create.3\\r
        memcached_decrement.3\\r
        memcached_delete.3\\r
+       memcached_delete_by_key.3\\r
        memcached_fetch.3\\r
        memcached_fetch_result.3\\r
        memcached_free.3\\r
@@ -128,6 +129,9 @@ memcached_append_by_key.3: memcached_set.pod
 memcached_delete.3: memcached_delete.pod\r
        pod2man -c "libmemcached" -r "" -s 3 memcached_delete.pod > memcached_delete.3\r
 \r
+memcached_delete_by_key.3: memcached_delete.pod\r
+       pod2man -c "libmemcached" -r "" -s 3 memcached_delete.pod > memcached_delete_by_key.3\r
+\r
 memcached_increment.3:\r
        pod2man -c "libmemcached" -r "" -s 3 memcached_auto.pod > memcached_increment.3\r
 \r
index 82e25f21235e32c69073c210814fde0e601a939c..18fec84b4cb80c754577a1528e236abe122e1e44 100755 (executable)
@@ -15,10 +15,18 @@ C Client Library for memcached (libmemcached, -lmemcached)
                       char *key, size_t key_length,
                       time_t expiration);
 
+  memcached_return
+  memcached_delete_by_key (memcached_st *ptr,
+                           char *master_key, size_t master_key_length,
+                           char *key, size_t key_length,
+                           time_t expiration);
+
 =head1 DESCRIPTION
 
 memcached_delete() is used to delete a particular key. An expiration value
 can be applied so that the key is deleted after that many seconds.
+memcached_delete_by_key() works the same, but it takes a master key to 
+find the given value.
 
 =head1 RETURN
 
index ba8b650c43c71c0cf92b14eee925a0d6d054f263..bc74c18dbdcd2ccf2c331d7ffd619f9e489d08d1 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_DEFAULT_TIMEOUT 800
+#define MEMCACHED_DEFAULT_TIMEOUT 2000
 
 typedef enum {
   MEMCACHED_SUCCESS,
@@ -353,6 +353,10 @@ memcached_return memcached_cas_by_key(memcached_st *ptr,
                                       time_t expiration,
                                       uint16_t flags,
                                       uint64_t cas);
+memcached_return memcached_delete_by_key(memcached_st *ptr, 
+                                         char *master_key, size_t master_key_length,
+                                         char *key, size_t key_length,
+                                         time_t expiration);
 
 /* Result Struct */
 void memcached_result_free(memcached_result_st *result);
index 0c36aaebb172b40fcb6c8ed643b109db02aed602..7c026cbcd9835005833220fd008f4e07c7856801 100644 (file)
@@ -2,6 +2,15 @@
 
 memcached_return memcached_delete(memcached_st *ptr, char *key, size_t key_length,
                                   time_t expiration)
+{
+  return memcached_delete_by_key(ptr, key, key_length,
+                                 key, key_length, expiration);
+}
+
+memcached_return memcached_delete_by_key(memcached_st *ptr, 
+                                         char *master_key, size_t master_key_length,
+                                         char *key, size_t key_length,
+                                         time_t expiration)
 {
   char to_write;
   size_t send_length;
@@ -17,7 +26,7 @@ memcached_return memcached_delete(memcached_st *ptr, char *key, size_t key_lengt
   if (ptr->hosts == NULL || ptr->number_of_hosts == 0)
     return MEMCACHED_NO_SERVERS;
 
-  server_key= memcached_generate_hash(ptr, key, key_length);
+  server_key= memcached_generate_hash(ptr, master_key, master_key_length);
 
   if (expiration)
     send_length= snprintf(buffer, MEMCACHED_DEFAULT_COMMAND_SIZE, 
index d94eac3899036c66b5e0f2266d5fb500b0c4f976..6fb66b6256709f68840dc996022e92bee3b2781d 100644 (file)
@@ -78,6 +78,7 @@ memerror - Creates human readable messages from libmemecached error codes.
 %{_mandir}/man3/memcached_create.3.gz
 %{_mandir}/man3/memcached_decrement.3.gz
 %{_mandir}/man3/memcached_delete.3.gz
+%{_mandir}/man3/memcached_delete_by_key.3.gz
 %{_mandir}/man3/memcached_fetch.3.gz
 %{_mandir}/man3/memcached_fetch_result.3.gz
 %{_mandir}/man3/memcached_free.3.gz