Browse Prior Art Database

A distributed topic match space for publish subscribe

IP.com Disclosure Number: IPCOM000235838D
Publication Date: 2014-Mar-26
Document File: 3 page(s) / 71K

Publishing Venue

The IP.com Prior Art Database

Abstract

This invention allows the storage of all of the subscriptions in multiple systems in a single shared table, for example a distributed hash table (DHT). There are some well known implementations of distributed Hash Tables eg Apache Cassandra.

This text was extracted from a PDF file.
This is the abbreviated version, containing approximately 54% of the total text.

Page 01 of 3

A distributed topic match space for publish subscribe

In publish subscribe it is necessary to identify which subscribers will receive a copy of a publication by matching the publication against the known subscriptions. This is usually done in a table loaded into the memory of a single system, some existing techniques to publish messages across multiple systems are:

1) Send a copy of the publication to every system, publication flooding.

    2) Have each system make a proxy subscription to other systems on behalf of all of the subscribers on it.

    This invention proposes to store the totality of all of the subscriptions in multiple systems in a single shared table, for example a distributed hash table (DHT). There are some well known implementations of distributed Hash Tables eg

Apache Cassandra , they have the property of being highly scalable, supporting large numbers of key value pairs and concurrent processing of requests. However the latency of requests to look up a value in a DHT is order of milliseconds compared to nanoseconds for a locally implemented table. DHTs do not impose an order on the keys and only provide a value that is an exact match for the key. It is not possible to lock a DHT because it is implemented on a set of computers processing in parallel. This invention describes a method for storing subscriptions in a DHT. It also describes a set of optimisations for more efficiently extracting the known subscribers by reducing the number of look up and update requests.

    A publication is labelled with a topic name usually split into terms separated by a "/" character. The subscriber describes the
publications he would like to receive by using a topic filter which is again a series of terms separated by a "/" character. The topic filter may contain wild card characters "+" to replace a single term or "#" to replace a series of terms, so that the topic filter is a fuzzy match for many topic names.

Each entry in the table comprises


Key :The topic filter
Value :The children which are the following terms in all known topic filters with start

with the same key. :The list of known subscribers

    The parent of each entry is created if it does not exist and has a key which consists of all but the final term in the topic filter. The final term is a child for the parent.

    The diagram below illustrates how the subscriptions are stored and the optimisations that are applied.


Page 02 of 3

Examples of the key value pairs stored in the Distributed table.

A subscription is added...