2ndquadrant_bdr.git
9 years agoDebian packaging compatibility bdr-plugin/stable
Petr Jelinek [Sun, 17 Jan 2016 08:24:04 +0000 (09:24 +0100)]
Debian packaging compatibility

10 years agodoc: Add optinal website-build flag
Petr Jelinek [Sun, 29 Mar 2015 13:38:16 +0000 (15:38 +0200)]
doc: Add optinal website-build flag

10 years agodoc: Make the font bit nices
Petr Jelinek [Fri, 27 Mar 2015 21:50:13 +0000 (22:50 +0100)]
doc: Make the font bit nices

10 years agoDocument tree structure for github README
Craig Ringer [Thu, 26 Mar 2015 02:40:07 +0000 (10:40 +0800)]
Document tree structure for github README

10 years agoFix PK detection on inherited tables.
Petr Jelinek [Wed, 25 Mar 2015 20:53:53 +0000 (21:53 +0100)]
Fix PK detection on inherited tables.

We don't allow UPDATEs or DELETEs on tables without primary key but the
code for detecting if table has primary key didn't work correctly when
the UPDATE/DELETE was run on parent table which had primary key but the
command has propagated to an inherited table didn't have primary key.

In passing, fix the primary key detection for a less common use case:
WITH foo AS ( UPDATE table_without_pk ... RETURNING * )
INSERT INTO table_with_pk SELECT * FROM foo;

10 years agodoc: psql provided by BDR-PG has seqam support in \ds.
Petr Jelinek [Wed, 25 Mar 2015 00:51:11 +0000 (01:51 +0100)]
doc: psql provided by BDR-PG has seqam support in \ds.

10 years agodoc: Remove incorrect warning about bdr.bdr_replicate_ddl_command().
Petr Jelinek [Wed, 25 Mar 2015 00:30:30 +0000 (01:30 +0100)]
doc: Remove incorrect warning about bdr.bdr_replicate_ddl_command().

10 years agofix link
Christoph Moench-Tegeder [Wed, 25 Mar 2015 11:28:36 +0000 (12:28 +0100)]
fix link

10 years agodoc: Mention 2ndQuadrant prominently in top level, relnotes bdr-plugin/0.9.0
Craig Ringer [Tue, 24 Mar 2015 12:14:00 +0000 (20:14 +0800)]
doc: Mention 2ndQuadrant prominently in top level, relnotes

10 years agodoc: Document apt repo key ID
Craig Ringer [Tue, 24 Mar 2015 12:07:33 +0000 (20:07 +0800)]
doc: Document apt repo key ID

10 years agodoc: Make it clear that conflicts and repsets docs are in dev
Craig Ringer [Tue, 24 Mar 2015 11:11:49 +0000 (19:11 +0800)]
doc: Make it clear that conflicts and repsets docs are in dev

10 years agodoc: Sort relnotes newest to oldest (desc)
Craig Ringer [Tue, 24 Mar 2015 10:50:19 +0000 (18:50 +0800)]
doc: Sort relnotes newest to oldest (desc)

10 years agodoc: Mention Debian/Ubuntu packages
Craig Ringer [Tue, 24 Mar 2015 10:49:18 +0000 (18:49 +0800)]
doc: Mention Debian/Ubuntu packages

10 years agodoc: Flesh out 0.9.0 relnotes
Craig Ringer [Tue, 24 Mar 2015 10:30:36 +0000 (18:30 +0800)]
doc: Flesh out 0.9.0 relnotes

10 years agobdr: Flesh out 0.8.0 relnotes
Craig Ringer [Tue, 24 Mar 2015 10:09:00 +0000 (18:09 +0800)]
bdr: Flesh out 0.8.0 relnotes

10 years agodoc: Skeletal documentation on catalogs, conflicts, more on monitoring
Craig Ringer [Tue, 24 Mar 2015 09:49:07 +0000 (17:49 +0800)]
doc: Skeletal documentation on catalogs, conflicts, more on monitoring

