fix: ensure worker choice strategy wait for worker nodes readiness
[poolifier.git] / CHANGELOG.md
index 7b37a041b6b627b0c44775e7b9fa5f713fd5f5ed..802b352b6943ae3524f9d5afbc0ad84f1f95fc9d 100644 (file)
@@ -9,6 +9,131 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
 
 ### 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
@@ -34,10 +159,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
 
 ### Added
 
-- Add `startWorkers` to pool options to whether start the minimum number of workers at pool creation or not.
+- 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 on back pressure or not.
-- Continuous internal benchmarking: https://poolifier.github.io/benchmark-results/dev/bench.
+- 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
 
@@ -196,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.