THIALFI
A Client Notification Service for Internet-Scale Applications
Authors: Atul Adya, Gregory Cooper, Daniel Myers, Michael Piatek Google, Inc.
Karol Nienałtowski
THIALFI A Client Notification Service for Internet-Scale - - PowerPoint PPT Presentation
THIALFI A Client Notification Service for Internet-Scale Applications Authors: Atul Adya, Gregory Cooper, Daniel Myers, Michael Piatek Google, Inc. Karol Nienatowski Problem Ensuring the freshness of client data for applications that rely
Authors: Atul Adya, Gregory Cooper, Daniel Myers, Michael Piatek Google, Inc.
Karol Nienałtowski
SERVER
– Tensions between timeliness and resources
– Inefficient – imposing significant load on the server
– Fast but complex – Disconnected clients are overwhelmed by a flood of
– Diversity of applications, data models, storage
– Complexity
– Flood o messages upon wakeup – Application – specific of message
– Synchronous stores – by incrementing that numbers – Asynchronous stores – ex. by adding time of
– XMPP – HTTP – Internal RPC
– Thialfi does not dictate a particular scheme for securing
– Thialfi does not mandate a channel security policy
– hash of a client or object ID – Key-space is statistically partition to contiguous ranges – One range is assigned to each server
– Registrations – objects of interest to the client indexed
– Pending notifications – notifications not yet
REGISTRAR MATCHER
PROPAGATOR PROPAGATOR
REGISTRATIONS NOTIFICATIONS
– Client identifiers – Session identifiers (Thialfi data center ID)
– Interval 20 minutes – Messages are small – Processing only requires one In-memory operation
– Registrar detects errors in synchronization using tokens
– Client registration messages are sufficient to reconstruct
– The latest version data at the Matcher is not recovered
– Sent messages may be lost, duplicated or reordered – Clients detect improper message by checking tokens or
CLIENT REGISTRAR MATCHER
Registration Sync Protocol is used
disagreement will be detected
marker in Registrar bigtable is cleared only after all dependent writes in Matcher Table have completed
Propagator retried writes if any failure
CLIENT REGISTRAR MATCHER MATCHER
retried if any failure
periodically the scratch table and resends notifications
client acknowledges or new notifications is gonna be to sent
as in opposite direction