Spec-Zone.ru › MariaDB

MyRocks и групповая фиксация с бинарным журналом

MyRocks поддерживает групповую фиксацию с бинарным журналом (MDEV-11934).

Значения счётчиков, за которыми следует наблюдать

(Следующее необходимо только при изучении внутренних механизмов MyRocks)

Счётчики групповой фиксации MariaDB:

Binlog_commits — количество транзакций, записанных в бинарный журнал

Binlog_group_commits — количество произошедших групповых фиксаций. (Например, если в каждой группе было две транзакции, это значение будет в два раза меньше, чем Binlog_commits)

Со стороны RocksDB есть один релевантный счётчик: Rocksdb_wal_synced — количество раз, когда файл журнала WAL RocksDB был синхронизирован. (TODO: это происходит после групповой фиксации, правильно?)

О значении rocksdb_wal_group_syncs

FB/MySQL-5.6 имеет счётчик rocksdb_wal_group_syncs (счётчик предоставляется MyRocks, он не является отображением счётчика RocksDB). Он увеличивается в rocksdb_flush_wal() при вызове rdb->FlushWAL().

rocksdb_flush_wal() вызывается групповой фиксацией MySQL, когда она хочет сделать постоянными результаты нескольких вызовов rocksdb_prepare().

Таким образом, значение rocksdb_wal_group_syncs в FB/MySQL-5.6 аналогично значению Binlog_group_commits в MariaDB.

В MariaDB нет такого вызова, каждый вызов rocksdb_prepare() сам отвечает за свою постоянность.

Из-за этого rocksdb_wal_group_syncs равен нулю для MariaDB. (В настоящее время он увеличивается только при переключении бинарного журнала).

Примеры

Итак, для рабочей нагрузки с concurrency=50, n_queries=10K, получаем

  • Binlog_commits=10K
  • Binlog_group_commits=794
  • Rocksdb_wal_synced=8362

Это на RAM-диске

Для рабочей нагрузки с concurrency=50, n_queries=10K, вращающийся жёсткий диск ноутбука, получаем

  • Binlog_commits= 10K
  • Binlog_group_commits=1403
  • Rocksdb_wal_synced=400

Тест занял 38 секунд, число синхронизаций было 1400+400=1800, что даёт 45 синхронизаций/сек, что выглядит нормально для медленного вращающегося жёсткого диска настольного компьютера.

Обратите внимание, что WAL был синхронизирован меньше раз, чем было групп фиксации бинарного журнала (?)

Содержимое, воспроизведённое на этом сайте, является собственностью соответствующих владельцев, и это содержимое не проходит предварительной проверки со стороны MariaDB. Мнения, информация и мнения, выраженные в этом содержимом, не обязательно отражают мнения MariaDB или любой другой стороны.

© 2023 MariaDB
Licensed under the Creative Commons Attribution 3.0 Unported License and the GNU Free Documentation License.
https://mariadb.com/kb/en/myrocks-and-group-commit-with-binary-log/

Spec-Zone.ru

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