Rappel: Exploiting interest and network locality to improve fairness in publish-subscribe systems

Jay A. Patel, Étienne Rivière, Indranil Gupta, Anne Marie Kermarrec

Research output: Contribution to journalArticlepeer-review

Abstract

In this paper, we present the design, implementation and evaluation of Rappel, a peer-to-peer feed-based publish-subscribe service. By using a combination of probabilistic and gossip-like techniques and mechanisms, Rappel provides noiselessness, i.e., updates from any feed are received and relayed only by nodes that are subscribers of that feed. This leads to a fair system: the overhead at each subscriber node scales with the number and nature of its subscriptions. Moreover, Rappel incurs small publisher and client overhead, and its clients receive updates quickly and with low IP stretch. To achieve these goals, Rappel exploits "interest locality" characteristics observed amongst real multi-user multi-feed populations. This is combined with systems design decisions that enable nodes to find other subscribers, and maintain efficient network locality-aware dissemination trees. We evaluate Rappel via both trace-driven simulations and a PlanetLab deployment. The experimental results from the PlanetLab deployment show that Rappel subscribers receive updates within hundreds of milliseconds after posting. Further, results from the trace-driven simulator match our PlanetLab deployment, thus allowing us to extrapolate Rappel's performance at larger scales.

Original languageEnglish (US)
Pages (from-to)2304-2320
Number of pages17
JournalComputer Networks
Volume53
Issue number13
DOIs
StatePublished - Aug 28 2009

Keywords

  • Application-level multicast
  • Gossip-based overlay construction
  • Publish-subscribe
  • Self-organization

ASJC Scopus subject areas

  • Computer Networks and Communications

Fingerprint

Dive into the research topics of 'Rappel: Exploiting interest and network locality to improve fairness in publish-subscribe systems'. Together they form a unique fingerprint.

Cite this