RamCloud vs. Memcached

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