- class patroni.postgresql.mpp.citus. Citus ( config : Dict [ str , str | int ] ) View on GitHub
-
Bases:
AbstractMPP- _abc_impl = <_abc._abc_data object>
- property coordinator_group_id : int View on GitHub
-
The group id of the Citus coordinator PostgreSQL cluster.
- property group : int View on GitHub
-
The group of this Citus node.
- group_re : Any = re.compile('^(0|[1-9][0-9]*)$')
- static validate_config ( config : Any ) bool View on GitHub
-
Check whether provided config is good for a given MPP.
- Parameters :
-
config – configuration of
citusMPP section. - Returns :
-
Trueis config passes validation, otherwiseFalse.
- class patroni.postgresql.mpp.citus. CitusHandler ( postgresql : Postgresql , config : Dict [ str , str | int ] ) View on GitHub
-
Bases:
Citus,AbstractMPPHandler,ThreadDefine the interfaces for handling an underlying Citus cluster.
- __init__ ( postgresql : Postgresql , config : Dict [ str , str | int ] ) None View on GitHub
-
"Initialize a new instance of
CitusHandler.- Parameters :
-
-
postgresql – the Postgres node.
-
config – the
citusMPP config section.
-
- _abc_impl = <_abc._abc_data object>
- _add_task ( task : PgDistNode ) bool View on GitHub
- add_task ( event : str , group : int , conn_url : str , timeout : float | None = None , cooldown : float | None = None ) PgDistNode | None View on GitHub
- adjust_postgres_gucs ( parameters : Dict [ str , Any ] ) None View on GitHub
-
Adjust GUCs in the current PostgreSQL configuration.
- Parameters :
-
parameters – dictionary of GUCs, with key as GUC name and the corresponding value as current GUC value.
- bootstrap ( ) None View on GitHub
-
Bootstrap handler.
Is called when the new cluster is initialized (through
initdbor a custom bootstrap method).
- find_task_by_group ( group : int ) int | None View on GitHub
- handle_event ( cluster : Cluster , event : Dict [ str , Any ] ) None View on GitHub
-
Handle an event sent from a worker node.
- Parameters :
-
-
cluster – the currently known cluster state from DCS.
-
event – the event to be handled.
-
- ignore_replication_slot ( slot : Dict [ str , str ] ) bool View on GitHub
-
Check whether provided replication slot existing in the database should not be removed.
Note
MPP database may create replication slots for its own use, for example to migrate data between workers using logical replication, and we don’t want to suddenly drop them.
- Parameters :
-
slot – dictionary containing the replication slot settings, like
name,database,type, andplugin. - Returns :
-
Trueif the replication slots should not be removed, otherwiseFalse.
- load_pg_dist_node ( ) bool View on GitHub
-
Read from the
pg_dist_nodetable and put it into the local cache
- on_demote ( ) None View on GitHub
-
On demote handler.
Is called when the primary was demoted.
- pick_task ( ) Tuple [ int | None , PgDistNode | None ] View on GitHub
-
Returns the tuple(i, task), where
i- is the task index in the self._tasks listTasks are picked by following priorities:
-
If there is already a transaction in progress, pick a task that that will change already affected worker primary.
-
If the coordinator address should be changed - pick a task with group=0 (coordinators are always in group 0).
-
Pick a task that is the oldest (first from the self._tasks)
-
- process_task ( task : PgDistNode ) bool View on GitHub
-
Updates a single row in
pg_dist_nodetable, optionally in a transaction.The transaction is started if we do a demote of the worker node or before promoting the other worker if there is no transaction in progress. And, the transaction is committed when the switchover/failover completed.
- Parameters :
-
task – reference to a
PgDistNodeobject that represents a row to be updated/created. - Returns :
-
Trueif the row was successfully created/updated or transaction in progress was committed as an indicator that theself._pg_dist_nodecache should be updated, or, if the new transaction was opened, this method returnsFalse.
- process_tasks ( ) None View on GitHub
- run ( ) None View on GitHub
-
Method representing the thread’s activity.
You may override this method in a subclass. The standard run() method invokes the callable object passed to the object’s constructor as the target argument, if any, with sequential and keyword arguments taken from the args and kwargs arguments, respectively.
- schedule_cache_rebuild ( ) None View on GitHub
-
Cache rebuild handler.
Is called to notify handler that it has to refresh its metadata cache from the database.
- sync_meta_data ( cluster : Cluster ) None View on GitHub
-
Maintain the
pg_dist_nodefrom the coordinator leader every heartbeat loop.We can’t always rely on REST API calls from worker nodes in order to maintain
pg_dist_node, therefore at least once per heartbeat loop we make sure that works registered inself._pg_dist_nodecache are matching the cluster view from DCS by creating tasks the same way as it is done from the REST API.
- update_node ( task : PgDistNode ) None View on GitHub
- class patroni.postgresql.mpp.citus. PgDistNode ( group : int , host : str , port : int , event : str , nodeid : int | None = None , timeout : float | None = None , cooldown : float | None = None ) View on GitHub
-
Bases:
objectRepresents a single row in the
pg_dist_nodetable- __init__ ( group : int , host : str , port : int , event : str , nodeid : int | None = None , timeout : float | None = None , cooldown : float | None = None ) None View on GitHub
- wait ( ) None View on GitHub
- wakeup ( ) None View on GitHub