VerneMQ 0.10.1 is here!

We've just released a new version of VerneMQ. This release contains many bug fixes and several (smallish) performance improvements. Here's a selection of significant changes from the changelog: But first, a backward incompatibility warning: You are required to delete (or backup) the old subscriber data directory /var/lib/vernemq/meta/lvldb_cluster_meta as the old data format isn't compatible with 0.10.1. You are recommended to also delete the message store folder/var/lib/vernemq/msgstore.

Changes for vmq_server

Changed application statistics:

Use of more efficient counters. This changes the format of the values obtained through the various monitoring plugins. Added new system metrics for monitoring overall system health. Check the updated docs.

Bypass Erlang distribution for all distributed MQTT Publish messages:

use of distinct TCP connections to distribute MQTT messages to other cluster nodes. This requires to configure a specific IP / port in the vernemq.conf. Check the updated docs.

Use of more efficient key/val layout within the subscriber store:

This allows us to achieve higher routing performance as well as keeping less data in memory.

Improve the fast path for QoS 0 messages:

Use of non-blocking enqueue operation for QoS 0 messages.

Performance improvements by reducing the use of timers throughout the stack:

Counters are now incrementally published, this allowed us to remove a timer/connection that was triggered every second. This might lead to accuracy errors if sessions process a very low volume of messages. Moreover we got rid of the CPU based automatic throttling mechanism which used timers to delay the accepting of new TCP packets.

Improved CLI handling:

improved 'cluster leave' command and better help text. To install the new release consult the installation guide.

Have fun!!