We are very pleased to announce the early access release of my-Channels Nirvana 7. Nirvana 7 EA1 builds on the successes and features of Nirvana to offer significantly improved performance, enhanced functionality and additional support for industry standards.
Here is a quick summary of what’s new in the EA1 release:
- Ultra low latency Multicast functionality for inter-server cluster communications and DataGroup client server communications
- Support for the MQTT messaging standard
- Improved performance giving lower latencies and higher throughput
- Enhancements to data routing between Nirvana clusters
- Lightweight Synchronous Administration API
- Improved batching client API features
As is the case with each major release of Nirvana, enormous effort has been put into improving performance both in terms of latency and overall message throughput. While my-Channels Nirvana’s existing unicast modes of delivery have improved again in this release, the most significant performance gains can be found with our new Multicast transport driver.
Nirvana now supports Multicast Server-to-Server communications when operating within Nirvana clusters. Additionally Nirvana DataGroups will transparently operate in a Multicast delivery mode for clients on networks capable of supporting the multicast protocol.
Nirvana is now capable of delivering sub 50 microsecond latency to many thousands of clients. You’ll find the graph below – along with many others – on the benchmarking section of our site. Please take a look.
Multicast Delivery - 50 events per second to 5000 clients at mean of 45 Micro Seconds
MQTT (MQ Telemetry Transport), is a simple and lightweight messaging protocol offering publish/subscribe functionality. MQTT has been specifically designed for constrained devices deployed with access to minimal bandwidth. These design criteria make MQTT the ideal protocol for the rapidly growing “machine to machine” (M2M) or “Internet of Things” world of connected devices.
The protocol is gaining significant traction in the marketplace and is highy suited to embedded hardware platforms as well as mobile applications where bandwidth and battery power are at a premium.
Nirvana 7 provides transparent support for MQTT as a new delivery channel within our Nirvana realm server. This allows standard MQTT (version 3.1) clients to seamlesly communicate with Nirvana and its wide range of supported Enterprise, Web and Mobile devices.
- Wire protocol optimisation from client to server
- Streamlining of event processing within the client libraries
- Internal restructuring of libraries so that future HTML5 related enhancements can be added transparently
We have made significant progress again in terms of improving latency and throughput in Nirvana 7. In addition to the introduction of Multicast support, we are also delivering additional gains in terms of our unicast messaging.
Unicast Delivery – 1 event per second to 100000 clients at mean of 600 Micro Seconds
For more benchmark results please visit the benchmarking section of our site.
Data Routing Between Nirvana Clusters
We have added the ability to use Nirvana joins to route data between Nirvana clusters. This feature is particularly useful for propagating data between Nirvana clusters over a WAN.
Nirvana Admin API Enhancements
The Nirvana administration API now supports a synchronous ‘configuration only’ object which can be used to update Nirvana servers without the overhead of receiving asynchronous server monitoring updates.
Nirvana Client API Enhancements
We have extended support for batching of Nirvana API calls. Multiple channel creation and deletion operations can now be batched in single server calls.
Nirvana EA2 will be released soon. It includes a new shared memory driver for intra-host communications. This will allow Nirvana communications between processes on the same machine to bypass the network stack and considerably improve performance. Current benchmarks of this functionality are showing that a sustained throughput of over 800,000 messages per second is possible with latencies of sub 5 microseconds.