X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=CHANGELOG.md;h=e4cd378862d895347e7dcd86600fc45b4d6255d5;hb=16671b07d958f4d61f4d982db2cb139ea665886d;hp=5efd1b843646f37ba9a0ded0916782f869ed1149;hpb=d4aeae5aa9e260c8c2f6d28f3133de368552c108;p=poolifier.git diff --git a/CHANGELOG.md b/CHANGELOG.md index 5efd1b84..e4cd3788 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,9 +7,137 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +## [2.6.0] - 2023-06-09 + +### Added + +- Add `LEAST_ELU` worker choice strategy (experimental). +- Add tasks ELU instead of runtime support to `FAIR_SHARE` worker choice strategy. + +### Changed + +- Refactor pool worker node usage internals. +- Breaking change: refactor worker choice strategy statistics requirements: the syntax of the worker choice strategy options has changed. +- Breaking change: pool information `info` property object fields have been renamed. + +### Fixed + +- Fix wait time accounting. +- Ensure worker choice strategy `LEAST_BUSY` accounts also tasks wait time. +- Ensure worker choice strategy `LEAST_USED` accounts also queued tasks. + +## [2.5.4] - 2023-06-07 + +### Added + +- Add Event Loop Utilization (ELU) statistics to worker tasks usage. + +### Changed + +- Compute statistics at the worker level only if needed. +- Add `worker-threads` options to thread pool options. + +### Fixed + +- Make the `LEAST_BUSY` strategy only relies on task runtime. + +## [2.5.3] - 2023-06-04 + +### Changed + +- Refine pool information content. +- Limit pool internals public exposure. + +## [2.5.2] - 2023-06-02 + +### Added + +- Add `taskError` pool event for task execution error. +- Add pool information `info` property to pool. +- Emit pool information on `busy` and `full` pool events. + +## [2.5.1] - 2023-06-01 + +### Added + +- Add pool option `restartWorkerOnError` to restart worker on uncaught error. Default to `true`. +- Add `error` pool event for uncaught worker error. + +## [2.5.0] - 2023-05-31 + +### Added + +- Switch pool event emitter to `EventEmitterAsyncResource`. +- Add tasks wait time accounting in per worker tasks usage. +- Add interleaved weighted round robin `INTERLEAVED_WEIGHTED_ROUND_ROBIN` worker choice strategy (experimental). + +### Changed + +- Renamed worker choice strategy `LESS_BUSY` to `LEAST_BUSY` and `LESS_USED` to `LEAST_USED`. + +## [2.4.14] - 2023-05-09 + +### Fixed + +- Ensure no undefined task runtime can land in the tasks history. +- Fix median computation implementation once again. + +### Added + +- Unit tests for median and queue implementations. + +## [2.4.13] - 2023-05-08 + +### Fixed + +- Fix worker choice strategy options validation. +- Fix fair share worker choice strategy internals update: ensure virtual task end timestamp is computed at task submission. + +## [2.4.12] - 2023-05-06 + +### Added + +- Support multiple task functions per worker. +- Add custom worker weights support to worker choice strategies options. + +### Changed + +- Use O(1) queue implementation for tasks queueing. + +### Fixed + +- Fix median computation implementation. +- Fix fair share worker choice strategy internals update. + +## [2.4.11] - 2023-04-23 + +### Changed + +- Optimize free worker finding in worker choice strategies. + +## [2.4.10] - 2023-04-15 + +### Fixed + +- Fix typescript type definition for worker function: ensure the input data is optional. +- Fix typescript type definition for pool execute(): ensure the input data is optional. + +## [2.4.9] - 2023-04-15 + +### Added + +- Add tasks queue enablement runtime setter to pool. +- Add tasks queue options runtime setter to pool. +- Add worker choice strategy options runtime setter to pool. + +### Changed + +- Remove the tasks queuing experimental status. + ### Fixed - Fix worker function type definition and validation. +- Fix worker choice strategy options handling. ## [2.4.8] - 2023-04-12 @@ -33,14 +161,14 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Fixed - Ensure one task at a time is executed per worker with tasks queueing enabled. -- Properly count worker running tasks with tasks queueing enabled. +- Properly count worker executing tasks with tasks queueing enabled. ## [2.4.5] - 2023-04-09 ### Added -- Use monotonic high resolution timer for worker tasks run time. -- Add worker tasks median run time to statistics. +- Use monotonic high resolution timer for worker tasks runtime. +- Add worker tasks median runtime to statistics. - Add worker tasks queue (experimental). ## [2.4.4] - 2023-04-07