Bot releases are hidden (Show)
Id | Short Description |
---|---|
SLTM-1223 | Insufficient configured threads |
Old parameter name (v < 4.0.2) | New parameter name (v >= 4.0.2) |
---|---|
storage-net-http-namespace | storage-namespace |
Id | Short Description |
---|---|
BASE-1282 | Few load operations results are lost sometimes |
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.
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.
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.
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.
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 |
Published by akurilov over 6 years ago
Published by akurilov almost 7 years ago
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.
All storage driver implementations moved to the separate projects
under the same GitHub organization.
The list of the storage drivers supported currently:
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
common example
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.
Published by akurilov almost 7 years ago
Published by akurilov almost 7 years ago
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
--test-step-id
CLI argument since v3.5.Miscellaneous.
Follow the link above for the details
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) |
Published by akurilov about 7 years ago
Includes the v3.3 (won't be released) new functionality and fixes:
See v3.3 Release Notes
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.
Standard Output Changes
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:
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.
Published by akurilov over 7 years ago
Published by akurilov over 7 years ago
Advanced the test coverage with new system tests.
For detailed coverage info see the [[Functional Testing]] page.
Configuration layout change
Some "socket-..." and "storage-..." configuration parameters moved under
"storage-net-..." prefix/path. This was done to differentiate the FS storage
driver configuration from Net storage driver configuration. Both CLI and scenario files
backward compatibility is provided. Using deprecated configuration parameter names will cause
warning messages. It's recommended to check the custom/user scenarios against the
provided scenario schema (<MONGOOSE_DIR>/scenario/schema.json).
Detailed configuration layout change info:
Old parameter name (v < 3.2.0) | New parameter name (v >= 3.2.0) |
---|---|
socket-timeoutMilliSec | storage-net-timeoutMilliSec |
socket-reuseAddr | storage-net-reuseAddr |
socket-keepAlive | storage-net-keepAlive |
socket-tcpNoDelay | storage-net-tcpNoDelay |
socket-linger | storage-net-linger |
socket-bindBacklogSize | storage-net-bindBacklogSize |
socket-interestOpQueued | storage-net-interestOpQueued |
socket-selectInterval | storage-net-selectInterval |
storage-ssl | storage-net-ssl |
storage-http-api | storage-net-http-api |
storage-http-fsAccess | storage-net-http-fsAccess |
storage-http-headers | storage-net-http-headers |
storage-http-namespace | storage-net-http-namespace |
storage-http-versioning | storage-net-http-versioning |
storage-node-addrs | storage-net-node-addrs |
storage-node-port | storage-net-node-port |
The "chain" feature is designed for zone replication testing.
It allows to write the objects and read them from other zone.
Each object is being read immediately (or after configurable delay) after it was written.
So a "chain" load job doesn't wait all objects to be written before reading starts.
Chain load jobs are not limited with create/read operations
but may also include update, delete in any comprehensible combination.
The feature was implemented as an extension of the scenario engine.
(919) I/O tasks distribution among the storage drivers worked incorrectly.
(920) I/O path inconsistency.
(923) Load generator interrupts on invalid items input file.
(924) Conections are not evenly distributed among the storage nodes.
Improvements/Changes:
Fixed Bugs:
Published by akurilov almost 8 years ago
Published by akurilov almost 8 years ago
Published by akurilov almost 8 years ago
Published by akurilov almost 8 years ago
Published by akurilov almost 8 years ago