snowflake_node
Keeps track of all the current snowflake nodes in use
Primary Key:Checks:snowflake_node_db_id_check-((database_pid IS NULL) = (database_connection_started IS NULL))snowflake_node_node_id_check-((node_id >= 0) AND (node_id <= 1023))
| Column | Data Type | Nullable | Indexed | Description |
|---|---|---|---|---|
node_id | smallint | No | Yes | Unique Snowflake ID used to prevent collisions with multiple nodes (also known as workers). Generated through expression: |
start_time | timestamp with time zone | Yes | No | The time when the node_id was acquired. Generated through expression: |
last_updated_time | timestamp with time zone | Yes | No | Updated every 30s while a node_id is being used by a worker. The node is considered stale after 30 minutes of no updates and the entry is evicted, ideally this is never used. 30m is double the expected possible idle period of 15m on Google Cloud stated here: https://cloud.google.com/run/docs/about-instance-autoscaling#:~:text=Cloud%20Run%20does%20not%20immediately,of%20a%20sudden%20traffic%20spike Generated through expression: |
source | text | No | No | Where the node_id was registered from, for example "service/snowflake". Generated through expression: |
database_connection_started | timestamp with time zone | Yes | No | The time the database connection was created start determined from pg_stat_activity.backend_start. See database_pid for more information. Generated through expression: |
database_pid | integer | Yes | No | The PID of the database connection that acquired this Snowflake ID, only set for claims.acquire_snowflake_id. Database processes can't be relied on to refresh the last_updated_time of their rows because there may be very long waits and a background process to connect to the database is simply not feasible. Generated through expression: |