10 years agodoc: Examples of node removal
Craig Ringer [Tue, 24 Mar 2015 07:02:34 +0000 (15:02 +0800)]
doc: Examples of node removal

10 years agodoc: Remove superceded distributed sequences docs
Craig Ringer [Tue, 24 Mar 2015 06:47:31 +0000 (14:47 +0800)]
doc: Remove superceded distributed sequences docs

10 years agoMake bdr.queue_truncate() SECURITY DEFINER
Craig Ringer [Tue, 24 Mar 2015 06:39:30 +0000 (14:39 +0800)]
Make bdr.queue_truncate() SECURITY DEFINER

Fixes #5.

This shows our testing doesn't cover DDL as non-superuser properly.

10 years agoFix typo: wheras → whereas
Abhijit Menon-Sen [Tue, 24 Mar 2015 05:23:21 +0000 (10:53 +0530)]
Fix typo: wheras → whereas

10 years agodoc: Convert and update global sequences documentation
Craig Ringer [Tue, 24 Mar 2015 04:33:36 +0000 (12:33 +0800)]
doc: Convert and update global sequences documentation

10 years agodoc: Rearrange top level to have consistent part/chapter levels
Craig Ringer [Tue, 24 Mar 2015 02:37:01 +0000 (10:37 +0800)]
doc: Rearrange top level to have consistent part/chapter levels

10 years agodoc: add a stub "catalogs and views" section
Craig Ringer [Tue, 24 Mar 2015 02:33:53 +0000 (10:33 +0800)]
doc: add a stub "catalogs and views" section

10 years agodoc: First pass copy-editing and revision of monitoring docs
Craig Ringer [Tue, 24 Mar 2015 02:29:30 +0000 (10:29 +0800)]
doc: First pass copy-editing and revision of monitoring docs

10 years ago"added information that seems helpful to monitoring your bdr system"
kforte90 [Mon, 23 Mar 2015 22:27:03 +0000 (15:27 -0700)]
"added information that seems helpful to monitoring your bdr system"

10 years ago"added examples of how to call node functions"
kforte90 [Mon, 23 Mar 2015 21:11:38 +0000 (14:11 -0700)]
"added examples of how to call node functions"

10 years ago" added bdr.bdr_nodes table for monitoring"
kforte90 [Mon, 23 Mar 2015 19:42:51 +0000 (12:42 -0700)]
" added bdr.bdr_nodes table for monitoring"

10 years agobdr: doc: Add release notes for 0.7.x, 0.8.x, and (tentative) 0.9.x
Craig Ringer [Mon, 23 Mar 2015 14:43:03 +0000 (22:43 +0800)]
bdr: doc: Add release notes for 0.7.x, 0.8.x, and (tentative) 0.9.x

10 years agobdr: doc: Further node management docs work
Craig Ringer [Mon, 23 Mar 2015 13:09:37 +0000 (21:09 +0800)]
bdr: doc: Further node management docs work

Better structure for node management docs, some coverage of node removal

10 years agobdr: add bdr.bdr_get_local_node_name() function
Craig Ringer [Mon, 23 Mar 2015 13:04:12 +0000 (21:04 +0800)]
bdr: add bdr.bdr_get_local_node_name() function

Add a helper function to look up the local node's name from
bdr.bdr_nodes using the local node identity details.

10 years agobdr: make log_tuple() compile
Christoph Moench-Tegeder [Mon, 23 Mar 2015 11:16:37 +0000 (12:16 +0100)]
bdr: make log_tuple() compile

10 years agobdr: fix verbose insert logging (not enabled by default)
Christoph Moench-Tegeder [Mon, 23 Mar 2015 11:09:14 +0000 (12:09 +0100)]
bdr: fix verbose insert logging (not enabled by default)

10 years agobdr: Add bdr.bdr_node_slots view mapping slot names to node names
Craig Ringer [Mon, 23 Mar 2015 09:50:10 +0000 (17:50 +0800)]
bdr: Add bdr.bdr_node_slots view mapping slot names to node names

