Clearing CAP Confusion and why C in CAP != C in ACID
Opening remarks by:
CTO & SVP of Engineering at AppNexus
Eric Brewer's CAP Theorem is often misunderstood to mean that a distributed system can only support 2 out of 3 of these properties. Eric noted, "First, because partitions are rare, there is little reason to forfeit C or A when the system is not partitioned. Second, the choice between C and A can occur many times within the same system at very fine granularity; not only can subsystems make different choices, but the choice can change according to the operation or even the specific data or user involved. Finally, all three properties are more continuous than binary."
Srini V Srinivasan, founder & VP Engineering & Ops at Aerospike, has been working on these ideas for 6 years and independently discovered some of the flexibility available to distributed systems described by Brewer. Srini chose not to sacrifice Consistency at the altar of Availability as many other NoSQL systems have done. Starting with a blank slate, he set out to architect the highest performance, highest availability, and highest consistency possible into a distributed database system, given the limitations imposed by the CAP theorem and other laws of Physics.
The techniques he implemented have been so highly successful that Aerospike is used today as the foundation of some of the highest scale deployments in the internet and the code was recently open sourced to make it more freely available to all developers.
In this talk, Srinivasan will review the basics of CAP and ACID and share how a practical approach to minimizing the occurrence of network partitions enables support for high levels of consistency in an AP system.
Srini brings 20-plus years of experience in designing, developing and operating Web-scale infrastructures, and he holds over a dozen patents in database, Internet, mobile, and distributed system technologies. Srini co-founded Aerospike to solve the scaling problems he experienced with Oracle databases at Yahoo! where, as senior director of engineering, he had global responsibility for the development, deployment and 24x7 operations of Yahoo!'s mobile products, in use by tens of millions of users.
Srini joined Yahoo! as part of the Verdisoft acquisition, where as vice president of engineering, he oversaw the development of high-performance data synchronization products for mobile users. Srini also was chief architect of IBM's DB2 Internet products, and he served as senior architect of digital TV products at Liberate Technologies. Srini has a B.Tech in Computer Science from IIT Madras and a M.S. and PhD in Databases from University of Wisconsin-Madison.