RAMCloud and the Low-Latency Datacenter
John Ousterhout, Stanford
Low-latency Datacenter in General:
Datacenter: large
compute power + large amount of storage + fast communication, homogeneous,
centrally controlled
How many
datacenters: $1K-10K per person for IT infrastructure?
Innovations in
Datacenters:
Phase
1: manage scale (map-reduce)
Phase
2: low latency (from 1-2ms to 2-10 us)
In current datacenter, application is
separated from its data (unlike in a single machine)
RAMCloud (Storage system for low
latency datacenter)
Goal:
1.
All data in DRAM (no cache misses)
2.
Durable and available
3.
Large scale
4.
Low latency (5-10us remote access) for small
chunks of data
Architecure:
App +
network + storage servers + coordinator
Storage
servers: master + backup. Master manages memory and data requests, backup
manages secondary storage and durability, talking to other masters for
availability etc.
Operations:
Read,
write, delete, cwrite(conditional write based on version number)
Data Durability:
Eventual
durability, log structure approach (with small non-violtial memory).
Crash recovery: log replaying in
large scale (?)
Log-structured memory:
Don’t use
malloc (waste at least 50% memory because of workload change), instead, structure
memory as a log (80%-90% memory utilization)
New Projects:
Higher
level data model (for database, say,
secondary indexes?)
System architecture for RPC
System architecture for RPC
Threats to Latency:
Layering
(how to organize software structure but still low latency?)
Network
buffering (esp. TCP just tries to find empty buffers!)