10 years agobdr: add bdr_parse_slot_name and bdr_format_slot_name
Craig Ringer [Mon, 23 Mar 2015 09:04:38 +0000 (17:04 +0800)]
bdr: add bdr_parse_slot_name and bdr_format_slot_name

Provide SQL-callable functions wrapping existing internal
BDR helpers for parsing and formatting BDR slot names.

This allows users to associate a slot name in pg_replication_slots
with an entry in bdr.bdr_nodes or bdr.bdr_connections without
writing their own slot parsing code that might be buggy and/or
break with later changes.

10 years agobdr: doc: Explain physical vs logical node join, reduce duplication
Craig Ringer [Mon, 23 Mar 2015 05:26:35 +0000 (13:26 +0800)]
bdr: doc: Explain physical vs logical node join, reduce duplication

10 years agobdr: doc: Add stub docs for upgrade
Craig Ringer [Mon, 23 Mar 2015 03:43:42 +0000 (11:43 +0800)]
bdr: doc: Add stub docs for upgrade

Add skeletal upgrade docs with entry for bdr_upgrade_to_090.

Also documents bdr_replicate_ddl_command

10 years agobdr: doc: Table entries for all public bdr functions
Craig Ringer [Mon, 23 Mar 2015 03:21:15 +0000 (11:21 +0800)]
bdr: doc: Table entries for all public bdr functions

10 years agobdr: doc: Change xref destinations for bdr.bdr_subscribe
Craig Ringer [Mon, 23 Mar 2015 02:02:22 +0000 (10:02 +0800)]
bdr: doc: Change xref destinations for bdr.bdr_subscribe

10 years agobdr: doc: Always generate TOC even if section only has single entry.
Petr Jelinek [Mon, 23 Mar 2015 00:16:09 +0000 (01:16 +0100)]
bdr: doc: Always generate TOC even if section only has single entry.

10 years agobdr: doc: More detailed docs for bdr.bdr_subscribe().
Petr Jelinek [Sun, 22 Mar 2015 22:26:14 +0000 (23:26 +0100)]
bdr: doc: More detailed docs for bdr.bdr_subscribe().

10 years agobdr: silence compiler warning in UDR
Petr Jelinek [Sun, 22 Mar 2015 20:45:29 +0000 (21:45 +0100)]
bdr: silence compiler warning in UDR

10 years agobdr: Add synchronize parameter to bdr_subscribe
Petr Jelinek [Sun, 22 Mar 2015 20:43:04 +0000 (21:43 +0100)]
bdr: Add synchronize parameter to bdr_subscribe

The new parameter controls what part of db should be synchronized
(copied). Currently supported values are 'none' for no synchronization
and 'full' for full dump/restore.

10 years agobdr: doc: Top-level structure tweaks, overview editing
Craig Ringer [Fri, 20 Mar 2015 09:04:42 +0000 (17:04 +0800)]
bdr: doc: Top-level structure tweaks, overview editing

10 years agobdr: doc: flatten install chapter a level
Craig Ringer [Fri, 20 Mar 2015 06:32:08 +0000 (14:32 +0800)]
bdr: doc: flatten install chapter a level

10 years agobdr: doc: Copy-editing on the quickstart guide
Craig Ringer [Fri, 20 Mar 2015 04:55:44 +0000 (12:55 +0800)]
bdr: doc: Copy-editing on the quickstart guide

Some minor changes to the quickstart formatting and wording. Also remove
the old and unused quickstart doc.

10 years agoMerge branch 'bdr-plugin/next' of ssh://git.postgresql.org/2ndquadrant_bdr into bdr...
kforte90 [Thu, 19 Mar 2015 22:55:17 +0000 (15:55 -0700)]
Merge branch 'bdr-plugin/next' of ssh://git.postgresql.org/2ndquadrant_bdr into bdr-plugin/next

10 years agobdr: replication set management
Christoph Moench-Tegeder [Thu, 19 Mar 2015 22:29:51 +0000 (23:29 +0100)]
bdr: replication set management

