P2S: a fault-tolerant publish/subscribe infrastructure

The popular publish/subscribe communication paradigm, for building large-scale distributed event notification systems, has attracted attention from both academia and industry due to its performance and scalability characteristics. While ordinary "web surfers" typically are not aware of minor packet loss, industrial applications often have tight timing constraints and require rigorous fault tolerance. Some past research has addressed the need to tolerate node crashes and link failures, often relying on distributing the brokers on an overlay network. However, these solutions impose significant complexity both in terms of implementation and deployment. In this paper, we present a crash tolerant Paxos-based pub/sub (P2S) middleware. P2S contributes a practical solution by replicating the broker in a replicated architecture based on Goxos, a Paxos-based fault tolerance library. Goxos can switch between various Paxos variants according to different fault tolerance requirements. P2S directly adapts existing fault tolerance techniques to pub/sub, with the aim of reducing the burden of proving the correctness of the implementation. Furthermore, P2S is a development framework that provides sophisticated generic programming interfaces for building various types of pub/sub applications. The flexibility and versatility of the P2S framework ensures that pub/sub systems with widely varying dependability needs can be developed quickly. We evaluate the performance of our implementation using event logs obtained from a real deployment at an IPTV cable provider. Our evaluation results show that P2S reduces throughput by as little as 1.25% and adds only 0.58 ms latency overhead, compared to its non-replicated counterpart. The performance characteristics of P2S prove the feasibility and utility of our framework.

[1]  Leslie Lamport,et al.  The part-time parliament , 1998, TOCS.

[2]  Richard Monson-Haefel,et al.  Java message service , 2000 .

[3]  Fan Ye,et al.  An empirical study of high availability in stream processing systems , 2009, Middleware.

[4]  Leslie Lamport,et al.  Paxos Made Simple, Fast, and Byzantine , 2002, OPODIS.

[5]  Stephen Michael Jothen Acropolis: aggregated client request ordering by Paxos , 2013 .

[6]  Hector Garcia-Molina,et al.  Ordered and reliable multicast communication , 1991, TOCS.

[7]  Albert G. Greenberg,et al.  Fault-tolerant stream processing using a distributed, replicated file system , 2008, Proc. VLDB Endow..

[8]  Timothy Wilson,et al.  WebSphere Studio overview , 2004, IBM Syst. J..

[9]  Patrick Th. Eugster,et al.  FAIDECS: Fair Decentralized Event Correlation , 2011, Middleware.

[10]  Christof Fetzer,et al.  Soft state in publish/subscribe , 2009, DEBS '09.

[11]  Klara Nahrstedt,et al.  Reliability and Timeliness Analysis of Fault-tolerant Distributed Publish/Subscribe Systems , 2013, ICAC.

[12]  Richard D. Schlichting,et al.  Preserving and using context information in interprocess communication , 1989, TOCS.

[13]  Tormod Erevik Lea Implementation and experimental evaluation of live replacement and reconfiguration , 2013 .

[14]  Pascal Felber,et al.  XNET: a reliable content-based publish/subscribe system , 2004, Proceedings of the 23rd IEEE International Symposium on Reliable Distributed Systems, 2004..

[15]  André Schiper,et al.  Lightweight causal and atomic group multicast , 1991, TOCS.

[16]  Leslie Lamport,et al.  Paxos Made Simple , 2001 .

[17]  Tejaswi Redkar,et al.  Windows Azure Platform , 2010 .

[18]  Kun-Lung Wu,et al.  Fault injection-based assessment of partial fault tolerance in stream processing applications , 2011, DEBS '11.

[19]  Alex C. Snoeren,et al.  Mesh-based content routing using XML , 2001, SOSP.

[20]  Aniruddha S. Gokhale,et al.  Reliable publish/subscribe middleware for time-sensitive internet-scale applications , 2009, DEBS '09.

[21]  Hein Meling,et al.  A paradigm comparison for collecting TV channel statistics from high-volume channel zap events , 2011, DEBS '11.

[22]  Bobby Bhattacharjee,et al.  Decentralized Message Ordering for Publish/Subscribe Systems , 2006, Middleware.

[23]  Leslie Lamport,et al.  Fast Paxos , 2006, Distributed Computing.

[24]  Anne-Marie Kermarrec,et al.  The many faces of publish/subscribe , 2003, CSUR.

[25]  Reza Sherafat Kazemzadeh,et al.  Opportunistic Multipath Forwarding in Content-Based Publish/Subscribe Overlays , 2012, Middleware.

[26]  Hein Meling,et al.  Tutorial Summary: Paxos Explained from Scratch , 2013, OPODIS.

[27]  Saurabh Bagchi,et al.  Exactly-once delivery in a content-based publish-subscribe system , 2002, Proceedings International Conference on Dependable Systems and Networks.

[28]  Hein Meling,et al.  AdScorer: an event-based system for near real-time impact analysis of television advertisements (industry article) , 2012, DEBS.

[29]  Reza Sherafat Kazemzadeh,et al.  Reliable and Highly Available Distributed Publish/Subscribe Service , 2009, 2009 28th IEEE International Symposium on Reliable Distributed Systems.

[30]  Fred B. Schneider,et al.  Implementing fault-tolerant services using the state machine approach: a tutorial , 1990, CSUR.

[31]  Jeong-Hyon Hwang,et al.  Fast and Highly-Available Stream Processing over Wide Area Networks , 2008, 2008 IEEE 24th International Conference on Data Engineering.

[32]  Brian W. Kernighan,et al.  The Go Programming Language , 2015 .

[33]  Kaiwen Zhang,et al.  Total Order in Content-Based Publish/Subscribe Systems , 2012, 2012 IEEE 32nd International Conference on Distributed Computing Systems.

[34]  Hein Meling,et al.  Towards Byzantine fault tolerant publish/subscribe: a state machine approach , 2013, HotDep.