Xbus 3.3 : performance optimization

author image

We are pleased to announce that Xbus 3.3 will be released soon! The main developments aim at improving the performances of the data bus.

A new storage system

Xbus performances will be increased, partly thanks to the new envelope storage system we will implement. The new storage system will improve the performances of both envelope writing (up to 50%) and envelope reading (up to 66%). We will also add to the data bus a feature that enables to measure the duration of envelopment storage processes. To automate the measurement of envelope storage duration, you will only need to activate metrics on an xbusd. If a storage space needs to be changed, old envelopes will still be stored in the old space, which will have to be configured as a fallback storage. The new envelopes will be stored in the new storage space. If one of the requested envelopes cannot be found in the new storage space, it will be provided by the old one.

Implementation of a cache

Xbus performances will also be improved thanks to the implementation of a cache at the level of envelope storage. The data will be temporarily saved in this cache, which will considerably increase reading and writing performances. This cache system should increase performances by approximately 50% for the typical writing cycle of a small envelope followed by multiple readings. The read-only performances of a small envelope will be improved by 76%. The performances for reading a large envelope will increase by 96%.

New options in xbusd

– –storage.envelope.cache.enabled: to activate the cache for envelope storage

– –storage.envelope.cache.max-size int: to set the maximal cache size on envelope storage (default: 1073741824 Gio)

– –storage.envelope.fallback string: to set an old space as a fallback storage. Its type could be ‘sql’ or ‘sql-ng’. The fallback storage will be requested if an envelope is not found in the new storage space. The fallback storage will be read-only except for purges.

– –storage.envelope.impl string: to implement an envelope storage space. Its type could be ‘sql’ or ‘sql-ng’ (default: “sql”)

Here is a xbusd typical configuration to implement a new storage by setting the old one as “fallback” and activate a 1Gio cache:

new storage implementation

Where do we stand ?

The first release candidate concerning the new storage system and cache implementation has been published.

We have just released Xbus 3.3.0 second release candidate!

This release candidate includes some new features and improvements. It improves pipeline matching by adding matching by actor only and priority customization. This RC also adds new settings for http.webhook: ‘payload-type’ and ‘headers’.

Release notes are available here

For this new version, we gave priority to the optimization of envelope storage performances. The improvement of the storage system and the implementation of a cache significantly reduce process time, which can now be accurately measured.

Recent Articles

Comment pouvons-nous vous aider ?

Nous contacter