-
Notifications
You must be signed in to change notification settings - Fork 4k
Closed
Labels
A-sql-cli-observabilityIssues related to surfacing SQL observability in SHOW, CRDB_INTERNAL, SYSTEM, etc.Issues related to surfacing SQL observability in SHOW, CRDB_INTERNAL, SYSTEM, etc.C-enhancementSolution expected to add code/behavior + preserve backward-compat (pg compat issues are exception)Solution expected to add code/behavior + preserve backward-compat (pg compat issues are exception)
Description
We now have rich contention information on contention, but we require developers to find it and address it themselves. Instead, we could make predetermined views that would ease observability.
Contended tables:
CREATE VIEW crdb_internal.contended_tables (database_name, schema_name, name, num_contention_events)
AS SELECT DISTINCT database_name, schema_name, name, num_contention_events
FROM crdb_internal.cluster_contention_events
JOIN crdb_internal.tables
ON crdb_internal.cluster_contention_events.table_id = crdb_internal.tables.table_id
ORDER BY num_contention_events desc;
With sample TPC-C results:
select * from contended_tables;
database_name | schema_name | name | num_contention_events
----------------+-------------+------------------+------------------------
tpcc | public | warehouse | 496
system | public | jobs | 178
tpcc | public | district | 71
system | public | sqlliveness | 51
NULL | pg_catalog | pg_extension | 33
system | public | jobs | 33
tpcc | public | stock | 9
NULL | pg_catalog | pg_event_trigger | 9
NULL | pg_catalog | pg_event_trigger | 6
NULL | pg_catalog | pg_event_trigger | 4
NULL | pg_catalog | pg_event_trigger | 3
NULL | pg_catalog | pg_event_trigger | 2
NULL | pg_catalog | pg_event_trigger | 1
We should also add views for contended indexes and contended keys.
CREATE VIEW tpcc.contended_indexes (database_name, schema_name, name, index_name, num_contention_events)
AS SELECT DISTINCT database_name, schema_name, name, index_name, num_contention_events
FROM crdb_internal.cluster_contention_events, crdb_internal.tables, crdb_internal.table_indexes
WHERE crdb_internal.cluster_contention_events.index_id = crdb_internal.table_indexes.index_id
AND crdb_internal.cluster_contention_events.table_id = crdb_internal.tables.table_id
ORDER BY num_contention_events desc limit 5;
SELECT * from contended_indexes;
database_name | schema_name | name | index_name | num_contention_events
----------------+-------------+-------------+------------+------------------------
tpcc | public | warehouse | primary | 812
system | public | jobs | primary | 182
tpcc | public | district | primary | 142
system | public | sqlliveness | primary | 55
system | public | jobs | order_idx | 34
(5 rows)
Metadata
Metadata
Assignees
Labels
A-sql-cli-observabilityIssues related to surfacing SQL observability in SHOW, CRDB_INTERNAL, SYSTEM, etc.Issues related to surfacing SQL observability in SHOW, CRDB_INTERNAL, SYSTEM, etc.C-enhancementSolution expected to add code/behavior + preserve backward-compat (pg compat issues are exception)Solution expected to add code/behavior + preserve backward-compat (pg compat issues are exception)