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
SystemWrite Time (s)Read Time(s)Write Latency (us)Read Latency (us)
Memcached::TCP(RC03)7.77.7154154
Memcached::Localhost1.69841.526833.96830.536
Memcached::infrc4.053.67568173.512
RAMCloud::TCP4.84984.996.99698
RAMCloud::infrc0.3530.3357.066.7

 

Summary

SystemWrite ImprovementRead Improvement
Memcached::Localhost vs RAMCloud::infrc4.814.56
Memcached::infrc vs RAMCloud::infrc11.4710.97
Memcached::TCP vs RAMCloud::TCP1.591.57
Memcached::TCP vs RAMCloud::infrc21.8122.99

 

Test Specific Parameters

  • Key Size: 30B
  • Value Size: 1000B
  • Distinct KV sets/gets: 50,000
SystemWrite Time (s)Read Time(s)Write Latency (us)Read Latency (us)
Memcached::TCP8.26927.856165.384157.12
Memcached::Localhost1.80681.598836.13631.976
Memcached::infrc4.26223.980285.24479.604
RAMCloud::TCP5.50125.4708110.024109.416
RamCloud::infrc0.480.4539.6

9.06

 

Summary

ConclusionsWrite ImprovementRead Improvement
Memcached::Localhost vs RAMCloud::infrc3.763.53
Memcached::infrc vs RAMCloud::infrc8.888.79
Memcached::TCP vs RAMCloud::TCP1.501.44
Memcached::TCP vs RAMCloud::infrc17.2317.34