Hi

We're doing some testing with a couple of the perl memcached libraries
Cache::Memcached 1.24
Cache::Memcached::Fast 0.13
libevent-1.4.8-stable
memcached 1.2.6
perl 5.8.8

Here are the outcomes we have observed

Condition 1:
* Dies on failure of operation (add, get or delete) in 10 attempts
* Does not reconnect if it fails a single operation
  
Result:
  * Frequently requires 2 attempts to perform an operation
  * Almost never completes 10,000 loops before failing an operation in 10 
attempts, and dies.


Condition 2:
* Dies on failure of operation (add, get or delete) in 10 attempts
* Reconnects to Memcached if it fails a single operation attempt
  
Result:
  * Frequently requires 2 attempts to perform an operation
  * Often dies from failure to perform op in 10 attempts
  * Otherwise tends to die as a result of failing to connect, set and delete a 
connection-test key/value


Condition 3:
  * Warns and continues upon failure to complete an operation in 10 attempts
  * Does not reconnect on failure
  
Result:
  * After a series of failures to complete an operation, the script and 
memcached will consume CPU. The test script will  effectively lock, without 
progressing further. Other instances of the test script can execute, so 
Memcached itself is not locked.

The same problems are present with Cache::Memcached and with 
Cache::Memcached::Fast

When using Cache::Memcached the following errors are often spat out:

Use of uninitialized value in numeric eq (==) 
at /usr/local/stow/perl-5.8.7/lib/site_perl/5.8.7/Cache/Memcached.pm line 
388.
Use of uninitialized value in string eq 
at /usr/local/stow/perl-5.8.7/lib/site_perl/5.8.7/Cache/Memcached.pm line 
424.

We have tested this on solaris 10 and linux.

# network test
memcached -d
./test_memcached.pl

# domain socket test (after changing $memcached_servers in test script)
memcached -s /var/run/memcached_socket -d
./test_memcached.pl

The test script is attached to this email.

Can anyone else repeat this failure, and/or provide info as to
a) why this happens and how to prevent it
or
b) why what we are doing is stupid and suggest a more appropriate test

Thanks for listening

Admin.

Attachment: test_memcached.pl
Description: Perl program

Reply via email to