At the Game Developers Conference this March, Basho Chief Architect Andy Gross and Rovio Entertainment Product Manager Timo Herttua co-presented a session on Riak at Rovio. Angry Birds developer Rovio is using Riak as the database supporting its new mobile gaming platform, including features such as payments, game state storage, and push notifications. The Croods game was the first to use this new platform and is now available on Android and iOS.
In this video, Andy and Timo discuss how Rovio uses Riak and the data storage requirements for today's high-scale, high-performance gaming platforms.
As an SAAS internet advertising services company, OpenX has the challenge of serving ads for many large companies. In 2011, OpenX served around 1 trillion ads, and it 2012 is estimated to serve 4 trillion. At peak times they serve over 1 million ads a second. An additional challenge is that ads must be served in just a few hundred milliseconds.
In order to meet these challenges OpenX leveraged first riak_core, then later open source Riak and eventually Enterprise Riak. In this talk I'll talk about our history with other databases like MySql, Cassandra and CouchDB, and how we settled on Riak (or riak_core based systems) for all our serve time data needs.
The performance of the network underlying our applications can have a dramatic effect on the experience of our users. This session will cover how to tune some of the interactions between TCP and your application to deliver solid performance over the public internet.
With regard to the CAP Theorem, Riak is an eventually-consistent database with AP semantics. But, this may soon change.
This talk will present on-going research and development to add true strongly-consistent/CP semantics to Riak. When discussing Dynamo-inspired datastores (Riak, Cassandra, Voldemort), people often use the term "strong consistency" to describe accesses where R + W > N. But, this is not true strong consistency. Concurrent requests still generate non-deterministic results, while node failures and network partitions can lead to partial write failures that provide no guarantees on value consistency.
This work aims to enable true sibling-free access to Riak that is both immediately consistent as well as tolerant to node failures and network partitions. This work enables use cases such as atomic counters and the use of non-monotonic/non-convergent data types with Riak. Finally, unlike previous work in this area (riakual/riak_zab), the work does not require two-phase commit for every operation, but instead relies upon optimistic commits and read-time consistency resolution in the case of partial write failures. In the common case, the same number of round-trip messages are needed for both the existing AP semantics and new CP semantics.
This talk will present an in-depth, but easy-to-understand discussion on this new approach, and is the first time this topic has been presented outside of Basho.
There are many reasons to use an eventually-consistent database -- like Riak, Voldemort, or Cassandra -- including increased availability, lower latency, and fault-tolerance. However, doing so requires a mental shift in how to structure client applications, and certain types of traditional data-structures, like sets, registers, and counters can't be resolved simply in the face of race-conditions. It is difficult to achieve "logical monotonicity" except for the most trivial data-types.
That is, until the advent of Convergent Replicated Data Types (CRDTs). CRDTs are data-structures that tolerate eventual consistency. They replace traditional data-structure implementations and all have the property that, given any number of conflicting versions of the same datum, there is a single state on which they converge (monotonicity). This talk will discuss some of the most useful CRDTs and how to apply them to solve real-world data problems.