Skip to content

Releases: CrunchyData/pgSimload

v.1.4.3

16 Dec 11:12
Compare
Choose a tag to compare

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

12 Nov 08:41
Compare
Choose a tag to compare

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

16 Oct 10:10
Compare
Choose a tag to compare

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

11 Oct 10:00
Compare
Choose a tag to compare

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 of max_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 in pgmanager.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

28 Aug 11:35
Compare
Choose a tag to compare

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 change main.go to have Version and Release_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

10 Jul 12:42
Compare
Choose a tag to compare

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

18 Jun 08:23
Compare
Choose a tag to compare

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 the SQL-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

24 Apr 07:50
Compare
Choose a tag to compare

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 2 kubectl commands, in a loop,
    to create the monitoring. See examples in examples/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 the kube.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 of A=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 in patroni.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

18 Apr 14:48
Compare
Choose a tag to compare

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 the script.sql.

    • Actually it corrects indirectly the previous behaviour when that select pg_sleep(n); was used previously in script.sql around the count of statements executed. This one was only updated once the whole script was executed, including the possible select 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

20 Jan 10:21
Compare
Choose a tag to compare

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 (see session_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