On Thu, Mar 3, 2011 at 9:54 AM, Felipe Cerqueira <[email protected]>wrote:
> Hi,
>
> Its works for me on version 0.45 with C.
>
Well, perhaps I'm not configuring the client correctly. See below.
>
> I didnt like of this behavior but its works.
>
> The concept of master and slave dont exist. So, if its get a error
> trying to send data to the hash(key)->server, its dont send data to
> the others server(s).
>
Are you saying that even with " MEMCACHED_BEHAVIOR_NUMBER_OF_REPLICAS" set
to 1 if the first server write fails then it won't write to the second?
That is, once a server fails only reads work?
Here's a simple test script using the most recent Perl version with output
below. Am I not setting this up correctly?
use Memcached::libmemcached qw( :memcached_behavior_t );
use strict;
use warnings;
my $memc = Memcached::libmemcached->new;
$memc->memcached_behavior_set( MEMCACHED_BEHAVIOR_NUMBER_OF_REPLICAS() => 1
);
$memc->memcached_server_add( 'localhost', 11211 );
$memc->memcached_server_add( 'localhost', 11212 );
my $mem1 = Memcached::libmemcached->new;
$mem1->memcached_server_add( 'localhost', 11211 );
my $mem2 = Memcached::libmemcached->new;
$mem2->memcached_server_add( 'localhost', 11212 );
printf "Running libmemcached version %s\n",
Memcached::libmemcached::memcached_lib_version();
for ( 1 .. 8 ) {
my $id = int rand 1000;
print "\n============= key $id =============\n";
$memc->memcached_set( $id, 1, 10 )
|| die 'set failed "' . $memc->errstr . "'\n";
my ( $flag, $rc );
$mem1->memcached_get( $id, $flag, $rc )
&& print "found in mem1\n";
$mem2->memcached_get( $id, $flag, $rc )
&& print "found in mem2\n";
}
Running this I see -- not it's only finding the key in one server.
Running libmemcached version 0.44
============= key 869 =============
found in mem2
============= key 321 =============
found in mem1
============= key 618 =============
found in mem1
============= key 234 =============
found in mem2
============= key 667 =============
found in mem1
============= key 54 =============
found in mem2
============= key 441 =============
found in mem1
============= key 178 =============
found in mem1
One thing I always find odd is if I don't have Memcached running I get:
set failed "SYSTEM ERROR Success'
Does that mean a successful system error? ;)
--
Bill Moseley
[email protected]