Releases: emc-mongoose/mongoose
4.0.3
4.0.2
4.0.1
4.0.0
New Features and Enhancements
Functional
1. P2P Distributed Mode
The new distributed mode design is based on P2P (peer-to-peer) principles such as task/workload slicing (partitioning)
and independent execution. This allows to choose any node from the set to initiate the run. Also there's no more need to
dedicate the host for the controller. The remote API is also available to deploy applications on top of Mongoose node
set such as GUI.
2. Automated Installer
New Mongoose is delivered as a single jar instead of tarball. This jar installs all the required files automatically if
needed in the user home directory. Also, the installer detects the extensions and installs them too.
3. Extensible Configuration
Some extensions require specific configuration options. To support the specific configuration options the extensible
configuration was implemented. The new external library is used for this purpose.
The configuration is assembled dynamically, including the sub-configurations provided by the extensions resolved in the
runtime. Note that command line arguments shouldn't be used to specify the dictionary type values like the custom
HTTP headers.
Non-functional
-
Mongoose v4.0.0 doesn't work with deprecated JSON scenarios anymore. So the tool converting the Mongoose v3.x
scenarios to v4.0.0 scenarios is provided: https://github.com/emc-mongoose/scenario-converter-3to4 -
New public issue tracker (Jira) is introduced instead of GitHub
issue tracker.
Fixed Bugs
Id | Short Description |
---|---|
BASE-1226 | Load operations results queue contains the unhandled elements |
SLTM-1164 | Ugly error message |
SLTM-1177 | Reported duration/latency min/max values are not absolute |
SLTM-1185 | Configuration: failed to convert string value to a list of strings |
SLTM-1195 | SSL performance degradation after migration to Netty |
SLTM-1213 | Incorrect final metrics : latency > duration |
3.6.1
Release Notes
Fixed Bugs
- (1175) Mongoose reports and Descriptive Statistics discrepancies
Documentation
- Deployment
- User Guide
- Troubleshooting
- Reference
3.6.0
Release Notes
New Features and Enhancements
Functional
-
The new simple way to use a custom scripting engine either a storage
driver implementation. Just put the extension jar file(s) into the
ext
directory of Mongoose and it's ready to use. -
JSR-223 Compliant Scenario Engine
Powerful scripting capability using any language supporting JSR-223
standard. Javascript is proposed as default scenarios language.
Non-functional
-
All storage driver implementations moved to the separate projects
under the same GitHub organization.
The list of the storage drivers supported currently:- EMC Atmos
- EMC S3 (extensions)
- Filesystem
- HDFS (new)
- NFS (not working currently, under development)
- Amazon S3 (generic)
- OpenStack Swift
The deployment procedure significantly changed,
so please keep attention on this. Note also that base/core mongoose
distribution doesn't include any storage driver implementation since
the new version. -
The connection pool used by Mongoose moved to the separate project
netty-connection-pool. -
The source code repository name changed from
mongoose
to
mongoose-base
due to storage driver implementations separation.
Accessing via the old name redirects to the new one. -
Moved all content example files and all scenario files under the
commonexample
directory. -
Changed the default new items name length to 12 characters in
order to make the new item name characters distribution uniform (in
the space of the default radix of 36: [0-9a-z]). Previously all new
item names began with character "0" either "1" what was not uniform
enough.
Fixed Bugs
- (1120) Path items input doesn't finish the listing
- (1147) Connection pool deadlock if a connection is dropped
Documentation
- Deployment
- User Guide
- Troubleshooting
- Reference
3.5.1
Release v3.5.0
Release Notes
New Features and Enhancements
Functional
-
Concurrency Model reworked and enhanced.
-
New Unlimited Concurrency feature added.
Allows to measure the actual maximum concurrency which the service/storage being test can sustain.
-
Coroutines library became a separate project.
-
-
Recycle Mode reworked.
-
Output configuration enhancements
- Generate the new test id for each new test if the test id is not
configured. It's not recommended to use the--test-step-id
CLI argument since v3.5. - The logging configuration file is moved from the "user space"
to the resource bundle. The logging is configured through the main configuration. - New output options.
- Console output coloring flag
- Load average metrics time period
- Load average metrics persistence flag
- Load average metrics table header period
- Summary metrics persistence flag.
- Trace metrics persistence flag.
- Log the defaults content, launch command and the scenario content
- Generate the new test id for each new test if the test id is not
-
Miscellaneous.
- Avoid flood of error messages.
- Docker image fix and size decrease.
- Fixed RMI port for the distributed mode and remote monitoring purposes.
- Set the corresponding ring buffer size if the content input file is configured
Fixed Bugs
- (1036) Multiuser load case - destination path checking requests failing
- (1047) Recycling the load tasks order is unpredictable
- (1051) I/O trace log contains the records for the pending load tasks
- (1064) Max latency is higher than max duration
- (1065) File storage driver causes out of direct memory
- (1068) Connection leak on the connection pool close
- (1076) External XML results file reporting: include configured item size instead of transfer size
- (1085) Subsequent load step doesn't append the same items output file
Performance
Follow the link above for the details
Configuration
Old parameter name (v < 3.5.0) | New parameter name (v >= 3.5.0) |
---|---|
N/A | load-service-threads |
N/A | storage-net-node-connAttemptsLimit |
N/A | item-data-ranges-concat |
load-circular | load-generator-recycle-enabled |
load-queue-size | load-generator-recycle-limit, storage-driver-queue-input, storage-driver-queue-output |
load-rate-limit | load-limit-rate |
storage-driver-concurrency | load-limit-concurrency |
storage-driver-io-workers | storage-driver-threads |
item-data-content-file | item-data-input-file |
item-data-content-seed | item-data-input-seed |
item-data-content-ring-cache | item-data-input-layer-cache |
item-data-content-ring-size | item-data-input-layer-size |
test-step-limit-rate | load-rate-limit |
test-step-metrics-period | output-metrics-average-period |
test-step-metrics-threshold | output-metrics-threshold |
test-step-name | test-step-id |
test-step-precondition | N/A (see the Metrics Output documentation for details) |
Documentation
- Quickstart
- User Guide
- Troubleshooting
- Reference
- Design
3.4.2
3.4.0
Release Notes
Includes the v3.3 (won't be released) new functionality and fixes:
See v3.3 Release Notes
New Features and Enhancements
Functional
The behavior may be improved due configurable batch size introduction.
It's recommended to use the batch size of 1 for a multipart upload
tests.
Fixed Bugs
- (SLTM-823) SSL/TLS support regression after introducing Netty in 3.x.
- (SLTM-976) Latency measurement failures.
- (SLTM-979) Failed to stop the remaining I/O tasks.
- (SLTM-1003) Manual interruption - content source closed before I/O interrupted causing NPE.
- (SLTM-1006) File storage driver: verification after update fails in ~0.2% cases.
- (SLTM-1014) MPU/DLO: I/O buffer is adjusted to the whole item size but not the part size.
- (SLTM-1015) Unique results map contains not unique elements.
- (SLTM-1016) Scenario values substitution pattern matches only one occurrence per value.
- (SLTM-1044) Decrease the size of the Docker image.
- (SLTM-1045) Use fixed RMI port.
Miscellaneous
-
Standard Output Changes
- More neutral colors
- Metrics are displayed as a table
- Highlighted metrics
- Highlighted errors counter with color depending on the errors ratio
- Highlighted the operation type with color depending on the particular type
v3.3.x v3.4.0 -
Performance Improvements
-
Coroutine-like execution flow approach.
This allowed to make the load generator concurrent and make the distributed mode linearly scalable. -
Logging subsystem reworked to separate the log event streams more efficiently.
-
Conditional metrics snapshot recalculation decreases the CPU usage.
-
-
Centralized Metrics Processing
In the new version all the metrics are processed by the "Load Monitor" component containing the
"Metrics Manager" singleton instance. Previously, the load monitor component included the
execution control functionality which is separated to the "Load Controller" component. Such
architecture change gives the following advantages:- Joint interface for the metrics fetching by external tools
- More readable combined metrics output
-
Detailed configuration layout change info:
Old parameter name (v < 3.4.0) New parameter name (v >= 3.4.0) N/A item-data-content-ring-cache item-data-content-ringSize item-data-content-ring-size N/A load-batch-size -
Advanced Test Coverage
The automated tests are run by Travis CI using multiple
parameterized build stages. This allowed to increase the coverage
approximately by 2 orders of magnitude.
Documentation
- Quickstart
- User Guide
- Troubleshooting
- Reference
- Design