Spec-Zone.ru › MySQL 8.4

29.12.3.4 Таблица rwlock_instances

Таблица rwlock_instances перечисляет все экземпляры (блокировок чтения-записи), которые были обнаружены Performance Schema во время выполнения сервера. rwlock — это механизм синхронизации, используемый в коде для обеспечения того, что потоки в определённый момент времени могут иметь доступ к общим ресурсам, следуя определённым правилам. Ресурс считается “защищённым” rwlock. Доступ может быть совместным (многие потоки могут иметь блокировку чтения одновременно), исключительным (только один поток может иметь блокировку записи в данный момент) или совместно-исключительным (поток может иметь блокировку записи, разрешая несогласованные чтения другими потоками). Совместно-исключительный доступ также известен как sxlock и оптимизирует одновременность и повышает масштабируемость для задач чтения-записи.

В зависимости от того, сколько потоков запрашивают блокировку, и от типа запрошенных блокировок, доступ может быть предоставлен в режиме совместного доступа, исключительного доступа, совместно-исключительного доступа или вообще не предоставлен, в ожидании завершения работы других потоков.

В таблице rwlock_instances имеются следующие столбцы:

  • NAME

    Имя инструмента, связанное с блокировкой.

  • OBJECT_INSTANCE_BEGIN

    Адрес в памяти инструментированной блокировки.

  • WRITE_LOCKED_BY_THREAD_ID

    Когда поток в данный момент имеет rwlock, заблокированную в режиме исключительного (записи) доступа, WRITE_LOCKED_BY_THREAD_ID — это THREAD_ID потока блокировки, в противном случае это NULL.

  • READ_LOCKED_BY_COUNT

    Когда поток в данный момент имеет rwlock, заблокированную в режиме совместного (чтения) доступа, READ_LOCKED_BY_COUNT увеличивается на 1. Это только счётчик, поэтому его нельзя напрямую использовать для поиска потока, удерживающего блокировку чтения, но он может использоваться для определения наличия конфликта чтения на rwlock и просмотра количества активных читателей.

В таблице rwlock_instances имеются следующие индексы:

  • Первичный ключ по (OBJECT_INSTANCE_BEGIN)

  • Индекс по (NAME)

  • Индекс по (WRITE_LOCKED_BY_THREAD_ID)

TRUNCATE TABLE не разрешено для таблицы rwlock_instances.

Выполнение запросов к обеим следующим таблицам позволит приложению мониторинга или администратору базы данных обнаружить некоторые узкие места или тупиковые ситуации между потоками, связанные с блокировками:

  • events_waits_current, чтобы узнать, на что ждёт поток

  • rwlock_instances, чтобы увидеть, какой другой поток в данный момент владеет rwlock

Существует ограничение: Таблица rwlock_instances может быть использована только для определения потока, удерживающего блокировку записи, но не для потоков, удерживающих блокировку чтения.

© 2025 Oracle
Licensed under the GPLv2 License.
https://docs.oracle.com/cd/E17952_01/mysql-8.4-en/performance-schema-rwlock-instances-table.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API