10 years agobdr: description of replication set functions
Christoph Moench-Tegeder [Thu, 19 Mar 2015 22:23:25 +0000 (23:23 +0100)]
bdr: description of replication set functions

10 years agobdr: fix formatting
Christoph Moench-Tegeder [Thu, 19 Mar 2015 22:04:05 +0000 (23:04 +0100)]
bdr: fix formatting

10 years agobdr: doc: Added quickstart-install.sgml, quickstart-test.sgml
kforte90 [Thu, 19 Mar 2015 21:03:52 +0000 (14:03 -0700)]
bdr: doc: Added quickstart-install.sgml, quickstart-test.sgml
Modified bdr.sgml and filelist.sgml to added two files above

10 years agobdr: doc: Copy-editing and more cross references
Craig Ringer [Thu, 19 Mar 2015 05:24:27 +0000 (13:24 +0800)]
bdr: doc: Copy-editing and more cross references

Adds more cross references and removes some FIXMEs. Lots
of copy editing. Flesh out a few explanations.

10 years agobdr: doc: Revise and copy-edit the DDL replication chapter
Craig Ringer [Thu, 19 Mar 2015 04:53:49 +0000 (12:53 +0800)]
bdr: doc: Revise and copy-edit the DDL replication chapter

Copy-editing, explanation of some restrictions, etc.

10 years agobdr: doc: correct cross-reference labels
Craig Ringer [Thu, 19 Mar 2015 04:33:56 +0000 (12:33 +0800)]
bdr: doc: correct cross-reference labels

10 years agoreset PGconn object whenever connection is closed
Christoph Moench-Tegeder [Wed, 18 Mar 2015 09:29:05 +0000 (10:29 +0100)]
reset PGconn object whenever connection is closed

10 years agobdr: Properly define bdr_abs_srcdir to be, well, actually absolute.
Andres Freund [Tue, 17 Mar 2015 08:11:47 +0000 (09:11 +0100)]
bdr: Properly define bdr_abs_srcdir to be, well, actually absolute.

Fixes GH #6

10 years agobdr: fix open() flags of destination in copy_file()
Christoph Moench-Tegeder [Sun, 15 Mar 2015 22:07:40 +0000 (23:07 +0100)]
bdr: fix open() flags of destination in copy_file()

- the destination file is not guaranteed to exist, so O_CREAT must be used.
- O_TRUNC has to be set to make sure there will be no leftovers at the end
  of the file in case the destination file already existed.

10 years agobdr: doc: Add chapter about bdr_init_copy
Petr Jelinek [Sat, 14 Mar 2015 11:24:06 +0000 (12:24 +0100)]
bdr: doc: Add chapter about bdr_init_copy

10 years agobdr: doc: more explanation of multi-master
Craig Ringer [Tue, 10 Mar 2015 14:36:51 +0000 (22:36 +0800)]
bdr: doc: more explanation of multi-master

10 years agobdr: doc: Much more in depth concepts/overview section
Craig Ringer [Tue, 10 Mar 2015 11:09:06 +0000 (19:09 +0800)]
bdr: doc: Much more in depth concepts/overview section

10 years agofind "extended" (GNU) getopt
Christoph Moench-Tegeder [Mon, 9 Mar 2015 13:25:27 +0000 (14:25 +0100)]
find "extended" (GNU) getopt

FreeBSD's stock getopt(1) breaks with the long options, so
we have to find a better one. TODO: move that to configure

10 years agouse env to call bash, as bash may not be installed in /bin
Christoph Moench-Tegeder [Mon, 9 Mar 2015 12:34:00 +0000 (13:34 +0100)]
use env to call bash, as bash may not be installed in /bin

10 years agobdr: Add tests for DDL replication of storage options during CREATE TBL.
Andres Freund [Sun, 8 Mar 2015 17:03:01 +0000 (18:03 +0100)]
bdr: Add tests for DDL replication of storage options during CREATE TBL.

