Change Log
v2.10.0 (2023-11-30)
Introdice SLM event reporting logic via Netlink
Introduce SLM (driver) metric sampling plugin
Enable selecting output format (text/json/yaml) in most optimizer-runtime-ctl commands
Fix "page not found" error message upon login to Conductor
Multiple bug fixes and stability enhancements
v2.9.0 (2023-09-19)
Enable running multiple Runtime instances at once. Resource sharing still needs to be avoided
Introduce optimizer-runtime-ctl list
to list the existing sessions
Introduce optimizer-runtime-ctl remove
to remove an existing session
Introduce config. completion status in the CSV report
Retire EXPERIMENT_ID
env. variable, use command line switch instead
Switch OpenTelemetry reporting mechanism to native C++ implementation
Multiple bug fixes and stability enhancements
v2.8.0 (2023-06-04)
Generate a dedicated data directory per session
Support Synopsys Common Licensing
Enhance licensing on CentOS7 on Arm64
Support Debian 11 (Bullseye) packages
Retire Ubuntu 18.04 packages
Update PVTC metric sampling plugin
Update some dependency libraries
Multiple bug fixes and stability enhancements
v2.7.0 (2022-11-30)
Support REST service invocation via optimizer-runtime-ctl
Retire obsolete data fields in CSV file generation
Bug fixes and stability enhancements
v2.6.0 (2022-10-02)
Introduce optimizer-runtime-ctl
command line utility
Report metrics list along with the inventory
Introduce global_settings:exit_timeout
- Optimizer must complete shutdown procedure (60s by default)
Update PVTC sampling plugin to use the latest library
Bug fixes and stability enhancements
v2.5.0 (2022-07-27)
Verify target metric definition correctness prior to sampling
Enable exporting metrics via OpenTelemetry
Introduce optimizer-runtime-ctl command line utility for accessing SaaS
Install NATS server along with Optimizer Runtime
Introduce Synopsys PVTC based sampling plugin (libpvtc-metrics.so)
Introduce Linux perf based sampling plugin (libperf-metrics.so)
Changes to knob set policy: a normal knob can be set always, enable 1-option knobs
Introduce Ubuntu jammy (22.04) packages
License handling enhancement
Bug fixes and stability enhancements
v2.4.0 (2022-02-17)
Replace CentOS 8 package with RockyLinux 8 package, as CentOS 8 has reached EOL
Introduce replay csv
functionality to replay an experiment according to CSV dump
Numerous bug fixes and stability enhancements
v2.3.0 (2021-11-30)
Export all the metrics (including the disabled ones)
Revisit performance calculation method over multiple workload classes (buckets)
Command line options: do not mandate =
sign
Numerous bug fixes and stability enhancements
v2.2.0 (2021-08-31)
Enhance handling of invalid knob configurations
Introduce evolution:full_cycle_coeff
config. parameter, that adjusts the full
Evolution cycle length
Introduce num_best_cycles
config. parameter, that controls how many cycles
should the Optimizer spend in BEST mode, after completing a single cycle of TUNE mode
Fix security vulnerabilities
Numerous bug fixes and stability enhancements
v2.1.0 (2021-03-01)
Introduce Kubernetes Helm package. It is now possible to install optimizer-runtime as a DaemonSet in Kubernetes.
Introduce Puppet deployment module.
Introduce Docker image
Various bug fixes and enhancements
v2.0.0 (2021-02-01)
Introduce knob policies: always, set-once, on-change (default)
Introduce support for Accelerate tool. It is now configurable to control acceleration knobs for applications whenever they are restarted using set-once policy
Allow global pre and post actions for knobs configuration changes
Introduce "net.throughput". Embedded target metric to measure generic network throughput
Various bug fixes and enhancements
v1.1.0 (2020-11-22)
Introduce ZFS embedded knobs
Remove encryption from logs. From now on, logs are written in plain text as in Optimizer-Studio
Introduce categorized metrics. It is now possible to define string metrics in addition to numeric ones
Various bug fixes and enhancements
v1.0.0 (2020-10-18)
Rename --params=PATH
to --settings=PATH
command line argument
Introduce new OS embedded knobs for network stack and block storage IO
Sopport environment variables in global_parameters, e.g. $VAR or ${VAR} will be replaced with VAR value.
Introduce new Metric Plugins: NewRelic, Datadog, Dynatrace and Prometheus and revise metric plugin names and location into plugins folder
Embedded knobs no logner imported automatically by default, rather only when declared under import:
section in knobs.yaml or in command line argument
Introduce --forward
argument to send commands to optimizer-runtime service from optimizer-runtime client
Deprecate several global parameter in favor of new ones (more details in configuration page)
Introduce license tool
Various bug fixes and enhancements
v0.24.0 (2020-05-12)
Introduce 'file' metrics plugin
Reimplement configuration attempt scheduler
Revisit the math. basis of the optimization. Retire mandatory normalization by baseline value.
Allow disabling saving opt.data file
Gradually increase saving opt.data interval to 24h
Fix bugs in (legacy) Greedy optimization strategy
Enable replaceable target metric point estimator function (average, percentile, mode)
Support new platforms: CentOS-8, Ubuntu 20.04
Retire support of Ubuntu 14.04
Generate error message in case of too long knob script output
Imporove informativeness of log messages
Various bug fixes and enhacements
v0.23.0 (2020-02-06)
Switch to Semantic Versioning compliant version number
Implement multi-level workload classification
Implement initial support for Best Knob Configuration trimming of non-influential knobs
REST API: introduce categorization metrics
REST API: convert metric value representation to string
Improve Bucket clustering to Tuning Groups
Account for relative frequency of appearance of a Bucket
Fix / enhance embedded knob definitions
Improve performance bottlenecks by caching some recurring calculations
Improve configuration parameters range validy tests
Various bug fixes and enhancements
v0.20 (2019-04-21)
Implemented enhanced workload bucket clustering algorithm
Implemented selectable bucket grouping strategies: all-to-one, one-to-one, cluster
Improved occasionally missing metrics tolerance
Fixed improvement calculation formula for minimized target metric
Fixed Optimizer Runtime service autorestart configuration
Fixed occasional memory leak issues and race conditions
Implemented extensive internal infrastructure improvement
v0.19 (2019-02-21)
Enabled creation of CSV metrics files distiguishable by creation DATE
Improved error handling
Enabled Evolution optimization algorithm by default for enhanced optimization capability
v0.18 (2019-02-14)
Enhanced and improved internal implementation
Enabled Greedy optimization algorithm by default for enhanced optimization stability
Implemented tolerance for missing target metric values
v0.17 (2019-02-10)
Implemented multiple internal enhancements and improvements
Enabled creation of CSV metrics files distiguishable by Optimizer Runtime PID
Enabled fast-forwarding optimization progress to 100% when all the configurations are studied
Fixed bug causing Optimizer Runtime to occasionally stop for a long time period
Fixed bug causing mismatching between a bucket and a tuning group
Fixed bug causing incorrect classification model replay
Fixed bug causing incorrect workload classification under Evolution optimization
Cleaned up logger output
Enhanced testknob report
v0.16 (2018-09-04)
Evolution-based optimization algorithm implemented. Users can now select between the Greedy algorithm and the new Evolution optimization strategies.
Added support for spaces in knob names and option values
Added support for empty knob option values
Added syntax validation for YAML files
New import
capability to import configuration files, filter imported knobs by name
Support for onload and enable scripts per configuration file
Allow sourcing shell files in configuration files
Allow specifying certain settings in the main knob configuration files
Added support for skipping configurations that yield more than max_invalid_samples_per_option
invalid measurements
Added a settings parameter sum_cvs_coefficient
that controls the threshold for selecting beneficial configurations
When no include_metrics
and exclude_metrics
are defined, the default is now to include all metrics
Require fewer baseline samples at the beginning
Ctrl+C now can stop --testknob=all run
Create more detailed report of testknob function
Make possible to define user target metric when using embedded knobs
v0.15 (2018-04-17)
Fix bug preventing the usage of embedded knobs on virtual machines
Various other bug fixes
v0.14 (2018-03-29)
Renamed DatArcs to Concertio
Faster and more accurate workload classification
Various bug fixes
v0.13 (2017-12-31)
Enhance knob scripts: introduce pre/post set knob value scripts
Benchmark script: attach Optimizer PID to /tmp/datarcs-benchmark.log
Bug fixes
v0.12 (2017-11-19)
New shell plugin for user-defined metrics
Enhanced knob scripts enabling shared state
Added support for new network-related metrics
Improved workload classification
Upgraded PCM library supporting recent Intel architectures
Security related fixes
Simplified knobs.yaml structure
Support for addition and removal of metrics during runtime
v0.11 (2017-09-19)
Improved phase detection algorithm
v0.10 (2017-09-01)
Introduce plugin interface for adding user metrics
Added NUMA data migration techniques to the topology knob
Many bug fixes
v0.9 (2017-08-01)
Support user-determined target metric
Allow inclusion and exclusion of performance metrics
Add support for Ubuntu 14.04
Bug fixes
v0.8 (2017-05-25)
v0.7 (2017-05-10)
Introduce enhanced workload phase detection algorithm
Enable addition and removal of optimization knobs both between runs and in runtime
Switch configuration files format from XML to YAML
Bug fixes
v0.6 (2017-03-06)
Benchmarking package can now generate static tuning data file
Added support for plotting benchmark results in the benchmarking package
Few code optimizations
v0.5 (2017-02-04)
Reduced performance variability in continuous study mode
Added support for evaluation license
Many bug fixes
v0.4 (2017-01-18)
Add static tuning capability
Limit optimization data file size
Added more knobs
v0.3 (2016-12-16)
Added more knobs, most notably topology knob
Added synchronous sampling
Improved program phase detection
Many bug fixes
v0.2 (2016-10-31)
New benchmarking package
Added various networking and cpu knobs
Many bug fixes and improvements
v0.1 (2016-10-07)