Advanced Message Processing System

AMPS 2.1 BETA DOWNLOAD AVAILABLE - 6 DEC 2009

What is AMPS?

AMPS is an extreme low latency high throupghput messaging system.

AMPS is a modern Publish/Subscribe engine designed specifically for next generation computing environments. It is intended to allow the realization of scalable high throughput low latency messaging required in real-time activities such as financial messaging. The architecture, design and implementation of AMPS allows the exploitation of parallelism inherent in emerging multi-socket multi-core commodity computers and the low latency/high bandwidth of 10Gb Ethernet. AMPS offers both topic and content based susbcription semantics which makes it different than most other publish/subscribe messaging platforms.

License

60East Technologies, LLC.

Architecture

AMPS has been built for low latency and high throughput with high levels of concurrency. Special care has been taken to optimize the message processing path using lock-free and advanced parallel programming techniques to achieve unprecedented levels of performance and scalability. The code is written in modern C/C++ with small parts in Assembly for atomic operations. The code contains no virtual functions nor does it use inheritance. Great care has been taken to design the data structures to optimize cache line usage and maximize cache efficiency.

Computing performance
Average message processing latency on Nehalem based systems is in the neighborhood of 1 micro second. End to end latency is highly dependent on network capabilities and NIC hardware. AMPS has built-in latency statistics so that message processing latency (processing time inside the engine) can be observed and monitored.

Persistence performance
Reliable persistence for State of the World (SOW) feature (see below) is achieved through an internal high performance database backed by a memory mapped file. The durable store uses regular file based storage for durable subscriptions has been designed to take advantage of high performance SSD's and can achieve 15-20K fully synchronous 1-4 KB writes per second.

Limitations
AMPS has been built specifically for x86-64 Linux environments.

Features

Limits

The following are not yet implemented:

Quick Start

Just unzip the server package somewhere and start the server with the following command:
$ bin/ampServer conf/amps.xml
(If necessary you can change default listen ports and interfaces in the conf/amps.xml file)


On the client-side, please consult the documentation

Bug reports

If you find any bug or problem, you can send me an email to : support@crankupthemps.com