Fixes GH: #3

10 years agobdr: doc: document getting sources, document signing dev/docs
Craig Ringer [Wed, 18 Feb 2015 05:25:05 +0000 (18:25 +1300)]
bdr: doc: document getting sources, document signing

10 years agobdr: doc: move the preface into the book abstract
Craig Ringer [Wed, 18 Feb 2015 02:58:45 +0000 (15:58 +1300)]
bdr: doc: move the preface into the book abstract

10 years agobdr: doc: Split the docs up by part/chapter like the Pg docs
Craig Ringer [Wed, 18 Feb 2015 02:01:06 +0000 (15:01 +1300)]
bdr: doc: Split the docs up by part/chapter like the Pg docs

10 years agobdr: doc: ignore generated docs
Craig Ringer [Wed, 18 Feb 2015 00:21:04 +0000 (13:21 +1300)]
bdr: doc: ignore generated docs

10 years agobdr: doc: Document installation from packages
Craig Ringer [Wed, 18 Feb 2015 00:20:29 +0000 (13:20 +1300)]
bdr: doc: Document installation from packages

10 years agobdr: doc: Add preliminary installation instructions & random doc cleanups.
Andres Freund [Mon, 16 Feb 2015 11:19:55 +0000 (12:19 +0100)]
bdr: doc: Add preliminary installation instructions & random doc cleanups.

10 years agobdr: doc: Massivley expand documentation about BDR DDL restrictions.
Andres Freund [Fri, 13 Feb 2015 18:50:11 +0000 (19:50 +0100)]
bdr: doc: Massivley expand documentation about BDR DDL restrictions.

10 years agobdr: Fix bdr.do_not_replicate implementation.
Andres Freund [Thu, 12 Feb 2015 17:59:16 +0000 (18:59 +0100)]
bdr: Fix bdr.do_not_replicate implementation.

Luckily the only consequence of the borked implementation was that
pg_get_replication_identifier_progress() failed with an assertion
failure. There was no problem with replaying those changes because the
other nodes aren't allowed to connect at that point.

10 years agobdr: docs: Fix indentation in a couple places.
Andres Freund [Thu, 12 Feb 2015 09:29:36 +0000 (10:29 +0100)]
bdr: docs: Fix indentation in a couple places.

10 years agobdr: Start documentation about not replicated statements.
Andres Freund [Thu, 12 Feb 2015 09:29:17 +0000 (10:29 +0100)]
bdr: Start documentation about not replicated statements.

10 years agobdr: Make parameters for group_create/group_join/subscribe more consistent.
Andres Freund [Wed, 11 Feb 2015 16:14:13 +0000 (17:14 +0100)]
bdr: Make parameters for group_create/group_join/subscribe more consistent.

10 years agobdr: Start to explain some concepts in the docs.
Andres Freund [Mon, 9 Feb 2015 21:33:01 +0000 (22:33 +0100)]
bdr: Start to explain some concepts in the docs.

Initial explanation of distributed sequences, ddl replication and ddl
locking are included.

10 years agobdr: Fix dependencies on the website css for the docs.
Andres Freund [Mon, 9 Feb 2015 20:37:20 +0000 (21:37 +0100)]
bdr: Fix dependencies on the website css for the docs.

10 years agobdr: Only set VPATH build variables when actually doing a vpath build...
Andres Freund [Mon, 9 Feb 2015 20:34:24 +0000 (21:34 +0100)]
bdr: Only set VPATH build variables when actually doing a vpath build...

Fixes building the docs from within the source directory. No need to
backpatch, as we previously didn't rely on srcdir being set.

10 years agobdr: Add document about bdr guc settings.
Andres Freund [Mon, 9 Feb 2015 20:16:40 +0000 (21:16 +0100)]
bdr: Add document about bdr guc settings.

10 years agobdr: Copy docs css from the website, looks much better.
Andres Freund [Mon, 9 Feb 2015 19:52:51 +0000 (20:52 +0100)]
bdr: Copy docs css from the website, looks much better.

