X-Git-Url: https://git.piment-noir.org/?a=blobdiff_plain;f=CHANGELOG.md;h=e0f4d00eff14db593d39c04e8f985e3e7a6c2c48;hb=81157dfa12d40bbc07036019125598115cc126d7;hp=ad5bfde0f264bd84b5719d8dba1b635e1ff033f0;hpb=c20084b62c59a6a34f4924601fa8ae5bf0a1943f;p=poolifier.git diff --git a/CHANGELOG.md b/CHANGELOG.md index ad5bfde0..e0f4d00e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,12 +7,128 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +## [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 +- Rename `listTaskFunctions()` to `listTaskFunctionNames()` in pool and worker API. + +### Added + +- 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 @@ -23,10 +139,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 @@ -185,7 +301,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.