Spec-Zone.ru › MariaDB

Различия между вариантами MyRocks

MyRocks доступен в

  • ветке MySQL Facebook (FB) (первоначально основанной на MySQL 5.6)
  • MariaDB (с версии 10.2 и 10.3)
  • Percona Server с версии 5.7

На этой странице перечислены различия между этими вариантами.

Эта работа находится в стадии разработки. Содержимое не является окончательным

Расположение данных RocksDB

FB и Percona хранят файлы RocksdDB в $datadir/.rocksdb. MariaDB помещает их в $datadir/#rocksdb. Это более удобно для упаковки и скриптов ОС.

Алгоритмы сжатия

  • Ветвь FB не предоставляет бинарные файлы. Необходимо скомпилировать её с соответствующими библиотеками сжатия.
  • В MariaDB доступные алгоритмы сжатия можно увидеть в переменной rocksdb_supported_compression_types. Начиная с MariaDB 10.7, алгоритмы могут быть установлены как плагин. В более ранних версиях набор поддерживаемых алгоритмов сжатия зависит от платформы.
    • В Ubuntu 16.04 (текущая LTS) это Snappy,Zlib,LZ4,LZ4HC .
    • В CentOS 7.4 это Snappy,Zlib.
    • В архиве bintar это Snappy,Zlib.
  • Percona Server поддерживает: Zlib, ZSTD, LZ4 (the default), LZ4HC. Неподдерживаемые алгоритмы: Snappy, BZip2, XPress.

Информация о версии RocksDB

  • Ветвь FB предоставляет переменную *status* rocksdb_git_hash .
  • MariaDB предоставляет переменную *system* @@rocksdb_git_hash .
  • Percona Server не предоставляет ни одного.

Версия RocksDB

  • Ветка Facebook использует RocksDB 5.10.0 (номер версии можно найти в include/rocksdb/version.h)
commit ba295cda29daee3ffe58549542804efdfd969784
Author: Andrew Kryczka <andrewkr@fb.com>
Date:   Fri Jan 12 11:03:55 2018 -0800
  • MariaDB в настоящее время использует 5.8.0
commit 9a970c81af9807071bd690f4c808c5045866291a
Author: Yi Wu <yiwu@fb.com>
Date:   Wed Sep 13 17:21:35 2017 -0700
  • Percona Server использует 5.8.0
commit ab0542f5ec6e7c7e405267eaa2e2a603a77d570b
Author: Maysam Yabandeh <myabandeh@fb.com>
Date:   Fri Sep 29 07:55:22 2017 -0700

Позиция бинарного лога в information_schema.rocksdb_global_info

  • Ветка FB предоставляет информацию типа information_schema.rocksdb_global_info = BINLOG, NAME={FILE, POS, GTID}.
  • Percona Server не предоставляет её.
  • MariaDB не предоставляет её.

Одно из применений этой информации — использование вывода myrocks_hotbackup для создания нового мастера.

Детектор блокировок пробелов

  • Ветвь FB имеет функцию "Детектор блокировок пробелов". Она расположена на уровне SQL. Её можно контролировать с помощью переменных gap_lock_XXX и по умолчанию она отключена (gap-lock-raise-error=false, gap-lock-write-lock=false).
  • В Percona Server проверка блокировок пробелов включена, но, похоже, нет способа её контролировать? Запросы, использующие блокировки пробелов в MyRocks, завершаются ошибкой, похожей на эту:
insert into tbl2 select * from tbl1;
ERROR 1105 (HY000): Using Gap Lock without full unique key in multi-table or multi-statement transactions
is not allowed. You need to either rewrite queries to use all unique key columns in WHERE equal conditions,
or rewrite to single-table, single-statement transaction.  Query: insert into tbl2 select * from tbl1
  • MariaDB не включает детектор блокировок пробелов.

Сгенерированные столбцы

  • И MariaDB, и Percona Server поддерживают сгенерированные столбцы, но ни один из них не поддерживает их для движка хранения MyRocks (попытки создания таблицы приведут к ошибке).
  • Невидимые столбцы в MariaDB 10.3 поддерживаются (так как это функция уровня SQL).

rpl_skip_tx_api

Ветвь Facebook имеет функцию производительности для репликации slave, rpl_skip_tx_api. Она недоступна в MariaDB или Percona Server.

Подробности

Сравнение выше было выполнено с использованием

  • FB/MySQL 5.6.35
  • Percona Server 5.7.20-19-log
  • MariaDB 10.2.13 (MyRocks — бета-версия)
Содержимое, воспроизведенное на этом сайте, является собственностью соответствующих владельцев, и это содержимое не проверяется заранее компанией 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/differences-between-myrocks-variants/

Spec-Zone.ru

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