RamCloud vs. Memcached
What?
A side project was started to modify libmemcached 1.0.3 library to add RAMCloud support in the backend.
Why?
The goal of the project was to compare the performance of Memcached vs RAMCloud using the very same apparatus (specifically those developed for Memcached) to give a more "Apples to Apples" comparison.
Setup
Machines:
RC01 - Single Coordinator
RC02 - Single Master (no replication)
RC03 - Memcached Server
RC04 - Memslap machine (and Memcached server for certain tests*)
Parameters:
Single Threaded Test (no multithread support yet, comming soon
Results
Test Specific Parameters
Key Size: 30B
Value Size: 100B
Distinct KV sets/gets: 50,000
System | Write Time (s) | Read Time(s) | Write Latency (us) | Read Latency (us) |
Memcached::TCP(RC03) | 7.7 | 7.7 | 154 | 154 |
Memcached::Localhost | 1.6984 | 1.5268 | 33.968 | 30.536 |
Memcached::infrc | 4.05 | 3.6756 | 81 | 73.512 |
RAMCloud::TCP | 4.8498 | 4.9 | 96.996 | 98 |
RAMCloud::infrc | 0.353 | 0.335 | 7.06 | 6.7 |
Summary
System | Write Improvement | Read Improvement |
Memcached::Localhost vs RAMCloud::infrc | 4.81 | 4.56 |
Memcached::infrc vs RAMCloud::infrc | 11.47 | 10.97 |
Memcached::TCP vs RAMCloud::TCP | 1.59 | 1.57 |
Memcached::TCP vs RAMCloud::infrc | 21.81 | 22.99 |
Test Specific Parameters
Key Size: 30B
Value Size: 1000B
Distinct KV sets/gets: 50,000
System | Write Time (s) | Read Time(s) | Write Latency (us) | Read Latency (us) |
Memcached::TCP | 8.2692 | 7.856 | 165.384 | 157.12 |
Memcached::Localhost | 1.8068 | 1.5988 | 36.136 | 31.976 |
Memcached::infrc | 4.2622 | 3.9802 | 85.244 | 79.604 |
RAMCloud::TCP | 5.5012 | 5.4708 | 110.024 | 109.416 |
RamCloud::infrc | 0.48 | 0.453 | 9.6 | 9.06 |
Summary
Conclusions | Write Improvement | Read Improvement |
Memcached::Localhost vs RAMCloud::infrc | 3.76 | 3.53 |
Memcached::infrc vs RAMCloud::infrc | 8.88 | 8.79 |
Memcached::TCP vs RAMCloud::TCP | 1.50 | 1.44 |
Memcached::TCP vs RAMCloud::infrc | 17.23 | 17.34 |