Sometimes, service clients repeat requests in a polling loop in order to refresh their view. However, such polling may be slow to pick up changes, or may increase the load unacceptably, in particular for composed services that disperse over many components. We present an alternative polling API and \emph{reactive caching} algorithm that combines the conceptual simplicity of polling with the efficiency of push-based change propagation. A reactive cache contains a summary of a distributed read-only operation and maintains a connection to its dependencies so changes can be propagated automatically.
We first formalize the setting using an abstract calculus for composed services. Then we present a fault-tolerant distributed algorithm for reactive caching. Finally, we implement and evaluate our solution by extending the Orleans actor framework, and perform experiments on two benchmarks in a distributed cloud deployment. The results show that our solution provides superior performance compared to polling, at a latency that comes close to hand-written change notifications.
Thu 8 NovDisplayed time zone: Guadalajara, Mexico City, Monterrey change
15:30 - 17:00 | |||
15:30 22mTalk | Cross-Component Garbage Collection OOPSLA Ulan Degenbaev Google, Jochen Eisinger Google, Kentaro Hara Google, Marcel Hlopko Google, Michael Lippautz Google, Hannes Payer Google DOI Media Attached | ||
15:52 22mTalk | Reactive Caching for Composed Services OOPSLA | ||
16:15 22mTalk | Object-Oriented Recovery for Non-Volatile Memory OOPSLA | ||
16:37 22mTalk | Software Multiplexing: Share Your Libraries and Statically Link Them Too OOPSLA Will Dietz University of Illinois at Urbana-Champaign, Vikram S. Adve University of Illinois at Urbana-Champaign Link to publication DOI Pre-print |