Latest Features
Nirvana 4.0 brings message oriented middleware to a
new level featuring enhanced scalability through the
use of NIO, singnificant performance gains through new
and improved fanout algorithms for both standalone and
clustered environments as well much more. For a full
list of new features please see below.
Performance and Scalability
Nirvana 4.0 provides vast scalability in terms of
the number of client connections which can be supported
by a single server, whilst still managing to maintain
a small resource footprint on the host machine. This
is achieved through the use of Java's NIO (non-blocking
IO) for all client connections including SSL.
NIO
The use of NIO has removed the limits imposed by standard
blocking IO. The consequent reduction in the number
of threads required in order to support large numbers
of clients and enhance event fanout algorithms enables
Nirvana to deliver an unprecedented number of messages
per second within low latency limits to very large numbers
of clients.
Reduced Bandwidth Requirement
Nirvana 4.0 message payloads have been further optimized
to reduce network usage and to reduce the demand on
the operating system. This has been coupled with improved
client / server communications to reduce the bandwidth
requirements thereby improving performance by reducing
the processing required at client and the server endpoints.
JMS Engine
The Nirvana realm server now supports a JMS style event
fanout for topics. The principle differences between
this fanout mechanism and the default fanout used with
a Nirvana 3 realm is that events are held in memory
(NON_PERSISTENT) or written to disk (PERSISTENT) only
when there are known durable subscriptions for the topic
in question. For all other scenarios, once an event
is delivered it is not stored, and for those situations
where there a no consumers to the topic, events are
once again discarded. This not only enables the event
delivery to be extremely fast, but also reduces the
overhead in memory used as well as disk storage space.
Transient Channel Type
As well as the JMS style fanout engine, Nirvana 4.0
also introduces a new channel type called TRANSIENT,
where no event is ever written to memory or disk, and
is simply discarded once it has been delivered to the
consumers.
Server Startup Time
The server will now delay loading of topics and queues
until it receives the first request from a client to
consumer from the topic / queue. This reduces the start
time of the realm server and reduces the memory usage
on the realm by only loading required topics and queues
until they are required.
WebExpress - Streaming Javascript with AJAX/Comet
Nirvana 4's plugin architecture now provides support for asynchronous publish subscribe in Javascript. Extending the concepts of Ajax and specifically Comet Nirvana can now stream realtime data into live web pages.
Clustering
Nirvana 4.0 features improvements to our clustering
capability. Clustering allows a group of Nirvana realms
to replicate channels and queues between them irrespective
of realm server location. The Nirvana 4.0 cluster maintains
the state for all objects across all realms within the
cluster. For example popping an event from a clustered
queue will ensure that it is popped from the same queue
on every clustered instance of the queue.
Master Selection
In Nirvana 4.0 new algorithms have been included which
ensure that the selection of cluster master is based
on which as the most up to date state. This ensures that
clusters reform quickly and without any data loss even
after a complete cluster shutdown.
Inter-Realm Communications
The inter realm communication between cluster nodes
has been optimized for performance and modified for
high availability. Nirvana 4.0 performance has improved
dramatically for non transactional event processing,
with much faster throughput rates being achievable.
As well as this, any guaranteed delivery (transactional
publishing, transactional queue consumers and durable
subscriptions) have also been modified to ensure cluster
state is maintained across all nodes given any disaster
scenarios where nodes within the cluster are offline
or unavailable.
Cluster Formation
Cluster formation has been enhanced to decrease the
time taken to form a cluster after a full restart, as
well as reformation of the cluster once quorum is lost
or the master goes offline and a new master is elected.
As well as this, the recovery of the stores, both user
and hidden system stores has been optimized in order
to dramatically reduce the time taken for nodes to go
from offline to recovery and then to slave states. This
in turn improves the time taken for clients to failover
between cluster nodes and maintain a continuous stream
of operation.
For more information on clustering, please see the
clustering white paper
Peer to Peer
P2P now utilizes nirvana queue based communication
to improve message performance between p2p clients.
Proxy Connect
The Nirvana http(s) client driver now supports the
ability to perform a proxy connect directly to an ssl
based socket interface. The new protocol (called nhpsc)
means that when you are using a proxy that supports
proxy connect, the client will connect to the proxy
via http(s) and the proxy will make a direct ssl socket
connection to a Nirvana interface, thus providing much
better performance over the persistent socket connection.
Last Event Marker
The Nirvana client API now supports the concept of
asynchronously subscribing to a topic with the ability
to determine when the last event in the topic has been
consumed. This functionality helps when the topic in
question has a finite set of data (or a data set that
does not change rapidly over time), and you need to
consume the data asynchronously for better performance.
Server Administration
The Enterprise Manager administration application has
undergone a look and feel change to make the task of
managing Nirvana Realms easier.
In addition a new realm panel that shows the status
of all thread pools and scheduled tasks within the realm
has been added . This panel is useful in assisting with
runtime performance analyis . Each Nirvana server thread
pool is available for modification to the needs of the
host system and application profile. This is made available
through the Enterprise Manager configuration section.
Finally the Enteprise manager application now supports the ability to save and reload realm server connection data in profiles. These profiles allow administrators to group servers and instantly establish communications with them through loading a profile.
Previous Releases
For a list of previous features added to version 3.0
of Nirvana, which are also available in version 4.0,
please click here.
For a list of previous features added to version 2.0
of Nirvana, which are also available in version 3.0,
please click here.
|