Move public memcached_version declaration from lib/common.h to include/memcached.h.
[awesomized/libmemcached] / docs / memcached_behavior.pod
index cd3288da838489fbce5af7176c9a89e68ad5c5f0..2268e845976f77905a387fd44e66b5e7f63ea508 100755 (executable)
@@ -10,14 +10,14 @@ C Client Library for memcached (libmemcached, -lmemcached)
 
   #include <memcached.h>
 
-  unsigned long long
+  uint64_t
     memcached_behavior_get (memcached_st *ptr,
                             memcached_behavior flag);
 
   memcached_return
     memcached_behavior_set (memcached_st *ptr,
                             memcached_behavior flag,
-                            void *data);
+                            uint64_t data);
 
 =head1 DESCRIPTION
 
@@ -40,7 +40,9 @@ memcached_behavior_set() will flush and reset all connections.
 =item MEMCACHED_BEHAVIOR_NO_BLOCK
 
 Causes libmemcached(3) to use asychronous IO. This is the fastest transport
-available.
+available for storage functions. For read operations it is currently 
+similar in performance to the non-blocking method (this is being
+looked into).
 
 =item MEMCACHED_BEHAVIOR_TCP_NODELAY
 
@@ -51,6 +53,14 @@ environments).
 
 Makes the default hashing algorithm for keys use MD5. The value can be set to either MEMCACHED_HASH_DEFAULT, MEMCACHED_HASH_MD5, MEMCACHED_HASH_CRC, MEMCACHED_HASH_FNV1_64, MEMCACHED_HASH_FNV1A_64, MEMCACHED_HASH_FNV1_32, MEMCACHED_HASH_FNV1A_32, MEMCACHED_HASH_KETAMA. The behavior for all hashes but MEMCACHED_HASH_DEFAULT is identitical to the Java driver written by Dustin Sallings.
 
+=item MEMCACHED_BEHAVIOR_DISTRIBUTION
+
+Using this you can enable different means of distributing values to servers.
+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. 
+
 =item MEMCACHED_BEHAVIOR_CACHE_LOOKUPS
 
 Memcached can cache named lookups so that DNS lookups are made only once.
@@ -63,6 +73,35 @@ Support CAS operations (this is not enabled by default at this point in the serv
 
 Modify the timeout value that is used by poll(). The default value is -1. An signed int pointer must be passed to memcached_behavior_set() to change this value. For memcached_behavior_get() a signed int value will be cast and returned as the unsigned long long.
 
+=item MEMCACHED_BEHAVIOR_USER_DATA
+
+This allows you to store a pointer to a specifc piece of data. This can be
+retrieved from inside of memcached_fetch_execute(). Cloning a memcached_st
+
+will copy the pointer to the clone. This was deprecated in 0.14 in favor
+of memcached_callback_set(3). This will be removed in 0.15.
+
+=item MEMCACHED_BEHAVIOR_BUFFER_REQUESTS
+
+Enabling buffered IO causes commands to "buffer" instead of being sent. Any
+action that gets data causes this buffer to be be sent to the remote
+connection. Quiting the connection or closing down the connection will also
+cause the buffered data to be pushed to the remote connection. 
+
+=item MEMCACHED_BEHAVIOR_VERIFY_KEY
+
+Enabling this will cause libmemcached(3) to test all keys to verify that they 
+are valid keys.
+
+=item MEMCACHED_BEHAVIOR_SORT_HOSTS
+
+Enabling this will cause hosts that are added to be placed in the host list in 
+sorted order. This will defeat consisten hashing.
+
+=item MEMCACHED_BEHAVIOR_CONNECT_TIMEOUT
+
+In non-blocking mode this changes the value of the timeout during socket
+connection.
 
 =back
 
@@ -72,6 +111,11 @@ memcached_behavior_get() returns either the current value of the get, or 0
 or 1 on simple flag behaviors (1 being enabled). memcached_behavior_set()
 returns whether or not the behavior was enabled.
 
+=head1 NOTES
+
+memcached_behavior_set() in version .17 was changed from taking a pointer
+to data value, to taking a uin64_t. 
+
 =head1 HOME
 
 To find out more information please check: