uint32_t pointer_counter= 0;
uint32_t pointer_per_server= MEMCACHED_POINTS_PER_SERVER;
uint32_t pointer_per_hash= 1;
- uint64_t total_weight= 0;
uint32_t live_servers= 0;
struct timeval now;
ptr->ketama.continuum_count= live_servers + MEMCACHED_CONTINUUM_ADDITION;
}
+ uint64_t total_weight= 0;
if (is_ketama_weighted)
{
for (uint32_t host_index = 0; host_index < memcached_server_count(ptr); ++host_index)
{
- if (list[host_index].weight == 0)
- {
- list[host_index].weight = 1;
- }
if (! is_auto_ejecting || list[host_index].next_retry <= now.tv_sec)
+ {
total_weight += list[host_index].weight;
+ }
}
}
memcached_server_list_st memcached_servers_parse(const char *server_strings)
{
char *string;
- in_port_t port;
- uint32_t weight;
const char *begin_ptr;
const char *end_ptr;
memcached_server_st *servers= NULL;
{
char buffer[HUGE_STRING_LEN];
char *ptr, *ptr2;
- port= 0;
- weight= 0;
+ uint32_t weight= 0;
if (string)
{
ptr= index(buffer, ':');
+ in_port_t port= 0;
if (ptr)
{
ptr[0]= 0;
ptr2= index(ptr, ' ');
if (! ptr2)
ptr2= index(ptr, ':');
+
if (ptr2)
{
ptr2++;
self->fd= -1;
self->io_bytes_sent= 0;
self->server_failure_counter= 0;
- self->weight= weight;
+ self->weight= weight ? weight : 1; // 1 is the default weight value
self->state.is_corked= false;
self->state.is_dead= false;
WATCHPOINT_SET(self->io_wait_count.read= 0);