Thialfi: A Client Notification Service for Internet-Scale Applications
Venue
Proc. 23rd ACM Symposium on Operating Systems Principles (SOSP) (2011), pp. 129-142
Publication Year
2011
Authors
Atul Adya, Gregory Cooper, Daniel Myers, Michael Piatek
BibTeX
Abstract
Ensuring the freshness of client data is a fundamental problem for applications
that rely on cloud infrastructure to store data and mediate sharing. Thialfi is a
notification service developed at Google to simplify this task. Thialfi supports
applications written in multiple programming languages and running on multiple
platforms, e.g., browsers, phones, and desktops. Applications register their
interest in a set of shared objects and receive notifications when those objects
change. Thialfi servers run in multiple Google data centers for availability and
replicate their state asynchronously. Thialfi's approach to recovery emphasizes
simplicity: all server state is soft, and clients drive recovery and assist in
replication. A principal goal of our design is to provide a straightforward API and
good semantics despite a variety of failures, including server crashes,
communication failures, storage unavailability, and data center failures.
Evaluation of live deployments confirms that Thialfi is scalable, efficient, and
robust. In production use, Thialfi has scaled to millions of users and delivers
notifications with an average delay of less than one second.