10 years agobdr: Remove the now unused bdr.connections GUC.
Andres Freund [Mon, 9 Feb 2015 16:55:38 +0000 (17:55 +0100)]
bdr: Remove the now unused bdr.connections GUC.

10 years agobdr: Add bdr_nodes entry for remote node when subscribing.
Petr Jelinek [Mon, 9 Feb 2015 20:05:16 +0000 (21:05 +0100)]
bdr: Add bdr_nodes entry for remote node when subscribing.

This makes it possible to join between bdr_nodes and bdr_connections
correctly.

10 years agobdr: Document (and link to) relevant postgres parameters.
Andres Freund [Mon, 9 Feb 2015 16:40:59 +0000 (17:40 +0100)]
bdr: Document (and link to) relevant postgres parameters.

10 years agobdr: Implement simple node removal via bdr.bdr_part_by_node_names().
Andres Freund [Mon, 9 Feb 2015 02:42:09 +0000 (03:42 +0100)]
bdr: Implement simple node removal via bdr.bdr_part_by_node_names().

The method used to remove node is relatively simplistic: Removed nodes
are left in bdr_nodes and there's no guarantee about
consistency/concurrency for node removal.

The concurrency issues primarily arethat the method used for removal
could lead to ddl locks and sequence chunks could be granted based on
votes by the removed node, with the quorum from after the removal. That
obviously needs to be improved, but this is an important step.

10 years agobdr: Also setup pid/pgproc entries in the output plugins shmem slot.
Andres Freund [Mon, 9 Feb 2015 02:40:37 +0000 (03:40 +0100)]
bdr: Also setup pid/pgproc entries in the output plugins shmem slot.

10 years agobdr: Parse & remember the remotes identity in the output plugin.
Andres Freund [Mon, 9 Feb 2015 02:39:32 +0000 (03:39 +0100)]
bdr: Parse & remember the remotes identity in the output plugin.

This is useful to later be able to kill & prevent them from rejoining
when removing a node.

10 years agobdr: Rename bdr_launch_apply_workers() to maintain_db_workers().
Andres Freund [Mon, 9 Feb 2015 02:37:08 +0000 (03:37 +0100)]
bdr: Rename bdr_launch_apply_workers() to maintain_db_workers().

Also remove a superflous argument that could only ever be set to to
MyDatabaseId.

10 years agobdr: Don't proc_exit(0) in normal paths of the apply process.
Andres Freund [Mon, 9 Feb 2015 02:33:14 +0000 (03:33 +0100)]
bdr: Don't proc_exit(0) in normal paths of the apply process.

Doing so unregisters the worker, which is usually not what's
wanted. Instead replace the one location that wants to unregister, and
use 1 as an exit code everywhere else.

10 years agobdr: Add bdr_parse_slot_name and clean up some related code.
Andres Freund [Mon, 9 Feb 2015 02:30:05 +0000 (03:30 +0100)]
bdr: Add bdr_parse_slot_name and clean up some related code.

10 years agobdr: Fix typo in dbcache leading to cache invalidation not working.
Andres Freund [Mon, 9 Feb 2015 02:28:08 +0000 (03:28 +0100)]
bdr: Fix typo in dbcache leading to cache invalidation not working.

10 years agobdr: Wakeup perdb worker when bdr_node changes are replayed.
Andres Freund [Sun, 8 Feb 2015 17:41:00 +0000 (18:41 +0100)]
bdr: Wakeup perdb worker when bdr_node changes are replayed.

10 years agobdr: Slightly improve caching of relation/schema oids.
Andres Freund [Sun, 8 Feb 2015 17:33:37 +0000 (18:33 +0100)]
bdr: Slightly improve caching of relation/schema oids.

Only declare variables that are actually defined and also persistently
store the bdr schema oid.

10 years agobdr: Fix bdr_connections_changed() to not register its hook multiple times.
Andres Freund [Sun, 8 Feb 2015 17:03:19 +0000 (18:03 +0100)]
bdr: Fix bdr_connections_changed() to not register its hook multiple times.

