{
if (ptr->flags.verify_key && (memcached_key_test((const char * const *)&master_key, &master_key_length, 1) == MEMCACHED_BAD_KEY_PROVIDED))
return MEMCACHED_BAD_KEY_PROVIDED;
- master_server_key= memcached_generate_hash(ptr, master_key, master_key_length);
+ master_server_key= memcached_generate_hash_with_redistribution(ptr, master_key, master_key_length);
is_master_key_set= true;
}
*/
for (x= 0; x < memcached_server_count(ptr); x++)
{
- memcached_server_instance_st *instance=
+ memcached_server_write_instance_st instance=
memcached_server_instance_fetch(ptr, x);
if (memcached_server_response_count(instance))
*/
for (x= 0; x < number_of_keys; x++)
{
- memcached_server_instance_st *instance;
+ memcached_server_write_instance_st instance;
uint32_t server_key;
if (is_master_key_set)
}
else
{
- server_key= memcached_generate_hash(ptr, keys[x], key_length[x]);
+ server_key= memcached_generate_hash_with_redistribution(ptr, keys[x], key_length[x]);
}
instance= memcached_server_instance_fetch(ptr, server_key);
*/
for (x= 0; x < memcached_server_count(ptr); x++)
{
- memcached_server_instance_st *instance=
+ memcached_server_write_instance_st instance=
memcached_server_instance_fetch(ptr, x);
if (memcached_server_response_count(instance))
for (x= 0; x < number_of_keys; x++)
{
uint32_t server_key;
- memcached_server_instance_st *instance;
+ memcached_server_write_instance_st instance;
if (is_master_key_set)
{
}
else
{
- server_key= memcached_generate_hash(ptr, keys[x], key_length[x]);
+ server_key= memcached_generate_hash_with_redistribution(ptr, keys[x], key_length[x]);
}
instance= memcached_server_instance_fetch(ptr, server_key);
return vk;
}
- request.message.header.request.keylen= htons((uint16_t)key_length[x]);
+ request.message.header.request.keylen= htons((uint16_t)(key_length[x] + ptr->prefix_key_length));
request.message.header.request.datatype= PROTOCOL_BINARY_RAW_BYTES;
- request.message.header.request.bodylen= htonl((uint32_t) key_length[x]);
+ request.message.header.request.bodylen= htonl((uint32_t)( key_length[x] + ptr->prefix_key_length));
- if ((memcached_io_write(instance, request.bytes,
- sizeof(request.bytes), false) == -1) ||
- (memcached_io_write(instance, keys[x],
- key_length[x], flush) == -1))
+ if ((memcached_io_write(instance, request.bytes, sizeof(request.bytes), false) == -1) ||
+ (memcached_io_write(instance, ptr->prefix_key, ptr->prefix_key_length, false) == -1) ||
+ (memcached_io_write(instance, keys[x], key_length[x], flush) == -1))
{
memcached_server_response_reset(instance);
rc= MEMCACHED_SOME_ERRORS;
/* We just want one pending response per server */
memcached_server_response_reset(instance);
memcached_server_response_increment(instance);
- if ((x > 0 && x == ptr->io_key_prefetch) &&
- memcached_flush_buffers(ptr) != MEMCACHED_SUCCESS)
+ if ((x > 0 && x == ptr->io_key_prefetch) && memcached_flush_buffers(ptr) != MEMCACHED_SUCCESS)
+ {
rc= MEMCACHED_SOME_ERRORS;
+ }
}
if (mget_mode)
for (x= 0; x < memcached_server_count(ptr); x++)
{
- memcached_server_instance_st *instance=
+ memcached_server_write_instance_st instance=
memcached_server_instance_fetch(ptr, x);
if (memcached_server_response_count(instance))
for (x= 0; x < number_of_keys; ++x)
{
- memcached_server_instance_st *instance;
+ memcached_server_write_instance_st instance;
if (hash[x] == memcached_server_count(ptr))
continue; /* Already successfully sent */
.message.header.request= {
.magic= PROTOCOL_BINARY_REQ,
.opcode= PROTOCOL_BINARY_CMD_GETK,
- .keylen= htons((uint16_t)key_length[x]),
+ .keylen= htons((uint16_t)(key_length[x] + ptr->prefix_key_length)),
.datatype= PROTOCOL_BINARY_RAW_BYTES,
- .bodylen= htonl((uint32_t)key_length[x])
+ .bodylen= htonl((uint32_t)(key_length[x] + ptr->prefix_key_length))
}
};
* that we might have processed some of the responses etc. For now,
* just make sure we work _correctly_
*/
- if ((memcached_io_write(instance, request.bytes,
- sizeof(request.bytes), false) == -1) ||
- (memcached_io_write(instance, keys[x],
- key_length[x], true) == -1))
+ if ((memcached_io_write(instance, request.bytes, sizeof(request.bytes), false) == -1) ||
+ (memcached_io_write(instance, ptr->prefix_key, ptr->prefix_key_length, false) == -1) ||
+ (memcached_io_write(instance, keys[x], key_length[x], true) == -1))
{
memcached_io_reset(instance);
dead_servers[server]= true;
{
for (size_t x= 0; x < number_of_keys; x++)
{
- hash[x]= memcached_generate_hash(ptr, keys[x], key_length[x]);
+ hash[x]= memcached_generate_hash_with_redistribution(ptr, keys[x], key_length[x]);
}
}