Releases: CrunchyData/pgSimload
v.1.4.3
Version 1.4.3 (December, 16th 2024)
Major changes
- none this is mostly a monthly build, to refresh dependencies'versions
Minor changes
- rebuild of binaries with dependencies updates:
- upgraded golang.org/x/crypto v0.29.0 => v0.31.0
- upgraded golang.org/x/sys v0.27.0 => v0.28.0
- upgraded golang.org/x/text v0.20.0 => v0.21.0
md5sum of binaries provided with the release
$ md5sum *
1bbcc60a1b529bf21a5adf8e4cf0868d pgSimload
d71689b955415ce40a6e2e59c8894c05 pgSimload_mac
4cd50316c58a9e1487b1a43b798ab298 pgSimload_static
14c69d9b64854e340a3b85d078431bdf pgSimload_win.exe
v.1.4.2
Version 1.4.2 (November, 12th 2024)
Major changes
- none this is mostly a monthly build, to refresh dependencies'versions
Minor changes
-
fixed a small typo in a
sqlloop.go
output -
removed
bin/
- to lighten sources!
- binaries will be provided only within the releases starting from today
- reviewed a bit documentation to act that change
-
rebuild of binaries with dependencies updates:
- upgraded golang.org/x/crypto v0.28.0 => v0.29.0
- upgraded golang.org/x/sys v0.26.0 => v0.27.0
- upgraded golang.org/x/text v0.19.0 => v0.20.0
md5sum of binaries provided with the release
$ md5sum *
cc363bb4e6baa3a5b367941912ef1e39 pgSimload
fc64f284eceff225c05a8d0d07b1ac0d pgSimload_mac
fe7cead01b1d9295c16240595e069ff5 pgSimload_static
a9cbb049474b0eeab195e9f5771e2447 pgSimload_win.exe
v.1.4.1
Version 1.4.1 (October, 16th 2024)
Major changes
-
Added a new parameter in command line:
-rsleep time.Duration
Like-sleep
, this parameter will add a sleep time between 2 iterations (executions) of the-script script.sql
(or whatever it's name).The difference is that the actual sleep time will be a random duration between 0 and that parameter. This is usefull when there are multiple
-clients
running, so they don't fire each at the same exact time... Or when one wants to execution to be just random.If used aside
-sleep time.Duration
, then the total sleep time between two iterations will be sum of both, one being a fixed duration and the other being a random one.
Minor changes
- review of examples in the documentation
NEW in the github release process
Thanks to Étienne BERSAC ( @bersace ) remarks:
-
Publishing binaries directly in the release
-
Binaries directly in the repo itself will be removed it pollutes a lot, making the repo way bigger than what it should
$ md5sum pgSimload*
8e2fef8861c61d81dcfa08f18d5c5e4c pgSimload
eed6894cb131464e1b14c209d0f6236f pgSimload_mac
8c80e9f2da22ad9a426945f54ec9019b pgSimload_static
2c3016e3f89314dd950dcb82a13a4f27 pgSimload_win.exe
v.1.4.0
Version 1.4.0 (October, 11th 2024)
Major changes
- Added a new parameter in command line:
-clients <integer>
This parameter is only effective in the "SQL-Loop". It will create as many connections to the database to execute a given script in parallel, creating as many PostgreSQL connections as necessary, i.e. the number of clients declared here. There's no verification whatsoever ofmax_connections
or any computation of free connections. So if the user specifies too many connections, an error message will be shown accordingly. If you need many (many) hundreds of concurrent connections, please consider the usage of a PostgreSQL pooler, like PgBouncer
Minor changes
-
Support for Patroni v4 added, it was as simple as add the colorized output in
patronictl
for "Quorum Standby" -
raised the reconnection timeout from 20s to 60s (
pgReconnectTimeout
constant declared inpgmanager.go
), because in certain scenarios where there are a lot of-clients
used, the server may be in heavy load enough so 20s isn't sufficient. I'm planning to make this usage parameter rather than a constant, to give control to users -
first usage of the "sync" library in
sqlloop.go
, to manage synchronicity among Go Routines used when the-clients <integer>
new parameter is used -
rebuild of binaries with dependencies updates:
- upgraded github.com/jackc/pgx/v5 v5.6.0 => v5.7.1
- upgraded golang.org/x/crypto v0.26.0 => v0.28.0
v.1.3.3
Version 1.3.3 (August, 28th 2024)
Major changes
-
Added a new flag in command line:
-silent
With that parameter added, pgSimload won't show anymore the welcome message (copyright, program name and version, execution mode, etc.). The user will have to remember that the
ESC
key will still have to be pressed to get out of the execution loop
Minor changes
-
Adding
doc/build_doc.sh
, making it public -
Reviewed the way the documentation is produced with internal script (
doc/build_doc.sh
). Had to changemain.go
to haveVersion
andRelease_date
on separated variables -
Removed
$
in$ command <exemples>
so the reader can copy/paste the code directly reading the documentation on github. So it is a better user experience -
rebuild of binaries with dependencies updates:
- upgraded golang.org/x/crypto v0.25.0 => v0.26.0
- upgraded golang.org/x/sys v0.22.0 => v0.24.0
- upgraded golang.org/x/text v0.16.0 => v0.17.0
v.1.3.2
Version 1.3.2 (July 10th 2024)
Major changes
None, this is a maintenance release.
Minor changes
-
Fixed a bug in coloring patronictl (list|topology) command between "Leader" and "Standby Leader", now both are in red
-
Fixed useless waiting loops in Patroni Watcher command, in the Kubernetes flavor. It's now more robust to what could happen inside the Kubernetes cluster.
-
Fixed caption in "Patronictl output from...", there was too many spaces in there
-
re-Build of binaries to update underlying dependencies:
- upgraded golang.org/x/crypto v0.24.0 => v0.25.0
- upgraded golang.org/x/sys v0.21.0 => v0.22.0
v.1.3.1
Version 1.3.1 (June 18th 2024)
Major changes
None, this is a maintenance release.
Minor changes
-
Some captions revisited for better understanding by the user, and to be
consistent. Particularly true for theSQL-Loop
mode where the startup
process was different -
Corrected some startup tests when mandatory files are not passed in the
command line -
Corrected a bug when
kubectl
wasn't installed on default directories.
This was preventing users to have installs like/usr/local/bin/kubectl
.
Now,kubectl
can be anywhere in the$PATH
of the user -
re-Build of binaries to update underlying dependencies
v.1.3.0
Version 1.3.0 (April 24th 2024)
Major changes
-
Added a new "Kube-Watcher" mode! This one allows to have a minimal
monitoring of any PostgreSQL cluster running in Kubernetes, whatever
the operator is, since it only uses 2kubectl
commands, in a loop,
to create the monitoring. See examples inexamples/Kube-Watcher/
and the relevant parts in the documentation on how to use it !-
TL,DR: simple as
pgSimload -kube <kube.json>
-
Very special thanks to Brian Pace from Crunchy Data, since he
shared with me his script that was doing that, exactly,
I found that it could be interesting to have it in pgSimload ! -
Special thanks to "Pierrick" from CloudNativePG Slack, that helped
me find the right labels and selectors for that operator to be used
in thekube.json
configuration file !
-
-
documentation update to describe the new "Kube-Watcher" mode.
Minor changes
-
changed the way the screen is refreshed in Patroni-Watcher, for better
performances and less output in the terminal-
moved from
github.com/inancgumus/screen
,screen.Clear()
and
screen.MoveTopLeft()
-
to simplied ANSI's
fmt.Printf("\x1bc")
-
please let me know if this change break something for you, I can
revert that easily in case. I do really lack feedback from pgSimload
users!
-
-
simplier way of coding (most often, output messages) strings to be
used in output:A+=B
instead ofA=A+B
. (/me noob) -
added 3 new functions to better padding (left/right) and count length of
some output strings (eg podname lenght in Kube-Watcher mode, to align
the outputs when more than 1 cluster is listed in this mode) -
added
K8s_selector
field inpatroni.json
configuration file for
Patroni-Watcher, so it can be monitoring any namespace other than the
default set with, typically,kubectl config set-context --current --namespace=<namespace_name>
-
renamed in doc, including examples directory and in executables'outputs
everything to be consistent among the 3 modes: "SQL-Loop", "Patroni-Watcher"
and the new "Kube-Watcher" in version 1.3.0 -
lots of doc review, many errors find and corrected
v.1.2.0
Version 1.2.0 (April 18th 2024)
Major changes
-
Added a new parameter to pgSimload command line to be used in SQL-Loop mode:
-
-sleep time.Duration
adds a sleep time between 2 iterations (executions) of the-script script.sql
(or whatever it's name). -
The interest of this parameter is double:
-
it allows to throttle down the execution in SQL-Loop mode if this one is "going too fast" and
-
it avoids the user to add a line like
select pg_sleep(1);
at the end of thescript.sql
.
-
-
Actually it corrects indirectly the previous behaviour when that
select pg_sleep(n);
was used previously inscript.sql
around the count of statements executed. This one was only updated once the whole script was executed, including the possibleselect pg_sleep(n);
at the end.
-
-
documentation update to describe the new
-loops
and-time
parameters to be used in SQL-Loop mode
Minor changes
- updated
examples/simple
examples and README file
v.1.1.0
Version 1.1.0 (January, 20th 2024)
Major changes
-
Added 2 new parameters to pgSimload command line to be used in SQL-Loop
mode:-
-loops <int64>
will limit the SQL-Loop execution to that exact number
of loops. This can be used to avoid running SQL-Loop endlessly, and/or
in comparisons scenarios when one wants to compare effects of various
configurations parameters, including using different values when a
session parameters files is used (seesession_parameters <JSON.file>
in docs) -
-time time.Duration
(where Duration is a duration, without or with
double or sigle quotes, like "10s" or 1m10s or '1h15m30s'...). This option
will limit SQL-Loop execution to that amount of time. It can be used in
various scenarios too -
when both are used at the same time, the SQL-Loop ends when any one of
those conditions is satisfied
-
-
documentation update to describe the new
-loops
and-time
parameters to
be used in SQL-Loop mode
Minor changes
-
updated Crunchy copyright ranges to include 2024 (patch by @youattd)
-
updated
examples/simple
examples and README file -
updated
examples/patroni_monitoring/README.md
doc to mention the -
added scripts in
examples/patroni_monitoring/ha_test_tools