While add it, rename xacthook_connection_added to
xacthook_connections_changed to more precisely reflect its usage.

10 years agobdr: Require a node name when creating/joining a bdr flock.
Andres Freund [Sun, 8 Feb 2015 14:55:01 +0000 (15:55 +0100)]
bdr: Require a node name when creating/joining a bdr flock.

bdr_init_copy is untested as of now.

10 years agobdr: Improve makefile regeneration dependencies.
Andres Freund [Sun, 8 Feb 2015 13:43:09 +0000 (14:43 +0100)]
bdr: Improve makefile regeneration dependencies.

10 years agobdr/udr: create scripts/ directory and set x permissions for bdr_initial_load.
Andres Freund [Sun, 8 Feb 2015 12:06:43 +0000 (13:06 +0100)]
bdr/udr: create scripts/ directory and set x permissions for bdr_initial_load.

This got broken in "bdr: Replace GUC-based connections with SQL and
tables", but the new fix is nicer and more complete. So it's ok not to
backpatch it.

10 years agobdr: typo fix
Petr Jelinek [Sun, 8 Feb 2015 12:27:04 +0000 (13:27 +0100)]
bdr: typo fix

10 years agobdr: Acquire a shmem slot in the bdr output plugin.
Andres Freund [Thu, 5 Feb 2015 16:34:40 +0000 (17:34 +0100)]
bdr: Acquire a shmem slot in the bdr output plugin.

This is helpful because we now can find nodes connected to a specific
slot which we need to implement node removal.

10 years agobdr: Remove bdr.max_workers and bdr.max_databases GUCs and infer them.
Andres Freund [Thu, 5 Feb 2015 13:45:01 +0000 (14:45 +0100)]
bdr: Remove bdr.max_workers and bdr.max_databases GUCs and infer them.

The complications of having those doesn't seem worth the minute amount
of processing they can save in a hypothetical environment with large
max_workers settings.

10 years agobdr: Further improve and seperate out BDR worker infrastructure.
Andres Freund [Thu, 5 Feb 2015 13:08:01 +0000 (14:08 +0100)]
bdr: Further improve and seperate out BDR worker infrastructure.

Most shared memory handling now resides in bdr_shmem.c and worker
slots are acquired using a distinct function.

This has the advantage of making bdr.c a bit less of a hodgepodge and
is preparation for acquiring worker slots in walsenders.

10 years agobdr: dynconf: Improve worker slot handling.
Andres Freund [Wed, 4 Feb 2015 23:28:08 +0000 (00:28 +0100)]
bdr: dynconf: Improve worker slot handling.

Move worker slot acquiration into bdr_worker_init() and register
before_shmem_exit() function that marks the slot as unused on process
exit. Use that functionality to always keep the pid and PGPROC entry
in worker slots if a bgworker is connected.

10 years agobdr: Replace GUC-based connections with SQL and tables
Craig Ringer [Sat, 7 Feb 2015 11:54:17 +0000 (00:54 +1300)]
bdr: Replace GUC-based connections with SQL and tables

BDR's configuration interface and the related internals have been mostly
rewritten so that GUCs are not used for specifying bdr connections.

The bdr.connectons GUC and bdr.<nodename>_dsn etc are removed by this
commit. Use of these settings will now emit warnings in the server error
log.

Upgrades to the new version must be performed with manual steps covered
in the documentation. Simply replacing the binaries is not sufficient.

Major changes:

* There is only one static worker, a new bdr_supervisor worker

* The supervisor decides which databases to start per-db workers
  for by examining each database for a 'bdr' security label

* per-db workers scan a new bdr.bdr_connections table to decide
  which nodes to launch apply workers for.

* apply workers look up bdr.bdr_connections to get connection
  info instead of checking GUCs

* Explicit creation of the first node is now required with
  bdr.bdr_group_create(...)

* New nodes must be joined with an SQL level bdr.bdr_group_join(...)
  call.