pg-squeeze (1.6.2-1)
[PTS] [DDPO]
COMMITS: VCS has seen 17 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: 1753088
- Browser: https://github.com/cybertec-postgresql/pg_squeeze
- Last scan: 2023-11-30 10:18:17+00
- Next scan: 2023-12-01 10:45: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 17 commits ahead of tag debian/1.6.2-1
- Git log:
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.