X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=CHANGELOG.md;h=9a6fb3863e576b2eb229a6fbc4232598c9d6318b;hb=25f5b5de1c522d29f7a16597245a2f7c9434b124;hp=27033633acacc75d95b79e9ea7414e243ca60954;hpb=ec3e56520d46660ea043d5184f5d8246c834d252;p=poolifier.git diff --git a/CHANGELOG.md b/CHANGELOG.md index 27033633..9a6fb386 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,10 +7,133 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +### Fixed + +- Ensure message handler is only registered in worker. + +## [2.6.5] - 2023-06-27 + +### Known issues + +- Cluster pools tasks execution are not working by using ESM files extension: https://github.com/poolifier/poolifier/issues/782 + +### Fixed + +- Artificial version bump to 2.6.5 to workaround publication issue. +- Ensure cluster pool destroy() gracefully shutdowns worker's server. +- Ensure pool event is emitted before task error promise rejection. +- Fix queued tasks count computation. + +### Removed + +- Remove unneeded worker-threads worker `MessageChannel` internal usage for IPC. + +## [2.6.4] - 2023-06-27 + +### Known issues + +- Cluster pools tasks execution are not working by using ESM files extension: https://github.com/poolifier/poolifier/issues/782 + +### Fixed + +- Ensure cluster pool destroy() gracefully shutdowns worker's server. +- Ensure pool event is emitted before task error promise rejection. +- Fix queued tasks count computation. + +### Removed + +- Remove unneeded worker-threads worker `MessageChannel` internal usage for IPC. + +## [2.6.3] - 2023-06-19 + +### Fixed + +- Ensure no tasks are queued when trying to soft kill a dynamic worker. +- Update strategies internals after statistics computation. + +### Changed + +- Optimize O(1) queue implementation. + +## [2.6.2] - 2023-06-12 + +### Fixed + +- Fix new worker use after creation in dynamic pool given the current worker choice strategy. + +## [2.6.1] - 2023-06-10 + +### Added + +- Add worker choice strategy documentation: [README.md](./src/pools/selection-strategies/README.md). + +### Fixed + +- Fix average statistics computation: ensure failed tasks are not accounted. + +## [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 @@ -102,7 +225,7 @@ 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 @@ -456,7 +579,7 @@ const { DynamicThreadPool } = require('poolifier') #### New type definitions for input data and response -For cluster worker and worker-thread pools, you can now only send and receive serializable data. +For cluster worker and worker-thread pools, you can now only send and receive structured-cloneable data. _This is not a limitation by poolifier but NodeJS._ #### Public property replacements