Spec-Zone.ru › MySQL 5.7

25.12.3.4 Таблица rwlock_instances

Таблица rwlock_instances перечисляет все экземпляры блокировок (чтение/запись), наблюдаемые Performance Schema во время выполнения сервера. Блокировка — это механизм синхронизации, используемый в коде для обеспечения того, что в данный момент нити имеют доступ к общему ресурсу в соответствии с определёнными правилами. Ресурс считается “защищённым” механизмом блокировки 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 и просмотра количества активных читателей.

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

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

  • events_waits_current, чтобы увидеть, чего ждет поток.

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

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

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

Spec-Zone.ru

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