Viewing PGD topology v5

Listing PGD groups

Using pgd-cli

Use the pgd-cli show-groups command to list all groups in the PGD cluster:

pgd show-groups
  Group    Group ID   Type            Parent Group Location Raft  Routing Write Leader
  -----    --------   ----            ------------ -------- ----  ------- ------------
  bdrgroup 1360502012 global                                true  false
  group_a  3618712053 data            bdrgroup     a        true  true    bdr-a1
  group_b  402614658  data            bdrgroup     b        true  true    bdr-b1
  group_c  2808307099 data            bdrgroup     c        false false
  group_so 2123208041 subscriber-only bdrgroup     c        false false

Using SQL

The following simple query lists all the PGD node groups of which the current node is a member. It currently returns only one row from bdr.local_node_summary.

SELECT node_group_name
FROM bdr.local_node_summary;

You can display the configuration of each node group using a more complex query:

SELECT g.node_group_name
, ns.pub_repsets
, ns.sub_repsets
, g.node_group_default_repset     AS default_repset
, node_group_check_constraints    AS check_constraints
FROM bdr.local_node_summary ns
JOIN bdr.node_group g USING (node_group_name);

Listing nodes in a PGD group

Using pgd-cli

Use the show-nodes command to list all nodes in the PGD cluster:

pgd show-nodes
  Node               Node ID    Group    Type            Current State Target State Status Seq ID
  ----               -------    -----    ----            ------------- ------------ ------ ------
  bdr-a1             3136956818 group_a  data            ACTIVE        ACTIVE       Up     6
  bdr-a2             2133699692 group_a  data            ACTIVE        ACTIVE       Up     3
  logical-standby-a1 1140256918 group_a  standby         STANDBY       STANDBY      Up     9
  witness-a          3889635963 group_a  witness         ACTIVE        ACTIVE       Up     7
  bdr-b1             2380210996 group_b  data            ACTIVE        ACTIVE       Up     1
  bdr-b2             2244996162 group_b  data            ACTIVE        ACTIVE       Up     2
  logical-standby-b1 3541792022 group_b  standby         STANDBY       STANDBY      Up     10
  witness-b          661050297  group_b  witness         ACTIVE        ACTIVE       Up     5
  witness-c          1954444188 group_c  witness         ACTIVE        ACTIVE       Up     4
  subscriber-only-c1 2448841809 group_so subscriber-only ACTIVE        ACTIVE       Up     8

Use grep with the group name to filter the list to a specific group:

pgd show-nodes | grep group_b
  bdr-b1             2380210996 group_b  data            ACTIVE        ACTIVE       Up     1
  bdr-b2             2244996162 group_b  data            ACTIVE        ACTIVE       Up     2
  logical-standby-b1 3541792022 group_b  standby         STANDBY       STANDBY      Up     10
  witness-b          661050297  group_b  witness         ACTIVE        ACTIVE       Up     5

Using SQL

You can extract the list of all nodes in a given node group (such as mygroup) from the bdr.node_summary` view. For example:

SELECT node_name         AS name
, node_seq_id            AS ord
, peer_state_name        AS current_state
, peer_target_state_name AS target_state
, interface_connstr      AS dsn
FROM bdr.node_summary
WHERE node_group_name = 'mygroup';

The read-only state of a node, as shown in the current_state or in the target_state query columns, is indicated as STANDBY.