X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=CHANGELOG.md;h=802b352b6943ae3524f9d5afbc0ad84f1f95fc9d;hb=fb5a7307dfe8e86d539482dd807d821bf3c2fbc1;hp=52a6f5c98d1acd8dc8f61d405643d6a47191044a;hpb=01bc762f43e8acaa2420246a4dfa0167c26d2e32;p=poolifier.git diff --git a/CHANGELOG.md b/CHANGELOG.md index 52a6f5c9..802b352b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,17 +7,162 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +### Fixed + +- Ensure worker choice strategy wait for worker nodes readiness. + +### Changed + +- Remove infinite retries support in worker choice strategy to avoid configuration leading to possible infinite recursion or loop. + +## [3.0.12] - 2023-12-12 + +### Changed + +- Add infinite retries support in worker choice strategy. + +## [3.0.11] - 2023-12-11 + +### Fixed + +- Ensure pool asynchronous resource properly track tasks execution + +## [3.0.10] - 2023-12-08 + +### Changed + +- Add a fastpath when tasks stealing or redistribution is impossible + +## [3.0.9] - 2023-11-26 + +### Fixed + +- Remove all pool events listener at pool destroying. +- Remove all worker node events listener at worker node destroying. +- Fix worker node event emitter listeners handling memory leak at pool options runtime change. + +## [3.0.8] - 2023-11-25 + +### Fixed + +- Ensure continuous tasks stealing on idle start at worker node idling + +## [3.0.7] - 2023-11-24 + +### Changed + +- Make continuous tasks stealing start at worker node idling. + +## [3.0.6] - 2023-11-24 + +### Fixed + +- Ensure pool statuses are checked at initialization, `start()` or `destroy()`. +- Ensure pool `ready` event can be emitted after several `start()/destroy()` cycles. + +## [3.0.5] - 2023-10-27 + +### Fixed + +- Ensure pool `ready` event can be emitted only once. + +## [3.0.4] - 2023-10-20 + +### Changed + +- Switch to Bencher for benchmarking: [https://bencher.dev/perf/poolifier](https://bencher.dev/perf/poolifier). +- Use builtin retry mechanism in worker choice strategies instead of custom one. + +## [3.0.3] - 2023-10-19 + +### Fixed + +- Avoid null exception at sending message to worker. +- Avoid null exception at checking worker node readiness. + +## [3.0.2] - 2023-10-17 + +### Fixed + +- Fix race condition at dynamic worker node task assignment and scheduled removal. See issue [#1468](https://github.com/poolifier/poolifier/issues/1468) and [#1496](https://github.com/poolifier/poolifier/issues/1496). + +## [3.0.1] - 2023-10-16 + +### Fixed + +- Workaround possible race condition at work nodes array element removal and querying. See issue [#1468](https://github.com/poolifier/poolifier/issues/1468). + +### Changed + +- Switch the worker node eventing code to `EventTarget` API. + +## [3.0.0] - 2023-10-08 + +### Changed + +- Remove Node.js 16.x.x (EOL) support. + +## [2.7.5] - 2023-10-03 + +### Changed + +- Use `EventEmitterAsyncResource` type from `@types/node` for pool event emitter. TypeScript users will need to update to latest `@types/node` version. + +## [2.7.4] - 2023-09-25 + +### Fixed + +- Fix source maps (bundler issue). + +## [2.7.3] - 2023-09-24 + +### Changed + +- Convert pool event emitter to event emitter async resource. + +## [2.7.2] - 2023-09-23 + +### Changed + +- Add source maps to npm package to ease debugging. + +### Added + +- Continuous benchmarking versus other worker pools: [https://poolifier.github.io/benchmark](https://poolifier.github.io/benchmark). + +## [2.7.1] - 2023-09-20 + +### Fixed + +- Ensure worker message listener used one time are removed after usage. + +## [2.7.0] - 2023-09-19 + +### Fixed + +- Fix task stealing related tasks queue options handling at runtime. + ### Changed -- Disable publication on GitHub packages registry on release until authentication issue is fixed. - Rename `listTaskFunctions()` to `listTaskFunctionNames()` in pool and worker API. ### Added -- Add `addTaskFunction()`, `removeTaskFunction()`, `setDefaultTaskFunction()` methods to pool API. -- Add `startWorkers` to pool options to whether start the minimum number of workers at pool creation or not. -- Add `taskStealing` and `tasksStealingOnPressure` to tasks queue options to whether enable task stealing or not and whether enable tasks stealing on back pressure or not. -- Continuous internal benchmarking: https://poolifier.github.io/benchmark-results/dev/bench. +- Add `hasTaskFunction()`, `addTaskFunction()`, `removeTaskFunction()`, `setDefaultTaskFunction()` methods to pool API: [PR #1148](https://github.com/poolifier/poolifier/pull/1148). +- Stricter worker constructor arguments validation. + +## [2.6.45] - 2023-09-17 + +### Changed + +- Disable publication on GitHub packages registry on release until authentication issue is fixed. + +### Added + +- Add `startWorkers` to pool options to whether start the minimum number of workers at pool initialization or not. +- Add `start()` method to pool API to start the minimum number of workers. +- Add `taskStealing` and `tasksStealingOnPressure` to tasks queue options to whether enable task stealing or not and whether enable tasks stealing under back pressure or not. +- Continuous internal benchmarking: [https://poolifier.github.io/benchmark-results/dev/bench](https://poolifier.github.io/benchmark-results/dev/bench). ## [2.6.44] - 2023-09-08 @@ -176,7 +321,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Fixed -- Fix race condition between ready and task functions worker message handling at startup. +- Fix race condition between readiness and task functions worker message handling at startup. - Fix duplicate task function worker usage statistics computation per task function. - Update task function worker usage statistics if and only if there's at least two different task functions. - Fix race condition at task function worker usage executing task computation leading to negative value.