Hi all,

This email is regarding the Data caching benchmark setup which uses memcached 
and a client
that emulates twitter-like get/set requests. The questions I have are at the 
bottom.

For the data caching benchmark, the arguments provided for the client on the 
cloudsuite website 
describe running the workload in a single request/reply mode. I was trying to 
use the multiget option 
in the memcached client ( -m and -l flags are provided for this purpose) , but 
couldn't get it to work.
Either I'm not running it correctly or it doesn't seem to work. I feel it's the 
latter. 
The reason I was trying the multiget mode was to emulate Get-request batching 
since memcached inherently
is network-bound. See 'Scaling Memcache at Facebook' NSDI'13.


I performed the measurements as described on the cloudsuite website. After 
warming up memcached issuing
the exact same commands mentioned on the cloudsuite website, I used the -l and 
-m flags and issued:

./loader -a ../twitter_dataset/twitter_dataset_30x -s servers.txt -g 0.8 -T 1 
-c 200 -w 8 -l 10 -m 0.5

Output:

max,    avgGetSize
  1.000001,       0.0,           0,          0,          0,          0,         
 0,       -nan,   0.000100,   0.000100,   0.000100,       -nan, 
1000000000.000000,   0.000000,       -nan
Outstanding requests per worker:
42 33 28 41 46 29 61 41 
  timeDiff,     rps,        requests,     gets,       sets,      hits,       
misses,   avg_lat,      90th,      95th,        99th,       std,       min,     
   max,    avgGetSize
  1.000001,       0.0,           0,          0,          0,          0,         
 0,       -nan,   0.000100,   0.000100,   0.000100,       -nan, 
1000000000.000000,   0.000000,       -nan
Outstanding requests per worker:
42 33 28 41 46 29 61 41 
  timeDiff,     rps,        requests,     gets,       sets,      hits,       
misses,   avg_lat,      90th,      95th,        99th,       std,       min,     
   max,    avgGetSize
  1.000001,       0.0,           0,          0,          0,          0,         
 0,       -nan,   0.000100,   0.000100,   0.000100,       -nan, 
1000000000.000000,   0.000000,       -nan

*********************************************************

The above command adds an -l and -m to the default commands to the website. It 
says each multiget request has 10 gets in it.
Interestingly, -l 2 tends to work 

Output:

 1.000001,  200778.8,      200779,      80352,      39985,     228243,      
12994,  14.945080,  18.700000,  19.700000,  21.100000,   2.284085,  11.553000,  
22.359001, 797.238002
Outstanding requests per worker:
371 363 389 370 383 360 390 370 
  timeDiff,     rps,        requests,     gets,       sets,      hits,       
misses,   avg_lat,      90th,      95th,        99th,       std,       min,     
   max,    avgGetSize
  1.000001,  203925.8,      203926,      81746,      40590,     231764,      
13161,  14.704381,  18.400000,  19.200000,  20.200000,   2.105561,  11.369000,  
21.534000, 796.015771
Outstanding requests per worker:
372 363 389 370 383 360 390 370 
  timeDiff,     rps,        requests,     gets,       sets,      hits,       
misses,   avg_lat,      90th,      95th,        99th,       std,       min,     
   max,    avgGetSize
  1.000001,  203434.8,      203435,      81533,      40460,     231803,      
12615,  14.766729,  18.500000,  19.400000,  20.500000,   2.244194,  11.412000,  
21.562999, 797.958042
Outstanding requests per worker:
373 363 389 370 383 363 391 370 

***********************************************************

For sanity checking, the default arguments (no -m and -l) as mentioned on the 
website give the following output

Output:

      requests,     gets,       sets,      hits,       misses,   avg_lat,      
90th,      95th,        99th,       std,       min,        max,    avgGetSize
  1.000001,  202935.8,      202936,     162486,      40450,     158344,       
4142,   9.997106,  12.700000,  13.200000,  14.100000,   1.722175,   7.115000,  
15.413000, 816.615358
Outstanding requests per worker:
255 249 258 252 253 241 255 266 
  timeDiff,     rps,        requests,     gets,       sets,      hits,       
misses,   avg_lat,      90th,      95th,        99th,       std,       min,     
   max,    avgGetSize
  1.000001,  201379.8,      201380,     161349,      40031,     157243,       
4106,  10.108395,  12.900000,  13.400000,  14.200000,   1.803369,   7.326000,  
15.984001, 815.152155
Outstanding requests per worker:
257 249 258 252 254 243 256 266 


**************************************************************

Questions:

1) Can you confirm my claim that multigets beyond 2 do not work ?
2) Is there an easy fix for this if 1) is true ?
3) If 1) is not true, can you let me know what I'm doing wrong ?


Batching seems to be the way to run memcached and it would be better if this 
benchmark was run in a way it is 
run in a practical setting.

Thanks alot.

Hamza

Reply via email to