citusdata / citusdata/citus_docs
How to identify origin of worker sessions
- Dominant language
- CSS
- Stars
- 58
- Forks
- 60
- PR merge metrics
- No merged PRs in 30d
Description
## Communication goals (e.g. detailed howto vs orientation)
Sai asked, "is there a way to identify the worker sessions (generated by say a router query) given a coordinator session?"
### Good locations for content in docs structure
https://docs.citusdata.com/en/v7.2/admin_guide/cluster_management.html?highlight=diagnostic#useful-diagnostic-queries
## How does this work? (devs)
### Example sql
Sai cooked up these queries:
```sql
CREATE TEMP TABLE transactions_on_workers
AS
SELECT
nodename,
split_part(txn_on_worker, '$', 1) process_id,
split_part(txn_on_worker, '$', 2) initiator_node_identifier,
split_part(txn_on_worker, '$', 3) transaction_number,
split_part(txn_on_worker, '$', 4) transaction_stamp
FROM (
SELECT
UNNEST(result::text [ ]) txn_on_worker,
nodename
FROM
run_command_on_workers ($cmd$
SELECT
array_agg(process_id || '$' || initiator_node_identifier || '$' || transaction_number || '$' || transaction_stamp)
FROM
get_all_active_transactions () $cmd$)) a;
SELECT
tw.nodename,
tm.process_id coordinator_process,
tw.process_id worker_process
FROM
get_all_active_transactions () tm
JOIN transactions_on_workers tw ON tm.initiator_node_identifier::text = tw.initiator_node_identifier::text
AND tm.transaction_number::text = tw.transaction_number::text
AND tm.transaction_stamp::text = tw.transaction_stamp::text;
-- If you want it more realtime you could remove the TEMP TABLE and do a subquery join.
```
### Corner cases, gotchas
Contributor guide
Assessment
This issue has not been assessed yet.