Scaling Instant Messaging Communication Services: A Comparison of Blocking and Non-Blocking Techniques

Scaling Instant Messaging Communication Services: A Comparison of Blocking and Non-Blocking Techniques

Leigh Griffin, Kieran Ryan, Eamonn de Leastar, Dmitri Botvich
Copyright: © 2012 |Pages: 19
DOI: 10.4018/jaci.2012070101
OnDemand:
(Individual Articles)
Available
$37.50
No Current Special Offers
TOTAL SAVINGS: $37.50

Abstract

Designing innovative communications services that scale to facilitate potential new usage patterns can pose significant challenges. This is particularly the case if these services are to be delivered over existing protocols and interoperate with legacy services. This work explores design choices for such a service: large scale message delivery to existing Instant Messaging users. In particular the authors explore message throughput, accuracy and server load for several alternative implementation strategies. These strategies focus on approaches to concurrency, with best practice in current and emerging techniques thoroughly benchmarked. Specifically, a conventional Java Executor approach is compared with a functional approach realised through Scala and its Actors framework. These could be termed “blocking I/O” technology. A third approach has also been measured - a “non-blocking I/O” based on an alternative to Java Virtual Machine approaches - employing Node.js and Javascript. We believe that some of the results are startling.
Article Preview
Top

1. Introduction

Instant Messaging (IM) and presence services have become a mainstay of modern communications. Consumer messaging services such as Windows Live Messenger (n.d.), Google Talk (n.d.), and AOL Messenger (http://nodejs.org/).

This last approach (node.js) has achieved some surprising results recently, particularly in addressing the well known C10k problem (Kegel, 2011). Put succinctly, this C10k problem names a limitation of most web servers: they can handle at most 10,000 connections simultaneously. Node.js approaches are showing some interesting results when applied to this problem (Salihefendic, 2010). This work is not quite a replication of the C10k problem: we are more interested in a messaging and presence services than a plain HTTP service (which is the focus of most C10k experiments). However, we believe that we have conducted some interesting experiments in devising a hybrid environment where high volume processing is now possible, even in the context of interacting with a more traditional “blocking” service such as Openfire.

Complete Article List

Search this Journal:
Reset
Volume 15: 1 Issue (2024)
Volume 14: 1 Issue (2023)
Volume 13: 6 Issues (2022): 1 Released, 5 Forthcoming
Volume 12: 4 Issues (2021)
Volume 11: 4 Issues (2020)
Volume 10: 4 Issues (2019)
Volume 9: 4 Issues (2018)
Volume 8: 4 Issues (2017)
Volume 7: 2 Issues (2016)
Volume 6: 2 Issues (2014)
Volume 5: 4 Issues (2013)
Volume 4: 4 Issues (2012)
Volume 3: 4 Issues (2011)
Volume 2: 4 Issues (2010)
Volume 1: 4 Issues (2009)
View Complete Journal Contents Listing