github.com/lesovsky/noisia
v0.4.0
#2861 most downloaded on Go modules
lesovsky/noisia
What this package is like to depend on
Last release 1 months ago
09 Jul 2026
Ships unpredictably
gaps range from 8 days to 2.6 years
Nearly every release is documented
notes for 5 of 5 stable releases
Nothing withdrawn
no release was ever pulled
6 years old
14 releases · first in 2020
4 releases in the last 12 months
see the full history below
Release timeline
14 releases · Jul 2020 to Jul 2026Releases
latest 14-
v0.4.009 Jul 2026Release notes
Open source →noisia v0.4.0 — release supporting the book PostgreSQL: разрушение и восстановление.
Two user-facing workloads changed since v0.3.0.
tempfiles
- Honest spill. The workload now produces temporary files through a genuine on-disk sort spill instead of artificially lowering
work_mem(#21). Temp-file pressure now reflects real query behaviour. --tempfiles.table-size(default64MB, base-2 MiB). Replaces the previously hardcoded dataset size (#22). A larger dataset makes eachORDER BY random()sort spill more temp bytes. Seeding runs before the query loop, so set--durationgenerously.
wait-xacts
- Blocked-waiters mechanism. Beyond holding locks, the workload now opens a controlled pool of blocked waiter connections, driving the cascade toward exhausting
max_connections(#23). - New flags:
--wait-xacts.waiters— cap of blocked waiter connections (default10;0= unlimited, not off).--wait-xacts.waiters-rate— waiter connections opened per second (default1).--wait-xacts.report-interval— self-report line cadence (default1s).
All new flags are backward-compatible; no breaking changes.
Full changelog: v0.3.0...v0.4.0
- Honest spill. The workload now produces temporary files through a genuine on-disk sort spill instead of artificially lowering
-
v0.3.029 Jun 2026Release notes
Open source →Changelog
- 74899cc Add backend-killer workload (OOM via prepared-statement leak) (#12)
- 25a7e62 Add slot-bloat workload (stuck replication slot → disk full) (#13)
- 8a94077 Harden slot-bloat tests + extract README demo guides (#14)
- 1c889f1 Merge pull request #20 from lesovsky/feature/backend-killer-execute
- 46326c2 docs: defer subxact-overflow (SLRU) — version-dependent, not planned
- d5be672 docs: finalize bloat-churn — project-knowledge updates (architecture, patterns, ADR-008-2 payload rule)
- 3db7bef docs: fix stale zero-filled payload comment in bloatchurn
- 8310d3d docs: mark bloat-churn implemented in BACKLOG
- 463f906 docs: task 04 — bloat-churn README entry + demo-guide
- 1332c15 feat: EXECUTE each prepared statement in backend-killer to cache the generic plan
- 2169721 feat: checkpoint-storm workload (forced CHECKPOINT → IO sawtooth) (#18)
- f3b4363 feat: hot-row-contention workload (CPU contention generator) (#16)
- 186edeb feat: seqscan-storm workload (forced Seq Scan → CPU saturation) (#17)
- 13a6ddd feat: task 01 — bloatchurn package core + unit tests
- 9f40442 feat: task 02 — cmd wiring for bloat-churn flags
- e6df19f feat: wal-flood workload (WAL flood → replication lag → disk-full) (#15)
- 7d34761 feat: xmin-horizon-holder workload (frozen xmin horizon → autovacuum can't reclaim) (#19)
- c871221 fix: address review round 2 for task 01
- 54bf357 fix: checkpoint-storm inline payload so seed reaches table-size (was TOASTed away)
- 1222dbf fix: incompressible payload in wal-flood and slot-bloat so real WAL matches payload-written
- 4376e70 fix: seed inline payload so table-size maps to heap (was TOASTed away)
- baca47d merge: feature/bloat-churn into master
- b39a734 test: add TOAST-mode seed-size regression guard for incompressible payload
- ea79dd4 test: add TOAST-mode total-size regression guard for checkpoint-storm payload
- 333919a test: address review round 2 for task 03
- d155b9f test: task 03 — bloatchurn integration tests
-
v0.2.1-0.20260624032829-186edebe13d224 Jun 2026 pre-releaseNothing published for this version
-
v0.2.021 Jun 2026Release notes
Open source →Changelog
- c219d47 A few text improvements
- 7f33c30 Add DB interface, make idlexact workload using DB interface.
- 052d49c Add active mode for idlexact workload.
- b14bb1e Add config validations: add validations on the rest of workloads.
- 64778b9 Add config validations: idlexacts, rollbacks, waitxacts.
- 0f01814 Add contribution section.
- 4b4bf6a Add descriptive comments for workloads packages; refactor README.
- c391243 Add forkconns workload.
- ea15dc2 Add log-level options.
- c74853a Add log.Logger interface with zerolog implementation as a default logger.
- 9528d34 Add logging to deadlocks workload.
- 98d2c14 Add logging to failconns workload.
- 650607d Add logging to idlexacts workload.
- 0408b0a Add logging to rollbacks workload.
- 46c50b3 Add logging to temp files workload.
- 7cba998 Add logging to temp files workload.
- 245ebf7 Add logging to waitxacts workload.
- b71fc51 Add newlines to Printf messages.
- b56935e Add rand.Seed().
- 3e3e97a Adjust shutdown message.
- 5dac8ce Cosmetic changes.
- 42dc131 Cosmetic edits.
- 649e551 DB: add Exec and Query methods to Conn interface.
- 7124218 Don't wait for signals goroutine - it continues waiting after workload has been finished.
- 1217e38 Edit README: adjust workloads descriptions accordingly latest changes; add info about impact on already running workload.
- 2c32161 Extend using DB interface on deadlocks, failconns workloads.
- c2ad50d Extend using DB interface on the rest of workloads.
- 60e4c80 Fix broken PostgresTx.Query; rename arguments to args.
- 2a91682 Fix broken arguments handling.
- ab64b2d Fix cleanup logic. Don't use parent context in cleanup function, it prevents executing cleanup because already expired. Remove --cleanup flag and related function, it is unnecessary now.
- 212d517 Fix forgotten error handling.
- 9cbf802 Fix golangci-lint issues.
- 207bb6d Fix proper work of waitxact workload in fixtures mode - after locking the working table, do query to this table.
- b91f062 Fix startup parameters descriptions.
- 0fcf4ce Fix test.
- b483859 Fix tests.
- e34de1f Fix values in tests.
- 7dbe90b Idle xacts: in transaction instead of deleting a row, create temp table. This approach doesn't block concurrent updates/deletes and doesn't use full table scan as it does 'order by random()'.
- a6d7000 Idlexacts: fix validation.
- 5ceb431 Idlexacts: remove empty if block, add TODO.
- de3286f Improve deadlocks verbosity of INFO log-level - print message each time, when deadlock catched.
- 4f85773 Merge pull request #10 from NikolayS/patch-2
- 9b4c6c5 Merge pull request #11 from lesovsky/infra-release
- 4be4d6d Move comments to proper place.
- 0dd4226 Move wg.Done outside of starting workload functions.
- 4a2e9d3 Pass application_name when connecting to database.
- 3e0e9b1 Refactor rollbacks: - use golang.org/x/time/rate for rate limiting; - remove '--rollbacks.min-rate' and '--rollbacks.max-rate' cli flags.
- 51a315f Refactor tempfiles: - use golang.org/x/time/rate for rate limiting; - rename cli flag '--temp-files' to '--tempfiles'; - rename cli flag '--temp-files.rate' to '--tempfiles.rate'; - remove cli flag '--temp-files.scale-factor'; - remove need of fixture table - use pg_class instead; - refactor workload logic to main->worker->loop->work order; - add output of how many temp bytes have been written during the workload.
- 1573017 Remove 'active' flag. Attempt to intervene into already running workload it is a default and preferred behavior now.
- fd16b18 Remove TODO - if there are no tables, empty idle xacts are started (just BEGIN and nothing next).
- f58ef26 Remove accidentally added wg.Add().
- e38a5d5 Remove context.TODO from NewPostgresDB.
- 5132015 Remove unnecessary passing config using pointers.
- 82477cc Remove unnecessary prefixes from variable names.
- 1f35e60 Rollbacks: make workload as erroneous queries which execution lead to errors.
- 3dd9789 Rollbacks: run goroutine per job, not per xact.
- 4f0719a Terminate: add ability to specify client address, user, database and application name for exact targeting.
- c0607b4 Terminate: fix broken interval/rate pass from cli arguments to workload func.
- 65d64da Tidy go modules.
- 1542059 Update modules.
- ab50c6c Update tools versions used in GH actions.
- b6e5cd6 Use time.Duration type (instead of int) for --duration parameter.
- c2fdca9 Use time.Duration type (instead of int) for --idle-xacts.* parameters.
- 5f4b7bc Use time.Duration type (instead of int) for waitxacts.* parameters.
- 38d887c Use time.Duration type for terminate.interval option.
- a8e6f10 Use uint16 type (instead of int) for rollbacks.* parameters.
- c082a2a Use uint16 type (instead of int) for tempfiles.* parameters.
- 5c016a0 Use uint16 type (instead of int) for terminate.* parameters.
- ba2f142 Waitxacts: refactor workload to use LOCK based logic. Add fixture flag which tells to run workload using fixture table (don't affect already running workload).
- d491af5 chore: modernize dependencies and Go toolchain
- e406f38 ci: modernize CI/CD pipeline and release config
- 346e923 docs: add project-knowledge base and infra-release plan
- 04e9288 feat: migrate PostgreSQL driver from pgx v4 to v5
- a8b4cb2 test: migrate integration harness to testcontainers-go
-
v0.1.2-0.20231106061805-4f857737744b06 Nov 2023 pre-releaseNothing published for this version
-
v0.1.2-0.20230110052149-ab50c6cabc2410 Jan 2023 pre-releaseNothing published for this version
-
v0.1.2-0.20210917141704-b4838599510e17 Sep 2021 pre-releaseNothing published for this version
-
v0.1.2-0.20210522034052-0f018147d5a722 May 2021 pre-releaseNothing published for this version
-
v0.1.2-0.20210509164850-de3286f691cf09 May 2021 pre-releaseNothing published for this version
-
v0.1.125 Feb 2021 -
v0.1.019 Dec 2020Release notes
Open source →Changelog
b042f8e Add '--duration' flag, determines duration of the test in seconds.
945ba2f Add 'failconns' workload.
ee131ee Add 'terminate' workload.
082f461 Add LICENSE.
d458028 Add deadlocks support.
93f022f Add explicit cleanup executed on demand.
7496042 Add rollbacks.
36e5abc Add temp-files support.
bda6181 Add tests.
203cd7a Edit Readme: add notes about usage and license.
7122d3d GH ACtions: add 'fetch-depth: 0' to fetch tags.
0ea25ec GH Actions: add golang container for running actions, remove sudo (it's unneeded in golang container)
7e19bde GH Actions: add postgres service for executing integration tests.
9694d38 GH Actions: add sudo when copy to system path.
8295215 Goreleaser: add 'make dep' to global 'before' hooks.
380898e Goreleaser: adopt Makefile's flow to goreleaser.
dbac77a Goreleaser: use dir path instead of path to main.go.
9b2e96a Implement releases: - add GH Actions default/releases workflows: run lint/test on Default, build docker images and binary on Release. - add goreleaser handler for releases events. - add git tag into app version string. - add Dockerfile. - add docker related commands into README.
82c7d58 Implement releases: add setting up golangci-lint into GH actions.
2d057f6 Initial commit.
ca1e7e7 Make interval calculation outside of loop.
e600412 Makefile: fix variable.
cab037a Merge branch 'master' of github.com:lesovsky/noisia
d853ba6 Merge pull request #3 from zachvalenta/patch-1
ad0b126 Merge pull request #4 from bbigras/patch-1
6145699 Merge remote-tracking branch 'origin/master'
e0f8c70 Merge remote-tracking branch 'origin/master'
9e9acb8 Readme: fix typo.
e8dcfa0 Remove accidentally added test. Add code coverage test to .gitignore.
65797fa Rename 'idle xacts' to plural form.
b229638 Rename 'idle xacts' to plural form.
637fb40 Reworked in package way. Previous version of noisia was a just like simple tools. This commit exposes noisia as a package which can be imported and used without building binary. Also different fixes and improvements have been made related to code and README.
78233ad Rollbacks: add support for min/max rollbacks rate.
2d59417 Tests: connect to 'host=postgres' instead of 127.0.0.1 for GH Actions services compatibility.
98a6ce9 Tests: define requisites explicitly.
e601390 Update README.
8ce6b75 Update README.
a689bdb add syntax highlighting in README.md
251b65f fix typo -
v0.0.0-20200820183548-ad0b126d960820 Aug 2020 pre-releaseNothing published for this version
-
v0.0.0-20200709035659-9e9acb8904ee09 Jul 2020 pre-releaseNothing published for this version
-
v0.0.0-20200708200100-082f4613548d08 Jul 2020 pre-releaseNothing published for this version