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 |