Releases: th2-net/th2-mstore
Release 4.1.0
What's new in release 4.1.0
New features
Message persistence parallelism control
Introduced internal queue for storing message batches. Message batches from RabbitMQ are placed to this queue and stored to cradle. This queue is configuration limited by batch count and batch sizes at the same time. No new message batch can be added to this queue if queue limits are reached. This prevents mstore from encountering OOM exceptions when many large message batches were stored in parallel, reaching mstore heap limits.
Persistence retries
mstore can be configured to retry message batch persistence in case of failure.
Message ordering verification improvement
For verification purposes when message with new session/direction is handled mstore tries to load its sequence and timestamp from cradle. This is helpful on cold start/restart to verify previous session continuity
Prometheus metrics
Collecting various performance metrics for exporting to Prometheus.
Other
- Fixed Unicode string serialization / deserialization bug
- Common library has been updated to
3.39.3
- Cradle library has been updated to
3.1.3
Release 3.6.0
What's new in release 3.6.0
New features
Added parameters drain-interval and termination-timeout to custom-settings section
The messages rebatching feature provides the ability to collect several small message batches into one according to the actual value of cradle property cradleMaxMessageBatchSize
, the default value is 1MB.
Mstore doesn't split incoming batches into messages and can glue whole batches only. Drain interval - interval in milliseconds to drain all aggregated batches that are not stored yet, the default value is 1000. Termination timeout - timeout in milliseconds to wait for the inner drain scheduler to finish all the tasks, the default value is 5000.
Use timeout property from cradle_manager.json
Mstore uses some cradle settings during work.
Timeout defines the maximum limit in milliseconds for inserting new data into the cradle. If set to 0 or omitted, the default value of 5000 is used.
Max message batch size (cradleMaxMessageBatchSize
) is used by mstore to implement rebatch feature.
Check message timestamp growing
Sequence and timestamp of incoming messages should always grow within the session alias and direction. Mstore already checks sequences growing, this version also checks timestamp growing. Mstore rejects the whole batch if the sequence number or timestamp of the first message is less or equal options than the last stored message.
store-common is not needed anymore
There were some common methods for converting and storing. Needed methods were moved to mstore and redundant dependency was removed.
Bug fixes
Disable waiting for connection recovery when closing the SubscribeMonitor
Dependency on the common library has been updated from 3.13.4
to 3.35.0
and cradle from 2.9.1
to 2.21.0
.
Other
- Logging improvements
Full Changelog: v2.3.0-beta...v3.6.0
v2.3.0-beta
Version for demo-configuration and demo-script.