Spec-Zone.ru › MySQL 5.7

14.21.2 Архитектура InnoDB memcached

Подключаемый модуль memcached реализует memcached как демон MySQL, который напрямую обращается к движку хранения данных InnoDB, минуя уровень MySQL SQL.

На следующей схеме показано, как приложение обращается к данным через подключаемый модуль daemon_memcached по сравнению с SQL.

Рисунок 14.4 Сервер MySQL с интегрированным сервером memcached

Shows an application accessing data in the InnoDB storage engine using both SQL and the memcached protocol. Using SQL, the application accesses data through the MySQL Server and Handler API. Using the memcached protocol, the application bypasses the MySQL Server, accessing data through the memcached plugin and InnoDB API. The memcached plugin is comprised of the innodb_memcache interface and optional local cache.

Функции подключаемого модуля daemon_memcached:

  • memcached как демон-подключаемый модуль mysqld. Оба mysqld и memcached работают в одном адресном пространстве процесса с очень низкой задержкой доступа к данным.

  • Прямой доступ к таблицам InnoDB, минуя синтаксический анализатор SQL, оптимизатор и даже уровень API обработчика.

  • Стандартные протоколы memcached, включая текстовый протокол и двоичный протокол. Подключаемый модуль daemon_memcached проходит все 55 тестов совместимости команды memcapable.

  • Поддержка нескольких столбцов. Вы можете отобразить несколько столбцов в часть «значение» хранилища ключ-значение, разделяя значения столбцов заданным пользователем символом-разделителем.

  • По умолчанию, используется протокол memcached для чтения и записи данных напрямую в InnoDB, позволяя MySQL управлять кэшированием в оперативной памяти, используя InnoDB. Параметры по умолчанию представляют собой сочетание высокой надёжности и минимального количества сюрпризов для приложений баз данных. Например, параметры по умолчанию избегают не подтверждённых данных на стороне базы данных или устаревших данных, возвращаемых для запросов memcached get.

  • Расширенные пользователи могут настроить систему как традиционный сервер memcached, с кэшированием всех данных только в движке memcached (кэширование в оперативной памяти), или использовать комбинацию «движка memcached» (кэширование в оперативной памяти) и движка InnoDB memcached (InnoDB в качестве постоянного хранилища на заднем плане).

  • Управление частотой передачи данных между InnoDB и операциями memcached через параметры конфигурации innodb_api_bk_commit_interval, daemon_memcached_r_batch_size и daemon_memcached_w_batch_size. Значения по умолчанию для опций размера пакета составляют 1 для максимальной надёжности.

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

  • Параметр конфигурации innodb_api_trx_level управляет транзакциями запросов, обрабатываемых memcached. Несмотря на то, что memcached не имеет понятия о транзакциях, вы можете использовать этот параметр для управления сроком, в течение которого memcached видит изменения, вызванные заявлениями SQL, выданными для таблицы, используемой подключаемым модулем daemon_memcached. По умолчанию, innodb_api_trx_level установлен на значение READ UNCOMMITTED.

  • Параметр innodb_api_enable_mdl может использоваться для блокировки таблицы на уровне MySQL, чтобы предотвратить удаление или изменение отображаемой таблицы через интерфейс SQL. Без блокировки таблица может быть удалена с уровня MySQL, но сохраняется в хранилище InnoDB до тех пор, пока memcached или какой-либо другой пользователь не перестанут её использовать. «MDL» расшифровывается как «блокировка метаданных».

© 2025 Oracle
Licensed under the GPLv2 License.
https://docs.oracle.com/cd/E17952_01/mysql-5.7-en/innodb-memcached-intro.html

Spec-Zone.ru

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