14.21.2 Архитектура InnoDB memcached
Подключаемый модуль memcached реализует memcached как демон MySQL, который напрямую обращается к движку хранения данных InnoDB, минуя уровень MySQL SQL.
На следующей схеме показано, как приложение обращается к данным через подключаемый модуль daemon_memcached по сравнению с SQL.
Рисунок 14.4 Сервер MySQL с интегрированным сервером memcached
Функции подключаемого модуля daemon_memcached:
memcached как демон-подключаемый модуль mysqld. Оба mysqld и memcached работают в одном адресном пространстве процесса с очень низкой задержкой доступа к данным.
Прямой доступ к таблицам
InnoDB, минуя синтаксический анализатор SQL, оптимизатор и даже уровень API обработчика.Стандартные протоколы memcached, включая текстовый протокол и двоичный протокол. Подключаемый модуль
daemon_memcachedпроходит все 55 тестов совместимости команды memcapable.Поддержка нескольких столбцов. Вы можете отобразить несколько столбцов в часть «значение» хранилища ключ-значение, разделяя значения столбцов заданным пользователем символом-разделителем.
По умолчанию, используется протокол memcached для чтения и записи данных напрямую в
InnoDB, позволяя MySQL управлять кэшированием в оперативной памяти, используяInnoDB. Параметры по умолчанию представляют собой сочетание высокой надёжности и минимального количества сюрпризов для приложений баз данных. Например, параметры по умолчанию избегают не подтверждённых данных на стороне базы данных или устаревших данных, возвращаемых для запросов memcachedget.Расширенные пользователи могут настроить систему как традиционный сервер memcached, с кэшированием всех данных только в движке memcached (кэширование в оперативной памяти), или использовать комбинацию «движка memcached» (кэширование в оперативной памяти) и движка
InnoDBmemcached (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.