Skip to content

Commit 9151121

Browse files
committed
Scalability bottleneck in ha_innodb::general_fetch
With "WL#6047 - Do not allocate trx id for read-only transactions" m_prebuilt->trx->id is always 0 for read-only transactions. This makes it useless as an index for fuzzy counters. Use server thread id instead similarly to MySQL.
1 parent b002509 commit 9151121

File tree

1 file changed

+4
-4
lines changed

1 file changed

+4
-4
lines changed

storage/innobase/handler/ha_innodb.cc

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10453,10 +10453,10 @@ ha_innobase::index_read(
1045310453
table->status = 0;
1045410454
if (m_prebuilt->table->is_system_db) {
1045510455
srv_stats.n_system_rows_read.add(
10456-
(size_t) m_prebuilt->trx->id, 1);
10456+
thd_get_thread_id(m_prebuilt->trx->mysql_thd), 1);
1045710457
} else {
1045810458
srv_stats.n_rows_read.add(
10459-
(size_t) m_prebuilt->trx->id, 1);
10459+
thd_get_thread_id(m_prebuilt->trx->mysql_thd), 1);
1046010460
}
1046110461
break;
1046210462

@@ -10778,10 +10778,10 @@ ha_innobase::general_fetch(
1077810778
table->status = 0;
1077910779
if (m_prebuilt->table->is_system_db) {
1078010780
srv_stats.n_system_rows_read.add(
10781-
(size_t) m_prebuilt->trx->id, 1);
10781+
thd_get_thread_id(trx->mysql_thd), 1);
1078210782
} else {
1078310783
srv_stats.n_rows_read.add(
10784-
(size_t) m_prebuilt->trx->id, 1);
10784+
thd_get_thread_id(trx->mysql_thd), 1);
1078510785
}
1078610786
break;
1078710787
case DB_RECORD_NOT_FOUND:

0 commit comments

Comments
 (0)