pg-squeeze (1.6.2-1)
[PTS] [DDPO]
COMMITS: VCS has seen 29 commits since the debian/1.6.2-1 tag
- Git: https://github.com/cybertec-postgresql/pg_squeeze.git
-
- Branch: master
- Path: debian/changelog
- Repo size: 217088
- Browser: https://github.com/cybertec-postgresql/pg_squeeze
- Last scan: 2024-04-27 13:51:08+00
- Next scan: 2024-04-28 13:48:00+00
- Debian changelog in Git:
pg-squeeze (1.6.2-1) unstable; urgency=medium
* New upstream version.
-- Christoph Berg <myon@debian.org> Mon, 18 Sep 2023 21:55:01 +0200
- This branch is 29 commits ahead of tag debian/1.6.2-1
- Git log:
commit fb74b1f1f47b589ebe1f9ea8e83dab51a11a11b2
Author: Antonin Houska <ah@cybertec.at>
Date: Mon Mar 11 17:20:59 2024 +0100
Subject: [PATCH] Make shared memory setup hooks static.
This is an attempt to fix the issue
https://github.com/cybertec-postgresql/pg_squeeze/issues/68
commit 5864fdec2e90253b9b3bbcc36514416f7bb9d86d
Author: Antonin Houska <ah@cybertec.at>
Date: Tue Feb 6 17:26:41 2024 +0100
Remove no longer supported PG version from test setup.
commit a9dc2b7f0cddf707d31e409bb96d9e702b0dbf6c
Author: Antonin Houska <ah@cybertec.at>
Date: Tue Feb 6 17:17:19 2024 +0100
Fixed cleanup on various kinds of errors.
For example, when replication slots could not be created, when worker could
not start, etc.
commit 04e85597acaf7fef4a1fa90691c3ae4bb5257357
Author: Antonin Houska <ah@cybertec.at>
Date: Wed Jan 31 09:59:10 2024 +0100
Optimized locking.
Do not use LWLock where it's not necessary.
commit b6d721127c62d23c3dc359b22629d741066ea7af
Author: Antonin Houska <ah@cybertec.at>
Date: Tue Jan 30 16:07:14 2024 +0100
Avoid leak of WorkerTask if there's no free WorkerSlot.
commit ebd0a033696c9ba1b95dbd1002936e1cf3f0ab41
Author: Antonin Houska <ah@cybertec.at>
Date: Tue Jan 30 16:01:29 2024 +0100
Use exclusive LWLock to ensure that at least one task exists per table.
This will be important to safely clean-up resources (e.g. replication slots) which might otherwise leak due to server crash.
commit 897e5a49269e0a506f3ddc47a1abecd2c8c3cfa8
Author: Antonin Houska <ah@cybertec.at>
Date: Tue Jan 30 11:38:56 2024 +0100
Fixed array index.
Bug introduced by commit 276b244b41.
commit 276b244b41f8d5962993abd6b594da300eac0fb4
Author: Antonin Houska <ah@cybertec.at>
Date: Mon Jan 29 09:31:55 2024 +0100
Adjust version check.
The previous commit should have included this.
commit 505582860b3dcb32b3281d8a99e628f6100bc539
Author: Antonin Houska <ah@cybertec.at>
Date: Wed Jan 24 19:10:25 2024 +0100
Removed code specific to PG < 12.
PG 11 will be EOL before the next release of pg_squeeze.
commit 5c64d5eb5572582e8486d719d2d2f1b907f4e347
Author: Antonin Houska <ah@cybertec.at>
Date: Wed Jan 24 16:36:00 2024 +0100
Adjust the code to the 17devel version of the PostgreSQL server.
commit a86222c4113a9a3ec19a91d97adb65563e31fd52
Author: Antonin Houska <ah@cybertec.at>
Date: Wed Jan 24 16:32:52 2024 +0100
Do not increment squeezeWorkerSlotCount too early.
The counter should not be incremented before the replication slot is created,
otherwise cleanup is messy.
commit daba46711b2f902b6863fdb1848ac12cae340d9e
Author: Antonin Houska <ah@cybertec.at>
Date: Wed Jan 24 09:14:09 2024 +0100
Do not call pfree() when holding a spinlock.
commit db094f9c410106d82a0e0eb4ed9cf588dd928e1e
Author: Antonin Houska <ah@cybertec.at>
Date: Thu Oct 12 16:56:59 2023 +0200
Do not raise ERROR where it's not necessary.
commit eb7d3018ba4c65a852309d6109064ad7c7d6d1ae
Author: Antonin Houska <ah@cybertec.at>
Date: Thu Oct 12 11:04:50 2023 +0200
Let squeeze_table() create a unique replication slot name.
The slot name no longer contains the relation OID, so prior to this commit,
concurrent calls of the function could cause an ERROR even if each call was
for a different table.
commit 1b69a9d9a3958e9a6a88256f20042b26865a74eb
Author: Antonin Houska <ah@cybertec.at>
Date: Thu Oct 12 11:02:49 2023 +0200
Simplified allocation of a new task.
We can rely on process_task_internal() to check if there are multiple tasks
for the same table.
commit 23b45d68189d27d5152a9cd131ccf934bb9d0523
Author: Antonin Houska <ah@cybertec.at>
Date: Wed Oct 11 19:39:23 2023 +0200
Fixed the search for task_id already being processed.
The logic was incorrect (the search for duplicates could exit too early) and
too complex.
commit 72386de7994301ff0203844cbcab656c2984a987
Author: Antonin Houska <ah@cybertec.at>
Date: Wed Oct 11 19:30:07 2023 +0200
Make ERRORs raised by the squeeze worker easier to find.
So far the error messages were only written to the "squeeze.errors" table. Now
we also write them to the server log. Furthermore, if the worker was launched
by the squeeze_table() function, that function re-throws the ERROR too.
commit dae62e862b84d1079355bf597cad09bb9df30dd8
Author: Antonin Houska <ah@cybertec.at>
Date: Tue Oct 10 08:40:53 2023 +0200
One more logging statement.
commit dd3095b23de699d9eecf16414185ee914c4b5be5
Author: Antonin Houska <ah@cybertec.at>
Date: Mon Oct 9 11:30:39 2023 +0200
Added a log message to help user in troubleshooting.
commit 64c31485588921d73e8e54647f03f0755172c328
Author: Antonin Houska <ah@cybertec.at>
Date: Mon Oct 9 08:48:07 2023 +0200
Do not clear already initialized variables.
This was a thinko, introduced during the recent rework.
commit 9a3924ff860584a192b2a9f96036dd756f27ae10
Author: Antonin Houska <ah@cybertec.at>
Date: Mon Oct 9 08:31:45 2023 +0200
Removed the 'scheduler' field from 'WorkerConInit'.
The structure is now only used to start the scheduler worker.
commit 7a70f2e4ebf4110b2608f02f96f62e0981e4e464
Author: Antonin Houska <ah@cybertec.at>
Date: Fri Oct 6 11:38:11 2023 +0200
Move setup of the replication slots away from the squeeze worker.
During the setup of the snapshot builder for logical decoding, the worker may
need to wait until the currently running transactions complete. However some
of those transactions may be those of the "initial load" being performed by
other workers. This can effectively prevent the squeeze workers from
processing multiple tables at a time.
The new design is such that the snapshot builder setup is performed by the
scheduler worker and both the slot and the snapshot is passed to each worker
via shared memory before the workers are started.
commit 3716b68a3f8bd21e9ea1eb693b78f05acc226e29
Author: Antonin Houska <ah@cybertec.at>
Date: Tue Sep 26 15:35:19 2023 +0200
Remove old origin cleanup code.
This should have be done in the commit 89b85f2276.
commit cf793f2a3acb00f89362007335e6a310cc38fe2a
Author: Antonin Houska <ah@cybertec.at>
Date: Mon Sep 25 17:15:05 2023 +0200
Always pass only a single task to the squeeze worker.
So far, the squeeze_table() function assigned the task via shared memory
whereas the scheduled tasks were fetched by the squeeze worker itself. This
was messy, so refactored.
commit 39d917b8ab2dc1b1b75bccc5a80f38e709656fc1
Author: Antonin Houska <ah@cybertec.at>
Date: Mon Sep 25 16:58:29 2023 +0200
Fixed transaction handling in manage_session_origin().
This was omitted in the commit 89b85f2276.
commit 3e5d86fc7913d63155abb3526be77861103745ca
Author: Antonin Houska <ah@cybertec.at>
Date: Fri Sep 22 07:29:46 2023 +0200
Fixed filter in the query that checks the number of pending tasks.
commit 89b85f22767880575cb54d8c0526d29cf880219a
Author: Antonin Houska <ah@cybertec.at>
Date: Fri Sep 22 07:25:14 2023 +0200
Create and drop the replication origin in a separate transaction.
Due to the unique OID, one backend has to wait until another backend's
transaction, which also creates the origin commits. If the transaction
involves the actual squeeze work, the work done by multiple workers is
effectively serialized.
commit 63f1279d68cd427f62aec172e8f55a4aebda6d7a
Merge: 6a61c9d 9c63bac
Author: Antonin Houska <ah@cybertec.at>
Date: Tue Sep 19 17:45:54 2023 +0200
Merge remote-tracking branch 'origin/master'
commit 6a61c9d3379b400cd52f49715a54da85a8e506c9
Author: Antonin Houska <ah@cybertec.at>
Date: Tue Sep 19 15:42:54 2023 +0200
Only start the squeeze worker if there is some work to do.
Instead of letting one or more squeeze workers per database run all the time,
it seems better to let the scheduler worker start them only if there are
tables to squeeze. This design also simplifies the squeeze_table() function:
it's simpler to start a new worker and wait until it exits than to communicate
with an existing worker via shared memory.