QCon London 2012, March 5. - 9., London, United Kingdom
Kresten Krab Thorup, TweetHacker, CTO of Trifork, and QCon London Program Committee Member
Biography: Kresten Krab Thorup
Kresten has been a contributor to several open source projects, including GCC, GNU Objective-C, GNU Compiled Java, Emacs, and Apache Geronimo/Yoko. Before joining Trifork, Kresten worked at NeXT Software (now acquired by Apple), where he was responsible for the development of the Objective-C tool chain, the debugger, and the runtime system. Kresten was on the committee for JSR-14 (adding generics to Java) which was closely related to the subject of his Ph.D. thesis.
Most recently, Kresten has founded the Erjang open source project (notice the J there), a virtual machine for Erlang running on the Java Virtual Machine.
Presentation: TweetBringing Riak to the Mobile Platform
The consistency model used by Riak is designed to continue operating well even when nodes in your Riak cluster are down or unreachable, a property which also makes it a good model for mobile data. To me, "down or unreachable" sounds a lot like "off or without-cell-phone-connectivity" - common states for a mobile device.
In this talk, I'll present Riak Mobile, a component that can be embedded into your iOS or Android application to make it a full Riak replication-aware peer. Typical usages for Riak Mobile is as a mobile content distribution platform using one-way sync; or with two-way sync to also push updated data back to your Riak cluster when the network is "eventually" available.
In the talk, I'll walk through how Riak Mobile works. The client-part of Riak Mobile does not require an Erlang VM. Rather, it comes as either a Java or an Objective-C component using SQLite for on-device storage, and thus integrates nicely into the native development environments. The server-part is an OTP application running with Riak. Riak Mobile uses a flow-based algorithm using Merkle trees and vector clocks optimized specifically for providing efficient incremental synchronization for slow, high-latency network conditions.
