Playing with Waffle & Mecached 1.3.2

So I got our Waffle specific code over into Memcached 1.3.2 last night…  not 100% sure why at this point but I am seeing a huge change in the the hit rate between 1.2.5 and 1.3.2.  Take a look:

Old 1.2.5:

10290.89 new-order transactions per minute (NOTPM)


Server: 192.168.2.105 (11211)
pid: 16522
uptime: 2190
time: 1233504281
version: 1.2.5
pointer_size: 32
rusage_user: 23.753484
rusage_system: 127.611975
curr_items: 46800
total_items: 3487050
bytes: 769596712
curr_connections: 20
total_connections: 23
connection_structures: 21
cmd_get: 1752218
cmd_set: 1801081
get_hits: 1685969
get_misses: 66249
evictions: 1680669
bytes_read: 769596712
bytes_written: 769596712
limit_maxbytes: 805306368
threads: 1

New (1.3.2):
6695.67 new-order transactions per minute (NOTPM)

Server: localhost (11211)
	 pid: 9778
	 uptime: 2087
	 time: 1238184346
	 version: 1.3.2
	 pointer_size: 64
	 rusage_user: 33.926120
	 rusage_system: 83.69191
	 curr_items: 46380
	 total_items: 1367239
	 bytes: 763629763
	 curr_connections: 19
	 total_connections: 63
	 connection_structures: 36
	 cmd_get: 1347525
	 cmd_set: 1367239
	 get_hits: 924333
	 get_misses: 423192
	 evictions: 413819
	 bytes_read: 763629763
	 bytes_written: 763629763
	 limit_maxbytes: 805306368
	 threads: 5

Not 100% why the regression yet. I may have done something dumb in my conversion to 1.3.2, or the LRU process in 1.3.2 may have changed to make this more inefficient. The changes we made to 1.2.5 basically adds a function that is called whenever a get is made to put the item at the tail of LRU to ensure its remove first when we need extra space, as well as setting the expire data/time the item to current time. I would not think I should still need the code to the put the item at the tail end of the LRU, the setting of the expire time should be sufficient. I really need to look at this deeper into this.

This entry was posted in benchmark, Matt, mysql, Waffle Grid. Bookmark the permalink.

Comments are closed.