Did you know ... Search Documentation:
Pack canny_tudor -- prolog/paxos/udp_broadcast.pl
PublicShow source

Sets up Paxos over UDP broadcast on port 20005. Hooks up Paxos messaging to UDP broadcast bridging using the paxos scope.

Initialisation order affects success. First initialises UDP broadcasting then initialises Paxos. The result is two additional threads: the UDP inbound proxy and the Paxos replicator.

You can override the UDP host, port and broadcast scope. Load settings first if you want to override using file-based settings. Back-up defaults derive from the environment and finally fall on hard-wired values of 0.0.0.0, port 20005 via paxos scope. You can also override the automatic Paxos node ordinal; it defaults to -1 meaning automatic discovering of unique node number. Numbers start at 0 and increase by one, translating to binary power indices for the quorum bit mask.

Note that environment defaults require upper-case variable names for Linux. Variable names match case-sensitively on Unix platforms.

Docker Stack

For Docker in production mode, your nodes want to interact using the UDP broadcast port. This port is not automatically available unless you publish it. See example snippet below. The ports setting lists port 20005 for UDP broadcasts across the stack.

version: "3"

services:

  my-service:
    image: my/image
    ports:
      - 20005:20005/udp
      - 8080:8080/tcp

Undocumented predicates

The following predicates are exported, but not or incorrectly documented.

 paxos_udp_broadcast_initialise