...
- Introductory talk on RAMCloud by John Ousterhout, given at LinkedIn on October 12, 2011.
- The RAMCloud Storage System: draft of a comprehensive paper describing RAMCloud, including the log-structured storage mechanism, RAMCloud's thread architecture and approach to low latency, and its crash recovery mechanisms. This draft is from September 2014.
- The Case for RAMCloud: an early position paper that discusses the motivation for RAMCloud, the new kinds of applications it may enable, and some of the research issues that will have to be addressed to create a working system. Appeared in CACM in July 2011.
- An earlier and slightly longer version of the position paper, which appeared in Operating Systems Review in December 2009.
- Fast Recovery in RAMCloud: describes RAMCloud's mechanism for recovering crashed servers in 1-2 seconds. Appeared in SOSP in October, 2011
- Log-Structured Memory for DRAM-based Storage: describes how RAMCloud manages the storage of objects both in DRAM and on disk. Appeared in FAST in February, 2014; won Best Paper Award.
- Toward Common Patterns for Distributed, Concurrent, Fault-Tolerant Code: HotOS 2013 workshop paper describing a rules-based approach for building "DCFT" systems.
Articles about RAMCloud (Web and print media, written by people outside the RAMCloud group)
- RAMCloud Papers (complete listing of all papers written by the RAMCloud group)
- RAMCloud Presentations (Slides from talks about RAMCloud)
- Glossary of RAMCloud Terms
...
RAMCloud has now reached a level of maturity where it is suitable for production use with real applications. The links below provide information on how to set up a RAMCloud cluster and on the RAMCloud APIs for applications.
- Deciding Whether to Use RAMCloud
- Supported Platforms
- Setting Up a RAMCloud Cluster
- Creating a RAMCloud Client
- Application APIs (what features are available to applications)
- Python Bindings
- Service Locators
- Technical Support
RAMCloud Performance
Measurements of RAMCloud performance, as well as comparisons between RAMCloud and other systems.
- clusterperf benchmarks (benchmarks run on a cluster to measure basic things such as read and write latency and throughput)
- How To Run Clusterperf
- Perf benchmarks (microbenchmarks measuring various low-level operations on a single machine, such as atomic increment)
- Performance Improvement Log
- Recovery Performance Benchmark
- Latency Patterns in Infiniband (talk by Alex Modkovich, May 2012)
- RPC Latency Profile (the lifetime of a write operation, measured January 2012)
- SSD Experiments (July 2011)
- Redis vs. RAMCloud
- Older Performance Measurements
Information for RAMCloud Developers
Information for people who are working on the RAMCloud code base; it is intended primarily for the internal use of the RAMCloud team at Stanford, but may be useful to other people as well.
- General Information for Developers (how to get started as a RAMCloud developer)
- Build System Structure
- RAMCloud Tech Talks (Videos of RAMCloud developers describing the internals of various system components)
- Running Recoveries with recovery.py
- Coding Conventions
- Style Guide
- Documentation Guidelines
- Amendments to Current Documentation and Testing Guidelines
- Software Design Philosophy – John Ousterhout's pet peeves
- How To Measure Performance: John's pet peeves (and ideas for a possible paper)
- RAMCloud C Style for EMACS
- Vim Settings
- Copyright Notice
- Mfence – x86 instructions for limiting instruction reordering
- Inside Concurrency Primitives
- Wireshark PluginDallyFastNetwork.pdf
- NetBeans IDE tips
- Measuring RAMCloud PerformanceNetBeans tips
- Code review tool
- Git repo: see General Information for Developers
- IRC channel: #ramcloud on freenode.
- This is used to coordinate usage of the RAMCloud cluster. Anytime you are using the cluster you should be listening on this channel; if you don't respond to comments on the channel, your jobs may be killed.
- Transcripts of this channel may be found here
- Dumpstr tool for viewing reports (mostly performance data)
- Documentation, generated nightly from the source code
...
Information about the cluster we use for RAMCloud testing at Stanford. Unfortunately not all of this information is completely up to date.
- Cluster Intro – information about our cluster for newcomers
- New Contributor Checklist (how to set up access for new team members)
- Cluster Configuration /wiki/spaces/RAM/pages/6848593 – for sysadmins
- Cluster Custodian - rotatiing responsibility for managing the cluster and providing technical support
- Cluster Inventory - includes notes about cluster setup and spare components
- Intel 530 Performance recent performance issues with Intel 530 SSDs
- Cluster Tasks - (not so) recent issues with cluster machines
- Machine Evaluations
- Compiling RAMCloud on CentOS
- Tips from Charlie & Co
- Reimaging a Cluster Machine
- Installing New Software on the Cluster
- Controlling Machines Remotely via IPMI
- Updating BIOS automatically with PXE and FreeDOS
- Infiniband Tools and Debugging
- Updating Mellanox NIC Firmware (to eliminate limit on timeouts)
- Dead Machines
- New Infiniband Fabric Notes
- Mellanox HW and Infiniband Notes
- IPMI and Virtual KVM access to cluster machines /wiki/spaces/RAM/pages/6848654 (for BIOS and boot-time configuration)
New Cluster
Design Notes
These documents were used at various points in the project to record our early ideas about various parts of the system. Most of these pages are now out of date (they typically are not updated once serious coding begins) but they may still provide useful background information as well as alternatives that we considered.
- Reliable Conditional Write
- Higher Level Data Models
- Transaction proposal: by Satoshi
- Old Design Documents
Project History, Schedules, Milestones
- Project History
- RAMCloud 1.0 (used in 2012-2013 to track progress towards first usable release)
- Least Usable System - Candidates for the "next major goal" (early April 2011).
- Milestones from 2010
Ideas for Future Work
- Future Projects and PhD Topics
- Usability Features and Research Topics (April 2013)
- Rotation and CURIS Ideas
Related Topics
- LogCabin and Raft
- Garbage Collection Resources (April 2013)
- The Fastest Possible Datacenter Network (slides from Bill Dally talk, March 2012)
- Facebook Information
- References
- Interesting Links
Miscellaneous Topics
- Team Members
- Lunch Ideas
- Current Applications (applications that are using RAMCloud or considering it)
- Server Prices: sample server configurations and prices
- Memory Prices
- Interesting Statistics
- Old Miscellaneous Topics