RussianLDP Рейтинг@Mail.ru
WebMoney: 
WMZ Z294115950220 
WMR R409981405661 
WME E134003968233 
Visa 
4274 3200 2453 6495 

Глава 5. Конфигурация NDB Cluster

Сервер MySQL, который является частью NDB Cluster, отличается от нормального сервера MySQL в том, что это использует механизм NDB. Этот механизм также иногда упоминается как NDBCLUSTER, хотя NDB правильней.

Чтобы избежать ненужного распределения ресурсов, сервер формируется по умолчанию с выключенным NDB . Для включения NDB необходимо изменить серверный конфигурационный файл my.cnf или запустить сервер с опцией --ndbcluster.

Этот сервер MySQL это часть кластера, таким образом, это также должно знать, как получить доступ к узлу управления, чтобы получить данные о кластерной конфигурации. Поведение по умолчанию должно искать узел управления на localhost. Однако, вы должны определить его местоположение в другом месте, это можно выполнить через my.cnf или в клиенте mysql. Прежде чем механизм хранения NDB сможет использоваться, по крайней мере один узел управления должен быть готов к эксплуатации, а также любые желаемые узлы данных.

Для получения дополнительной информации о --ndbcluster и других опциях mysqld, определенных для NDB Cluster, см. раздел 5.3.9.1.

Можно использовать также NDB Cluster Auto-Installer, чтобы настроить и развернуть NDB Cluster на одном или более хостах, используя основанный на браузере GUI. Для получения дополнительной информации посмотрите раздел 4.1.

Для получения общей информации об установке NDB Cluster см. главу 4.

5.1. Быстрая испытательная установка NDB Cluster

Чтобы ознакомить вас с основами, мы опишем самую простую конфигурацию для функционального NDB Cluster. После этого необходимо быть в состоянии проектировать желаемую установку по информации, предоставленной в других соответствующих разделах этой главы.

Во-первых, необходимо создать каталог конфигурации такой, как /var/lib/mysql-cluster, выполняя следующую команду как системный root:

shell> mkdir /var/lib/mysql-cluster

В этом каталоге создайте файл config.ini, который содержит следующую информацию. Замените соответствующими значениями HostName и DataDir.

# file "config.ini" - showing minimal setup consisting of 1 data node,
# 1 management server, and 3 MySQL servers.
# The empty default разделы are not required, and are shown only for
# the sake of completeness.
# Data nodes must provide a hostname but MySQL Servers are not required
# to do so.
# If you don't know the hostname for your machine, use localhost.
# The DataDir parameter also has a default value, but it is recommended to
# set it explicitly.
# Note: [db], [api], and [mgm] are aliases for [ndbd], [mysqld], and [ndb_mgmd],
# respectively. [db] is deprecated and should not be used in new installations.
[ndbd default]
NoOfReplicas= 1
[mysqlddefault]
[ndb_mgmd default]
[tcp default]
[ndb_mgmd]
HostName= myhost.example.com
[ndbd]
HostName= myhost.example.com
DataDir= /var/lib/mysql-cluster
[mysqld]
[mysqld]
[mysqld]

Можно теперь запустить сервер управления ndb_mgmd. По умолчанию это пытается читать файл config.ini в его текущем рабочем каталоге, поэтому измените местоположение в каталог, где файл расположен, затем вызовите ndb_mgmd:

shell> cd /var/lib/mysql-cluster
shell> ndb_mgmd

Запустите единственный узел данных ndbd:

shell> ndbd

Для параметров командной строки, которые могут использоваться, начиная ndbd, см. раздел 6.32.

По умолчанию ndbd ищет сервер управления в localhost на порту 1186.

Если вы установили MySQL из архива, необходимо будет определить путь ndb_mgmd и ndbd явно. Обычно они будут найдены в /usr/local/mysql/bin.

Наконец, измените местоположение к каталогу данных MySQL (обычно это /var/lib/mysql или /usr/local/mysql/data) и удостоверьтесь, что my.cnf содержит выбор, необходимый, чтобы позволить механизм хранения NDB:

[mysqld]
ndbcluster

Можно теперь начать сервер MySQL как обычно:

shell> mysqld_safe --user=mysql &

Ждите, чтобы удостовериться, что сервер MySQL работает правильно. Если вы видите уведомление mysql ended, проверьте серверный файл .err.

Если все подходило до сих пор, теперь можно начать использовать кластер. Соединитесь с сервером и проверьте, что NDBCLUSTER включен:

shell> mysql
Welcome to the MySQL monitor.Commands end with ; or \g.
Your MySQL connection id is 1 to server version: 5.7.30
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql> SHOW ENGINES\G
...
*************************** 12. row ***************************
Engine: NDBCLUSTER
Support: YES
Comment: Clustered, fault-tolerant, memory-based tables
*************************** 13. row ***************************
Engine: NDB
Support: YES
Comment: Alias for NDBCLUSTER
...

Номера строк, показанные в предыдущем выводе в качестве примера, могут отличаться от показанных на вашей системе в зависимости от того, как ваш сервер формируется.

Попытайтесь создать таблицу NDBCLUSTER:

shell> mysql
mysql> USE test;
Database changed
mysql> CREATE TABLE ctest (i INT) ENGINE=NDBCLUSTER;
Query OK, 0 rows affected (0.09 sec)
mysql> SHOW CREATE TABLE ctest \G
*************************** 1. row ***************************
  Table: ctest
Create Table: CREATE TABLE `ctest` (`i` int(11) default NULL)
ENGINE=ndbcluster DEFAULT CHARSET=latin1
1 row in set (0.00 sec)

Чтобы проверить, что ваши узлы были настроены правильно, запустите клиент управления:

shell> ndb_mgm

Используйте команду SHOW из клиента управления, чтобы получить отчет о статусе:

ndb_mgm> SHOW
Cluster Configuration
---------------------
[ndbd(NDB)] 1 node(s)
id=2@127.0.0.1(версия 5.7.29-ndb-7.5.17, Nodegroup: 0, *)
[ndb_mgmd(MGM)] 1 node(s)
id=1@127.0.0.1(версия 5.7.29-ndb-7.5.17)
[mysqld(API)] 3 node(s)
id=3@127.0.0.1(версия 5.7.29-ndb-7.5.17)
id=4 (not connected, accepting connect from any host)
id=5 (not connected, accepting connect from any host)

В этом пункте вы успешно настроили работу NDB Cluster. Можно теперь хранить данные в нем при помощи любой таблицы, составленной с ENGINE=NDBCLUSTER или ENGINE=NDB.

5.2. Обзор параметров кластерной конфигурации NDB, вариантов и переменных

Следующие несколько секций предоставляют сводные таблицы параметров конфигурации узла NDB Cluster, используемых в файле config.ini, чтобы управлять различными аспектами поведения узла, а также вариантов и переменных, прочитанных mysqld из файла my.cnf или из командной строки, когда управляется как процесс NDB Cluster. Каждая из таблиц параметров узла перечисляет параметры для данного типа (ndbd, ndb_mgmd, mysqld, computer, tcp или shm). Все таблицы включают тип данных для параметра, выбора или переменной, а также ее умолчание, минимальное и максимальное значения.

Соображения о перезапуске узлов. Для параметров узла эти таблицы также показывают, какой перезапуск требуется (перезапуск узла или системный перезапуск) и должен ли перезапуск быть сделан с --initial, чтобы изменить значение данного параметра конфигурации. Выполняя перезапуск узла или начальный перезапуск узла, все узлы данных группы должны быть перезапущены в свою очередь (также называется катящимся перезапуском). Возможно обновить параметры кластерной конфигурации, отмеченные как node онлайн то есть, не закрывая группу этим способом. Начальный перезапуск узла требует перезапуска каждого процесса ndbd с опцией --initial.

Системный перезапуск требует полного закрытия и перезапуска всей группы. Начальный системный перезапуск требует создания резервной копии, стирания файловой системы после закрытия и затем восстановления из резервной копии после перезапуска.

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

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

Однако, уменьшение значения таких параметров делается, используя перезапуск узла, рекомендуется, чтобы вы сделали это только после тщательного планирования и тестирования. Это особенно верно относительно тех параметров, которые касаются использования памяти и дискового пространства, например, MaxNoOfTables, MaxNoOfOrderedIndexes и MaxNoOfUniqueHashIndexes. Кроме того, обычно имеет место, что параметры конфигурации, касающиеся использования памяти и использования диска, могут быть подняты, используя простой перезапуск узла, но они требуют начальный перезапуск узла для уменьшения.

Поскольку некоторые из этих параметров могут использоваться для формирования больше, чем одного типа узла, они могут появиться больше, чем в одной таблице.

4294967039 часто появляется как максимальное значение в этих таблицах. Это значение определяется в NDBCLUSTER как MAX_INT_RNIL оно равно 0xFFFFFEFF или 232-28-1.

5.2.1. Параметры конфигурации узла данных NDB Cluster

Списки в этой секции предоставляют информацию о параметрах, используемых в разделах [ndbd] или [ndbd default] файла config.ini для формирования узлов данных NDB Cluster. Для подробных описаний и другой дополнительной информации о каждом из этих параметров, посмотрите раздел 5.3.6.

Эти параметры также относятся к ndbmtd, многопоточной версии ndbd. Для получения дополнительной информации посмотрите раздел 6.3.

  • Arbitration: Как арбитраж должен быть выполнен, чтобы избежать проблем в случае неудачи узла.

  • ArbitrationTimeout: Максимальное время (миллисекунды), которое разделение базы данных ждет арбитражного сигнала.

  • BackupDataBufferSize: Размер по умолчанию буфера данных для резервной копии (в байтах).

  • BackupDataDir: Путь, где сохранить резервные копии. Обратите внимание на то, что последовательность '/BACKUP' всегда прилагается к этому значению так, чтобы *эффективное* умолчание было FileSystemPath/BACKUP.

  • BackupDiskWriteSpeedPct: Процент наборов ассигнованного максимума скорости записи узла данных (MaxDiskWriteSpeed), чтобы зарезервировать для LCP, начиная резервную копию.

  • BackupLogBufferSize: Размер по умолчанию буфера регистрации для резервной копии (в байтах).

  • BackupMaxWriteSize: Максимальный размер записей файловой системы, сделанный резервной копией (в байтах).

  • BackupMemory: Общая память, ассигнованная для резервных копий на узел (в байтах).

  • BackupReportFrequency: Частота отчетов о состоянии во время резервной копии в секундах.

  • BackupWriteSize: Размер по умолчанию записи файловой системы, сделанной резервной копией (в байтах).

  • BatchSizePerLocalScan: Используемый, чтобы вычислить количество блокировок записи для просмотра с блокировкой хранения.

  • BuildIndexThreads: Количество потоков, чтобы использовать для создания упорядоченных индексов во время перезапуска системы или узла. Также применяется, выполняя ndb_restore --rebuild-indexes. Установка этого параметра в 0 отключает многопоточное создание упорядоченных индексов.

  • CompressedBackup: Используйте zlib, чтобы сжать резервные копии.

  • CompressedLCP: Напишите сжатый LCP, использующий zlib.

  • ConnectCheckIntervalDelay: Время между попытками соединения с узлом данных. Узел данных считают подозреваемым после 1 интервала и мертвым после 2 интервалов без ответа.

  • CrashOnCorruptedTuple: Когда позволено, узел должен закрыться каждый раз, когда обнаруживает испорченный кортеж.

  • DataDir: Каталог данных для этого узла.

  • DataMemory: Число байтов на каждом узле данных ассигнуется для того, чтобы хранить данные, зависит от доступной системе RAM и размера IndexMemory.

  • DefaultHashMapSize: Размер набора (в ведрах), чтобы использовать для таблицы хэш-карт. Поддерживаются три значения: 0, 240 и 3840. Предназначено прежде всего для модернизаций в NDB 7.2.

  • DictTrace: Позвольте отладку DBDICT, это только для развития NDB.

  • DiskIOThreadPool: Количество развязанных потоков для доступа к файлу, относится только к дисковым данным.

  • Diskless: Работать, не используя диск.

  • DiskPageBufferEntries: Количество записей страницы на 32 КБ, чтобы ассигновать в DiskPageBufferMemory. Очень большие транзакции по диску могут потребовать увеличивания этого значения.

  • DiskPageBufferMemory: Число байтов на каждом узле данных ассигнуется для дискового кэш-буфера страницы.

  • DiskSyncSize: Объем данных, написанный в файл перед синхронизацией.

  • EnablePartialLcp: Позвольте частичный LCP (true), если это отключено (false), все LCP пишут полные контрольные точки.

  • EnableRedoControl: Позвольте адаптивную скорость для управления использованием журнала отката.

  • EventLogBufferSize: Размер кольцевого буфера для журнала событий NDB в узлах данных.

  • ExecuteOnComputer: Последовательность, ссылающаяся на более ранний определенный COMPUTER.

  • ExtraSendBufferMemory: Память, чтобы использовать для буфера передачи в дополнение к любому ассигнованному TotalSendBufferMemory или SendBufferMemory. Умолчание (0) позволяет до 16 МБ.

  • FileSystemPath: Путь к каталогу, где узел данных хранит свои данные (каталог должен существовать).

  • FileSystemPathDataFiles: Путь к каталогу, где узел данных хранит свои дисковые файлы данных. Значение по умолчанию FilesystemPathDD, если задано, иначе FilesystemPath используется, если он установлен, иначе используется значение DataDir.

  • FileSystemPathDD: Путь к каталогу, где узел данных хранит свои дисковые файлы данных и файлы отката. Значение по умолчанию FileSystemPath, если задано, иначе используется значение DataDir.

  • FileSystemPathUndoFiles: Путь к каталогу, где узел данных хранит свои файлы отката для дисковых данных. Значение по умолчанию FilesystemPathDD, если есть, иначе FilesystemPath, если есть, иначе DataDir.

  • FragmentLogFileSize: Размер каждого файла журнала отката.

  • HeartbeatIntervalDbApi: Время между синхроимпульсом узла данных и узла API. Связь API закрыта после 3 пропущенных импульсов.

  • HeartbeatIntervalDbDb: Время между синхроимпульсом узла данных к другому узлу данных, узел данных рассматривают мертвым после 3 пропущенных импульсов.

  • HeartbeatOrder: Устанавливает порядок, в котором узлы данных проверяют синхроимпульс друг друга на определение, активен ли данный узел и связан ли с кластером. Должен быть ноль для всех узлов данных или разными ненулевыми значениями для всех узлов данных, см. документацию для дальнейшего руководства.

  • HostName: Имя хоста или IP-адрес для этого узла данных.

  • IndexMemory: Число байтов на каждом узле данных, ктоорое ассигнуется для хранения индексов, зависит от доступной системе RAM и размера DataMemory.

  • IndexStatAutoCreate: Включить/отключить автоматический сбор статистики, когда индексы будут созданы.

  • IndexStatAutoUpdate: Отслеживать изменения индексов и вызывать автоматические обновления статистики.

  • IndexStatSaveScale: Масштабный коэффициент используется в определении размера сохраненной статистики индекса.

  • IndexStatSaveSize: Максимальный размер в байтах для статистики на индекс.

  • IndexStatTriggerPct: Пороговое процентное изменение в операциях DML для обновлений статистики индекса. Значение сокращено по IndexStatTriggerScale.

  • IndexStatTriggerScale: Сократить IndexStatTriggerPct на эту сумму, умноженную на двоичный логарифм размера индекса для большого индекса. Установите в 0, чтобы отключить вычисление.

  • IndexStatUpdateDelay: Минимальная задержка между автоматическим обновлением статистики для данного индекса. 0 = никакой задержки.

  • InitFragmentLogFiles: Инициализируйте (редкие/полные) файлы журнала фрагмента.

  • InitialLogFileGroup: Описывает группу файла журнала, которая создается во время начального запуска. См. документацию для формата.

  • InitialNoOfOpenFiles: Начальное количество открытых файлов на узел данных. Один поток создается на файл.

  • InitialTablespace: Описывает табличное пространство, которое создается во время начального запуска. См. документацию для формата.

  • InsertRecoveryWork: Процент RecoveryWork используется для вставленных строк, не имеет никакого эффекта, если частичные местные контрольные точки не используются.

  • LateAlloc: Ассигнуйте память после того, как связь с сервером управления будет установлена.

  • LcpScanProgressTimeout: Максимальное время, когда местный просмотр фрагмента контрольной точки может быть остановлен перед закрытием узла, чтобы гарантировать прогресс LCP в масштабе всей системы. Используйте 0, чтобы отключить.

  • LockExecuteThreadToCPU: Разграниченный запятой список CPU ID.

  • LockMaintThreadsToCPU: CPU ID, указывающий, который CPU управляет сервисными потоками.

  • LockPagesInMainMemory: 0=выключить блокировку, 1=блокировка после выделения памяти, 2=блокировка перед выделением памяти.

  • LogLevelCheckpoint: Уровень регистрации местной и глобальной информации о контрольной точке, выводимой в stdout.

  • LogLevelCongestion: Уровень информации о перегруженности, выводимой в stdout.

  • LogLevelConnection: Уровень информации о соединении/разъединении узла, выводимой в stdout.

  • LogLevelError: Транспортер, ошибки синхронизации, выводимые в stdout.

  • LogLevelInfo: Синхроимпульс и информация о регистрации, выводимая в stdout.

  • LogLevelNodeRestart: Уровень информации о перезапуске и неудаче узла, выводимой в stdout.

  • LogLevelShutdown: Уровень информации о закрытии узла, выводимой в stdout.

  • LogLevelStartup: Уровень информации о запуске узла, выводимой в stdout.

  • LogLevelStatistic: Уровень информации о транспортере, транзакции и операции, выводимой в stdout.

  • LongMessageBuffer: Число байтов, которое ассигнуется на каждом узле данных для внутренних длинных сообщений.

  • MaxAllocate: Максимальный размер распределения, чтобы использовать, ассигнуя память для таблиц.

  • MaxBufferedEpochs: Позволить число эпох, на которое подписывающийся узел может отстать (необработанные эпохи). Превышение заставит отстающих подписчиков быть разъединенными.

  • MaxBufferedEpochBytes: Общее количество байтов, которое ассигнуется для того, чтобы буферизовать эпохи.

  • MaxDiskWriteSpeed: Максимальное количество байт в секунду, которые могут быть написаны LCP и резервной копией, когда никакие перезапуски не продолжаются.

  • MaxDiskWriteSpeedOtherNodeRestart: Максимальное количество байт в секунду, которые могут быть написаны LCP и резервной копией, когда другой узел перезапускается.

  • MaxDiskWriteSpeedOwnRestart: Максимальное количество байт в секунду, которые могут быть написаны LCP и резервной копией, когда этот узел перезапускается.

  • MaxFKBuildBatchSize: Максимальный пакетный размер просмотра, чтобы использовать для создания внешних ключей. Увеличение этого значения может ускорить создание внешних ключей, но также влияет на трафик.

  • MaxDMLOperationsPerTransaction: Размер предела транзакции, транзакция аварийно прекращает работу, если требует больше, чем это количество операций DML. Установите в 0, чтобы отключить.

  • MaxLCPStartDelay: Время в секундах, которое LCP получает голоса для контрольной точки mutex (чтобы позволить другим узлам данных закончить синхронизацию метаданных) прежде, чем помещать себя в очередь блокировки для параллельного восстановления данных таблицы.

  • MaxNoOfAttributes: Предлагает общее количество признаков, сохраненных в базе данных (сумма по всем таблицам).

  • MaxNoOfConcurrentIndexOperations: Общее количество операций по индексу, которые могут выполниться одновременно на одном узле данных.

  • MaxNoOfConcurrentOperations: Максимальное количество операций, которые делают запись в операционном координаторе.

  • MaxNoOfConcurrentScans: Максимальное количество просмотров, выполняющихся одновременно на узле данных.

  • MaxNoOfConcurrentSubOperations: Максимальное количество параллельных операций подписчика.

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

  • MaxNoOfFiredTriggers: Общее количество триггеров, которые могут сработать одновременно на одном узле данных.

  • MaxNoOfLocalOperations: Максимальное количество операционных отчетов на этом узле данных.

  • MaxNoOfLocalScans: Максимальное количество просмотров фрагмента параллельно на этом узле данных.

  • MaxNoOfOpenFiles: Максимальное количество файлов, открытых на узел данных. Один поток создается на файл.

  • MaxNoOfOrderedIndexes: Общее количество упорядоченных индексов, которые могут быть определены в системе.

  • MaxNoOfSavedMessages: Максимальное количество сообщений об ошибках, чтобы написать в журнале ошибок и максимальное количество файлов трассировки, чтобы сохранить.

  • MaxNoOfSubscribers: Максимальное количество подписчиков (умолчание 0 = MaxNoOfTables * 2).

  • MaxNoOfSubscriptions: Максимальное количество подписок (умолчание 0 = MaxNoOfTables).

  • MaxNoOfTables: Предлагает общее количество таблиц, хранимых NDB в базе данных.

  • MaxNoOfTriggers: Общее количество триггеров, которые могут быть определены в системе.

  • MaxNoOfUniqueHashIndexes: Общее количество уникальных хэш-индексов, которые могут быть определены в системе.

  • MaxParallelCopyInstances: Количество параллельных копий во время перезапусков узла. Умолчание 0 использует количество LDM на обоих узлах, максимум 16.

  • MaxParallelScansPerFragment: Максимальное количество параллельных просмотров на фрагмент. Как только этот предел достигнут, просмотры преобразовываются в последовательную форму.

  • MaxReorgBuildBatchSize: Максимальный пакетный размер просмотра, чтобы использовать для перестройки разделения таблицы. Увеличение этого значения может ускорить перестройку разделения таблицы, но влияет на трафик.

  • MaxStartFailRetries: Максимум повторов, когда узел данных терпит неудачу на запуске, требует StopOnError = 0. Установка в 0 заставляет пытаться запустить узел неопределенное число раз.

  • MaxUIBuildBatchSize: Максимальный пакетный размер просмотра, чтобы использовать для создания уникальных ключей. Увеличение может ускорить создание уникальных ключей, но влияет на трафик.

  • MemReportFrequency: Частота отчетов использования памяти в секундах, 0 = сообщать только, когда превышен процент ограничения.

  • MinDiskWriteSpeed: Минимальное число байт в секунду, которые могут быть написаны LCP и резервной копией.

  • MinFreePct: Процент ресурсов памяти, чтобы держать в запасе для перезапусков.

  • NodeGroup: Группа узлов, к которой принадлежит узел данных, используется только во время начального запуска.

  • NodeId: Число, однозначно определяющее узел данных среди всех узлов в группе.

  • NoOfFragmentLogFiles: Количество файлов журнала отката по 16 МБ в каждом из 4 наборов файлов, принадлежащих узлу данных.

  • NoOfReplicas: Количество копий всех данных в базе данных.

  • Numa: (только Linux, требует libnuma) Средство управления поддержкой NUMA. Установка в 0 разрешает определить использование чередования процессом узла данных, 1 значит, что это определяется узлом данных.

  • ODirect: Используйте запись и чтение файлов через O_DIRECT, если это возможно.

  • ODirectSyncFlag: Записи O_DIRECT рассматриваются как синхронизированные, проигнорировано, когда ODirect не позволен, InitFragmentLogFiles установлен в SPARSE или при обоих условиях.

  • RealtimeScheduler: Когда true, потоки узла данных намечены как потоки в реальном времени. Умолчание false.

  • RecoveryWork: Процент издержек хранения для файлов LCP: большее значение означает меньше работы в нормальном функционировании, но больше работы во время восстановления.

  • RedoBuffer: Число байтов на каждом узле данных, которое ассигнуется для написания журналов отката.

  • RedoOverCommitCounter: Когда RedoOverCommitLimit был превышен это число раз, транзакции прерываются, и операции обработаны, как определено DefaultOperationRedoProblemAction.

  • RedoOverCommitLimit: Каждый раз, когда сброс текущего буфер отката занимает больше времени, чем это число секунд, число раз, сколько это произошло, сравнивается с RedoOverCommitCounter.

  • RestartOnErrorInsert: Тип контроля перезапуска, вызванного ошибкой вставки (когда включено StopOnError).

  • SchedulerExecutionTimer: Число микросекунд, чтобы выполнить в планировщике перед отправкой.

  • SchedulerResponsiveness: Задает оптимизацию ответа планировщика NDB 0-10, более высокие значения обеспечивают лучшее время отклика, но более низкую пропускную способность.

  • SchedulerSpinTimer: Число микросекунд, чтобы выполнить в планировщике перед сном.

  • ServerPort: Порт транспортера для поступающих связей от узлов API.

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

  • StartFailRetryDelay: Задержка в секундах после неудачи начала до повторной попытки, требует StopOnError = 0.

  • StartFailureTimeout: Миллисекунды, сколько ждать перед завершением (0=бесконечно).

  • StartNoNodeGroupTimeout: Время, чтобы ждать узлы без групп прежде, чем попытаться начать запуск (0=вечно).

  • StartPartialTimeout: Миллисекунды, чтобы ждать прежде, чем попытаться старотовать без всех узлов. (0=вечно).

  • StartPartitionedTimeout: Миллисекунды, чтобы ждать прежде, чем попытаться запустить разделы (0=вечно).

  • StartupStatusReportFrequency: Частота отчетов о состоянии во время запуска.

  • StopOnError: Когда установлено в 0, узел данных автоматически перезапускается и возвращает следующие неудачи узла.

  • StringMemory: Размер по умолчанию памяти последовательности (от 0 до 100 = % от максимума, больше 101 = фактические байты).

  • TcpBind_INADDR_ANY: Свяжите IP_ADDR_ANY так, чтобы связи могли быть установлены отовсюду (для самозарожденных связей).

  • TimeBetweenEpochs: Время между эпохами (синхронизация, используемая для репликации).

  • TimeBetweenEpochsTimeout: Тайм-аут в течение времени между эпохами. Превышение вызовет закрытие узла.

  • TimeBetweenGlobalCheckpoints: Время между передачей группы транзакций диску.

  • TimeBetweenGlobalCheckpointsTimeout: Минимальный перерыв для передачи группы транзакций диску.

  • TimeBetweenInactiveTransactionAbortCheck: Время между проверками на неактивные транзакции.

  • TimeBetweenLocalCheckpoints: Время между взятием снимков базы данных (выражено в двоичном логарифме байтов).

  • TimeBetweenWatchDogCheck: Время между выполнением проверок в узле данных.

  • TimeBetweenWatchDogCheckInitial: Время между выполнением проверок в узле данных (фазы раннего запуска, когда память ассигнуется).

  • TotalSendBufferMemory: Общая память, чтобы использовать для всех буферов передачи транспортера.

  • TransactionBufferMemory: Динамическое место буфера (в байтах) для ключа и данных о признаке выделено для каждого узла данных.

  • TransactionDeadlockDetectionTimeout: Сколько времени может потратить выполнение транзакции в узле данных. Это время, которое операционный координатор должен ждать каждый узел данных, участвующий в транзакции, чтобы выполнить запрос. Если узел данных берет больше, чем это количество времени, транзакция прерывается.

  • TransactionInactiveTimeout: Сколько миллисекунд приложение ждет прежде, чем выполнить другую часть транзакции. Это время, которое операционный координатор ждет, чтобы выполнить запросы или послать другую часть транзакции. Если это занимает слишком много времени, то транзакция прерывается. 0 значит, что тайми-аута нет.

  • TwoPassInitialNodeRestartCopy: Данные о копии в 2 проходах во время начального перезапуска узла, который позволяет многопоточное создание упорядоченных индексов для таких перезапусков.

  • UndoDataBuffer: Число байтов на каждом узле данных, ассигнованных для написания данных журнала отмен.

  • UndoIndexBuffer: Число байтов на каждом узле данных, ассигнованных для написания индекса журнала отмен.

  • UseShm: Используйте сопряжение с общей памятью между этим узлом данных и узлом API на этом хосте.

Следующие параметры определены для ndbmtd:

  • MaxNoOfExecutionThreads: Для ndbmtd только, определите максимальное количество потоков выполнения.

  • NoOfFragmentLogParts: Количество групп файлов журнала отката, принадлежащих этому узлу данных, значение должно быть кратным числу 4.

  • ThreadConfig: Используемый для конфигурации многопоточных узлов данных (ndbmtd). Умолчание: пустая строка, см. документацию для синтаксиса и другой информации.

5.2.2. Параметры конфигурации узла управления NDB Cluster

Листинг в этой секции предоставляет информацию о параметрах, используемых в секциях [ndb_mgmd] или [mgm] файла config.ini для формирования узлов управления NDB Cluster. Для подробных описаний и другой дополнительной информации о каждом из этих параметров посмотрите раздел 5.3.5.

  • ArbitrationDelay: Когда надо вынести решение, арбитр ждет это время до голосования (миллисекунды).

  • ArbitrationRank: Если 0, узел управления не арбитр. Ядро выбирает арбитров в порядке 1, 2.

  • DataDir: Каталог данных для этого узла.

  • ExecuteOnComputer: Последовательность, ссылающаяся на более ранний определенный COMPUTER.

  • HeartbeatIntervalMgmdMgmd: Время между синхроимпульсами узлов управления, связь между узлами управления считают потерянной после 3 пропущенных сигналов.

  • HeartbeatThreadPriority: Устанавливает политику потока синхроимпульса и приоритет для узлов управления, см. руководство для позволенных значений.

  • HostName: Имя хоста или IP-адрес для этого узла управления.

  • Id : Идентификатор узла управления. Устарел, используйте NodeId вместо этого.

  • LogDestination: Куда послать сообщения регистрации: консоль, системный журнал или определенный файл журнала.

  • NodeId: Однозначное определение узла управления среди всех узлов в группе.

  • PortNumber: Номер порта, чтобы послать команды и получить конфигурацию от сервера управления.

  • PortNumberStats: Номер порта для получения статистической информации от сервера управления.

  • TotalSendBufferMemory: Общая память, чтобы использовать для всех буферов передачи транспортера.

  • wan: Используйте настройки WAN TCP как умолчание.

После внесения изменений в конфигурации узла управления необходимо выполнить катящийся перезапуск. Посмотрите раздел 5.3.5.

Чтобы добавить новые серверы управления NDB Cluster, также необходимо выполнить катящийся перезапуск всех узлов группы после изменения любого существующего файла config.ini. Для получения дополнительной информации о возникновении проблем, используя многократные узлы управления, посмотрите раздел 3.7.10.

5.2.3. Параметры конфигурации NDB Cluster для узлов SQL и API

Листинг в этой секции предоставляет информацию о параметрах, используемых в разделах [mysqld] и [api] файла config.ini для формирования узлов SQL и API. Для подробных описаний и другой дополнительной информации о каждом из этих параметров посмотрите раздел 5.3.7.

  • ApiVerbose: Позвольте отладку API NDB, только для развития NDB.

  • ArbitrationDelay: Когда надо вынести решение, арбитр ждет это число миллисекунд до голосования.

  • ArbitrationRank: Если 0, то узел API не арбитр. Ядро выбирает арбитров в порядке 1, 2.

  • AutoReconnect: Определяет, должен ли узел API снова соединиться полностью, когда отключен от кластера.

  • BatchByteSize: Пакетный размер по умолчанию в байтах.

  • BatchSize: Пакетный размер по умолчанию в количестве записей.

  • ConnectBackoffMaxTime: Определяет самое долгое время в миллисекундах (точность около 100 ms) между попытками подключения к любому узлу данных этим узлом API. Исключает время, истекшее в то время, как попытки подключения продолжаются, в худшем случае это может занять несколько секунд. Отключите, установив в 0. Если никакие узлы данных в настоящее время не связываются с этим узлом API, StartConnectBackoffMaxTime используется вместо этого.

  • ConnectionMap: Определяет, с которыми узлами данных соединиться.

  • DefaultHashMapSize: Размер набора (в ведрах), чтобы использовать для таблицы хэш-карт. Поддерживаются три значения: 0, 240 и 3840. Предназначено прежде всего для модернизаций в NDB 7.2.

  • DefaultOperationRedoProblemAction: Как операции обработаны в случае, если превышен RedoOverCommitCounter.

  • ExecuteOnComputer: Последовательность, ссылающаяся на ранее определенный COMPUTER.

  • ExtraSendBufferMemory: Память, чтобы использовать для буфера передачи в дополнение к любому значению, ассигнованному TotalSendBufferMemory или SendBufferMemory. Умолчание (0) позволяет до 16 МБ.

  • HeartbeatThreadPriority: Логика и приоритет потока синхроимпульса для узлов API, см. руководство.

  • HostName: Имя хоста или IP-адрес для этого узла.

  • Id: Идентификатор сервера MySQL или узла API (Id). Устарел, используйте NodeId вместо этого.

  • MaxScanBatchSize: Максимальный коллективный пакетный размер для одного просмотра.

  • NodeId: Число, однозначно определяющее узел SQL API среди всех узлов в кластере.

  • StartConnectBackoffMaxTime: То же самое, что и ConnectBackoffMaxTime за исключением того, что этот параметр используется, если никакие узлы данных не связаны с этим узлом API.

  • TotalSendBufferMemory: Общая память, чтобы использовать для всего буфера передачи транспортера.

  • wan: Используйте настройки WAN TCP как умолчание.

Для обсуждения возможностей сервера MySQL для NDB Cluster см. раздел 5.3.9.1 . Для получения информации о системных переменных сервера MySQL, касающихся NDB Cluster, см. раздел 5.3.9.2.

Чтобы добавить новый узел SQL или API к конфигурации управления NDB Cluster, необходимо выполнить катящийся перезапуск всех узлов после добавления нового раздела [mysqld] или [api] в файл config.ini (или файлы, если вы используете больше, чем один сервер управления). Это должно быть сделано прежде, чем новый узел сможет соединиться с кластером.

НЕ надо выполнять любой перезапуск, если новый узел могут использовать ранее неиспользованные слоты API в кластерной конфигурации, чтобы соединиться с кластером.

5.2.4. Другие параметры конфигурации NDB Cluster

Списки в этой секции предоставляют информацию о параметрах, используемых в разделах [computer], [tcp] и [shm] файла config.ini для формирования NDB Cluster. Для подробных описаний и дополнительной информации об отдельных параметрах посмотрите разделы 5.3.10 и 5.3.12.

Следующие параметры относятся к разделу [computer] файла config.ini:

  • HostName: Имя хоста или IP-адрес этого компьютера.

  • Id: Уникальный идентификатор для этого компьютера.

Следующие параметры относятся к разделу [tcp] файла config.ini:

  • Checksum: Если контрольная сумма позволена, все сигналы между узлами проверены.

  • Group: Используемый для близости группы, меньшее значение интерпретируется как находящаяся ближе.

  • NodeId1: ID узла на одной стороне связи.

  • NodeId2: ID узла на другой стороне связи.

  • NodeIdServer: Установите серверную сторону соединения по протоколу TCP.

  • OverloadLimit: Когда больше, чем это количество непосланных байтов находится в буфере передачи, связь считают перегруженной.

  • PortNumber: Порт для этого транспортера TCP (устарело).

  • PreSendChecksum: Если этот параметр и контрольная сумма позволены, предварительно посылают контрольные суммы и проверяют все сигналы TCP между узлами на ошибки.

  • ReceiveBufferMemory: Байты буфера для сигналов, полученных этим узлом.

  • SendBufferMemory: Байты буфера TCP для сигналов, посланных из этого узла.

  • SendSignalId: Посылает ID в каждом сигнале. Используется в файлах трассировки. Умолчание true в отладке.

  • TCP_MAXSEG_SIZE: Значение используется для TCP_MAXSEG.

  • TCP_RCV_BUF_SIZE: Значение используется для SO_RCVBUF.

  • TCP_SND_BUF_SIZE: Значение используется для SO_SNDBUF.

  • TcpBind_INADDR_ANY: Свяжите InAddrAny вместо имени хоста для части сервера связи.

Следующие параметры относятся к разделу [shm] файла config.ini:

  • Checksum: Если контрольная сумма позволена, все сигналы между узлами проверены.

  • Group: Используемый для близости группы, меньшее значение интерпретируется как группа ближе.

  • NodeId1: ID узла на одной стороне связи.

  • NodeId2: ID узла на другой стороне связи.

  • NodeIdServer: Установите серверную сторону связи SHM.

  • OverloadLimit: Когда больше, чем это количество непосланных байтов находится в буфере передачи, связь считают перегруженной.

  • PortNumber: Порт для этого транспортера SHM (устарело).

  • PreSendChecksum: Если этот параметр и контрольная сумма позволены, предварительно посылают контрольные суммы и проверяют все сигналы TCP между узлами на ошибки.

  • SendBufferMemory: Байты в общей памяти для сигналов, посланных из этого узла.

  • SendSignalId: Посылает ID в каждом сигнале. Используется в файлах трассировки.

  • ShmKey: Ключ общей памяти, когда установлено в 1, это вычисляется NDB.

  • ShmSpinTime: При получении число микросекунд для ротации перед сном.

  • ShmSize: Размер сегмента общей памяти.

  • Signum: Номер сигнала, который будет использоваться для передачи.

5.2.5. Опции и переменные NDB Cluster mysqld

Следующая таблица предоставляет список параметров командной строки, сервера и переменных статуса, применимых в mysqld, когда это работает как узел SQL в NDB Cluster. Для таблицы, показывающей ВСЕ параметры командной строки, сервера и переменные статуса, доступные для использования с mysqld, см. Server Option, System Variable, and Status Variable Reference.

  • Com_show_ndb_status: Считает SHOW NDB STATUS.

  • Handler_discover: Число раз, когда таблицы были изучены.

  • ndb-batch-size: Размер (в байтах), чтобы использовать для операционных пакетов NDB.

  • ndb-blob-read-batch-bytes: Определяет размер в байтах пакета для чтения большого BLOB. 0 = никакого предела.

  • ndb-blob-write-batch-bytes: Определяет размер в байтах пакета для записи большого BLOB. 0 = никакого предела.

  • ndb-cluster-connection-pool: Количество связей с кластером, используется MySQL.

  • ndb-cluster-connection-pool-nodeids: Список разделенных запятой значений ID узла для связей с группой, используется MySQL, количество узлов в списке должно совпасть с набором значений для --ndb-cluster-connection-pool.

  • ndb-connectstring: Укажите на сервер управления, который распределяет кластерную конфигурацию.

  • ndb-default-column-format: Используйте это значение (FIXED или DYNAMIC) по умолчанию для опций COLUMN_FORMAT и ROW_FORMAT, создавая или добавляя колонки к таблице.

  • ndb-deferred-constraints: Определяет, что ограничение проверяющее уникальные индексы (где они поддерживаются), должно быть отсрочено до момента передачи. Обычно не требуется, применяет только для целей тестирования.

  • ndb-distribution: Распределение по умолчанию для новых таблиц в NDBCLUSTER (KEYHASH или LINHASH, умолчание KEYHASH).

  • ndb-log-apply-status: Заставляет сервер MySQL, действующий как ведомый, регистрировать обновления mysql.ndb_apply_status, полученные от его непосредственного владельца в его собственный двоичный журнал, используя собственный ID сервера. Эффективно, только если сервер начат с опцией --ndbcluster.

  • ndb-log-empty-epochs: Когда позволено, эпохи, в которые не было никаких изменений, будут написаны в таблицы ndb_apply_status и ndb_binlog_index даже когда включено log_slave_updates.

  • ndb-log-empty-update: Когда позволено, обновления, которые не вызвали изменений, будут написаны в таблицы ndb_apply_status и ndb_binlog_index даже когда включено log_slave_updates.

  • ndb-log-exclusive-reads: Зарегистрировать чтение первичного ключа с монопольными блокировками, позволяет разрешение конфликтов на основе конфликтов чтения.

  • ndb-log-orig: Регистрация, порождаемого id сервера и эпохи в таблице mysql.ndb_binlog_index.

  • ndb-log-transaction-id: Пишет NDB ID транзакции в двоичный журнал. Требует --log-bin-v1-events=OFF.

  • ndb-log-update-as-write: Регистрация обновлений на владельце между обновлениями (OFF) и записями (ON).

  • ndb-mgmd-host: Установите хост (и порт при желании) для соединения с сервером управления.

  • ndb-nodeid: ID узла NDB Cluster для этого сервера MySQL.

  • ndb-transid-mysql-connection-map: Включите или отключите плагин ndb_transid_mysql_connection_map, то есть, включите или отключите таблицу INFORMATION_SCHEMA, имеющую это имя.

  • ndb-wait-connected: Время (в секундах) для сервера MySQL, чтобы ждать связи с управлением кластером и узлами данных прежде, чем принять связи клиента MySQL.

  • ndb-wait-setup: Время (в секундах) для сервера MySQL, чтобы ждать установки механизма NDB.

  • ndb-allow-copying-alter-table: Установите в OFF, чтобы помешать ALTER TABLE использовать копирование операций на таблицах NDB.

  • Ndb_api_bytes_received_count: Объем данных (в байтах) полученный от узлов данных этим MySQL Server (узел SQL).

  • Ndb_api_bytes_received_count_session: Объем данных (в байтах) полученный от узлов данных в этой сессии клиента.

  • Ndb_api_bytes_received_count_slave: Объем данных (в байтах) полученный от узлов данных этим ведомым.

  • Ndb_api_bytes_sent_count: Объем данных (в байтах) посланный в узлы данных этим MySQL Server (узлом SQL).

  • Ndb_api_bytes_sent_count_session: Объем данных (в байтах) посланный в узлы данных в этой сессии клиента.

  • Ndb_api_bytes_sent_count_slave: Объем данных (в байтах) посланный в узлы данных этим ведомым.

  • Ndb_api_event_bytes_count: Число байтов событий, полученных этим MySQL Server (узел SQL).

  • Ndb_api_event_bytes_count_injector: Число байтов событий полученных потоком двоичного журнала NDB.

  • Ndb_api_event_data_count: Количество событий изменения строки, полученные этим MySQL Server (узел SQL).

  • Ndb_api_event_data_count_injector: Количество событий изменения строки, полученные потоком двоичного журнала NDB.

  • Ndb_api_event_nondata_count: Количество событий, кроме изменения строки, полученных этим MySQL Server (узел SQL).

  • Ndb_api_event_nondata_count_injector: Количество событий, кроме изменения строки, полученных потоком двоичного журнала NDB.

  • Ndb_api_pk_op_count: Количество операций на основе или использующих первичные ключи у этого MySQL Server (узел SQL).

  • Ndb_api_pk_op_count_session: Количество операций на основе или использующих первичные ключи в этой сессии клиента.

  • Ndb_api_pk_op_count_slave: Количество операций на основе или использующих первичные ключи этим ведомым.

  • Ndb_api_pruned_scan_count: Количество просмотров, которые были сокращены к единственному разделу этим MySQL Server (узлом SQL).

  • Ndb_api_pruned_scan_count_session: Количество просмотров, которые были сокращены к единственному разделу в этой сессии клиента.

  • Ndb_api_pruned_scan_count_slave: Количество просмотров, которые были сокращены к единственному разделу этим ведомым.

  • Ndb_api_range_scan_count: Количество просмотров диапазона, которые были начаты этим MySQL Server (узел SQL).

  • Ndb_api_range_scan_count_session: Количество просмотров диапазона, которые были начаты в этой сессии клиента.

  • Ndb_api_range_scan_count_slave: Количество просмотров диапазона, которые были начаты этим ведомым.

  • Ndb_api_read_row_count: Общее количество строк, которые были прочитаны этим MySQL Server (узел SQL).

  • Ndb_api_read_row_count_session: Общее количество строк, которые были прочитаны в этой сессии клиента.

  • Ndb_api_read_row_count_slave: Общее количество строк, которые были прочитаны этим ведомым.

  • Ndb_api_scan_batch_count: Количество пакетов строк, полученных этим MySQL Server (узел SQL).

  • Ndb_api_scan_batch_count_session: Количество пакетов строк, полученных в этой сессии клиента.

  • Ndb_api_scan_batch_count_slave: Количество пакетов строк, полученных этим ведомым.

  • Ndb_api_table_scan_count: Количество сканирований таблицы, которые были начаты, включая просмотры внутренних таблиц, этим MySQL Server (узел SQL).

  • Ndb_api_table_scan_count_session: Количество сканирований таблицы, которые были начаты, включая просмотры внутренних таблиц, в этой сессии клиента.

  • Ndb_api_table_scan_count_slave: Количество сканирований таблицы, которые были начаты, включая просмотры внутренних таблиц, этим ведомым.

  • Ndb_api_trans_abort_count: Количество транзакций, прерванных этим MySQL Server (узел SQL).

  • Ndb_api_trans_abort_count_session: Количество транзакций, прерванных в этой сессии клиента.

  • Ndb_api_trans_abort_count_slave: Количество транзакций, прерванных этим ведомым.

  • Ndb_api_trans_close_count: Количество транзакций, прерванных (может быть больше, чем сумма TransCommitCount и TransAbortCount) этим MySQL Server (узел SQL).

  • Ndb_api_trans_close_count_session: Количество транзакций, прерванных (может быть больше, чем сумма TransCommitCount и TransAbortCount) в этой сессии клиента.

  • Ndb_api_trans_close_count_slave: Количество транзакций, прерванных (может быть больше, чем сумма TransCommitCount и TransAbortCount) этим ведомым.

  • Ndb_api_trans_commit_count: Количество транзакций, переданных этим MySQL Server (узел SQL).

  • Ndb_api_trans_commit_count_session: Количество транзакций, переданных в этой сессии клиента.

  • Ndb_api_trans_commit_count_slave: Количество транзакций, переданных этим ведомым.

  • Ndb_api_trans_local_read_row_count: Общее количество строк, которые были прочитаны этим MySQL Server (узел SQL).

  • Ndb_api_trans_local_read_row_count_session: Общее количество строк, которые были прочитаны в этой сессии клиента.

  • Ndb_api_trans_local_read_row_count_slave: Общее количество строк, которые были прочитаны этим ведомым.

  • Ndb_api_trans_start_count: Количество транзакций, начатых этим MySQL Server (узел SQL).

  • Ndb_api_trans_start_count_session: Количество транзакций, начатых в этой сессии клиента.

  • Ndb_api_trans_start_count_slave: Количество транзакций, начатых этим ведомым.

  • Ndb_api_uk_op_count: Количество операций на основе (или использующих) уникальных ключей этим MySQL Server (узел SQL).

  • Ndb_api_uk_op_count_session: Количество операций на основе (или использующих) уникальных ключей в этой сессии клиента.

  • Ndb_api_uk_op_count_slave: Количество операций на основе (или использующих) уникальных ключей этим ведомым.

  • Ndb_api_wait_exec_complete_count: Сколько раз поток был заблокирован, ожидая выполнения операции этим MySQL Server (узел SQL).

  • Ndb_api_wait_exec_complete_count_session: Сколько раз поток был заблокирован, ожидая выполнения операции в этой сессии клиента.

  • Ndb_api_wait_exec_complete_count_slave: Сколько раз поток был заблокирован, ожидая выполнения операции этим ведомым.

  • Ndb_api_wait_meta_request_count: Сколько раз поток был заблокирован, ожидая основанного на метаданных сигнала этим MySQL Server (узел SQL).

  • Ndb_api_wait_meta_request_count_session: Сколько раз поток был заблокирован, ожидая основанного на метаданных сигнала в этой сессии клиента.

  • Ndb_api_wait_meta_request_count_slave: Сколько раз поток был заблокирован, ожидая основанного на метаданных сигнала этим ведомым.

  • Ndb_api_wait_nanos_count: Полное время (в наносекундах) потраченное на ожидание некоторого типа сигнала от узлов данных этим MySQL Server (узел SQL).

  • Ndb_api_wait_nanos_count_session: Полное время (в наносекундах) потраченное на ожидание некоторого типа сигнала от узлов данных в этой сессии клиента.

  • Ndb_api_wait_nanos_count_slave: Полное время (в наносекундах) потраченное на ожидание некоторого типа сигнала от узлов данных этим ведомым.

  • Ndb_api_wait_scan_result_count: Сколько раз поток был заблокирован, ожидая основанного на просмотре сигнала этим MySQL Server (узел SQL).

  • Ndb_api_wait_scan_result_count_session: Сколько раз поток был заблокирован, ожидая основанного на просмотре сигнала в этой сессии клиента.

  • Ndb_api_wait_scan_result_count_slave: Сколько раз поток был заблокирован, ожидая основанного на просмотре сигнала этим ведомым.

  • ndb_autoincrement_prefetch_sz: Размер предвыборки NDB auto-increment.

  • ndb_cache_check_time: Количество миллисекунд между проверками узлов SQL, сделанных кэшем запросов MySQL.

  • ndb_clear_apply_status: Вызывать RESET SLAVE, чтобы очистить все строки таблицы ndb_apply_status, умолчание: ON.

  • Ndb_cluster_node_id: Если сервер действует как узел NDB Cluster, значение этой переменной ее ID узла.

  • Ndb_config_from_host: Имя хоста или IP-адрес сервера управления Cluster до Ndb_connected_host.

  • Ndb_config_from_port: Порт для соединения с сервером управления Cluster до Ndb_connected_port.

  • Ndb_conflict_fn_epoch: Количество строк, которые были сочтены в конфликте NDB$EPOCH() функцией обнаружения конфликта.

  • Ndb_conflict_fn_epoch2: Количество строк, которые были сочтены в конфликте NDB$EPOCH2() функцией обнаружения конфликта.

  • Ndb_conflict_fn_epoch2_trans: Количество строк, которые были сочтены в конфликте NDB$EPOCH2_TRANS() функцией обнаружения конфликта.

  • Ndb_conflict_fn_epoch_trans: Количество строк, которые были сочтены в конфликте NDB$EPOCH_TRANS() функцией обнаружения конфликта.

  • Ndb_conflict_fn_max: Если сервер часть NDB Cluster, вовлеченного в репликацию кластера, значение этой переменной указывает на число раз разрешения конфликтов на основе "больших побед метки времени".

  • Ndb_conflict_fn_old: Если сервер часть NDB Cluster, вовлеченного в репликацию кластера, значение этой переменной указывает на число раз разрешения конфликтов основе "same timestamp wins".

  • Ndb_conflict_last_conflict_epoch: Новая эпоха NDB на этом ведомом, в которой был обнаружен конфликт.

  • Ndb_conflict_last_stable_epoch: Количество строк, которые были найдены в конфликте транзакционной функцией конфликта.

  • Ndb_conflict_reflected_op_discard_count: Количество отраженных операций, которые не были применены из-за ошибки во время выполнения.

  • Ndb_conflict_reflected_op_prepare_count: Количество отраженных, которые были подготовлены к выполнению.

  • Ndb_conflict_refresh_op_count: Количество операций по освежению, которые были подготовлены.

  • Ndb_conflict_trans_conflict_commit_count: Количество транзакций эпохи, переданных после требования транзакционной обработки конфликта.

  • Ndb_conflict_trans_detect_iter_count: Количество внутренних повторений, требуемых, чтобы передать транзакцию эпохи. Должно быть (немного) больше или равным Ndb_conflict_trans_conflict_commit_count.

  • Ndb_conflict_trans_reject_count: Количество транзакций, отклоненных, будучи найденными в конфликте транзакционной функцией конфликта.

  • Ndb_conflict_trans_row_conflict_count: Количество строк, найденных в конфликте транзакционной функцией конфликта. Включает любые строки, включенные в или зависящие от противоречивых транзакций.

  • Ndb_conflict_trans_row_reject_count: Общее количество строк, перестроенных, будучи найденными в конфликте транзакционной функцией конфликта. Включает Ndb_conflict_trans_row_conflict_count и любые строки, включенные в или зависящие от противоречивых транзакций.

  • ndb_data_node_neighbour: Определяет узел данных о группе, самый близкий к этому MySQL Server, для операционных подсказок и полностью копируемых таблиц.

  • ndb_default_column_format: Формат строки и столбца по умолчанию (FIXED или DYNAMIC), используемый для новых таблиц NDB.

  • ndb_deferred_constraints: Определяет, что ограничительные проверки должны быть отсрочены (где они поддерживаются). Обычно не надо. Нужно только для тестирования.

  • ndb_distribution: Распределение по умолчанию для новых таблиц в NDBCLUSTER (KEYHASH или LINHASH, умолчание KEYHASH).

  • Ndb_conflict_delete_delete_count: Количество конфликтов delete-delete (операция delete применяется, но строка не существует).

  • ndb_eventbuffer_free_percent: Процент свободной памяти, которая должна быть доступной в буфере событий перед возобновлением буферизования после достижения предела, установленного ndb_eventbuffer_max_alloc.

  • ndb_eventbuffer_max_alloc: Максимальная память, которая может быть ассигнована для того, чтобы буферизовать события API NDB. Умолчание 0 (без лимита).

  • Ndb_execute_count: Обеспечивает количество циклов обработки ядра NDB, сделанных операциями.

  • ndb_extra_logging: Управляет журналированием схемы NDB Cluster, связи и событий распределения данных в журнале ошибок MySQL.

  • ndb_force_send: Принудительно послать буферы в NDB немедленно, не ожидая других потоков.

  • ndb_fully_replicated: Копируются ли новые таблицы NDB полностью.

  • ndb_index_stat_enable: Используйте статистику индекса NDB в оптимизации запросов.

  • ndb_index_stat_option: Список разделенных запятой значений настраиваемых возможностей для статистики индекса NDB, список не должен содержать пробелы.

  • ndb_join_pushdown: Позволяет снижение соединений с узлами данных.

  • ndb_log_apply_status: Регистрирует ли сервер MySQL, действующий как ведомый, обновления mysql.ndb_apply_status, полученные от его непосредственного владельца в его собственный двоичный журнал, используя собственный сервер ID.

  • ndb_log_bin: Писать обновления таблиц NDB в двоичный журнал. Эффективно, только если двоичный журнал включен с --log-bin.

  • ndb_log_binlog_index: Вставлять отображение между эпохами и позицией двоичного журнала в таблицу ndb_binlog_index. Умолчание ON. Эффективно, только если двоичный журнал позволен на сервере.

  • ndb_log_empty_epochs: Когда позволено, эпохи, в которые не было никаких изменений, написаны в таблицы ndb_apply_status и ndb_binlog_index, даже если включена log_slave_updates.

  • ndb_log_empty_update: Когда позволено, обновления, которые не вызывают изменений, написаны в таблицы ndb_apply_status и ndb_binlog_index, даже если включена when log_slave_updates.

  • ndb_log_exclusive_reads: Регистрировать чтение первичного ключа с монопольными блокировками, позволяет разрешение конфликтов на основе конфликтов чтения.

  • ndb_log_orig: Зарегистрированы ли id и эпоха происходящего сервера в таблице mysql.ndb_binlog_index. Задано, используя --ndb-log-orig при запуске mysqld.

  • ndb_log_transaction_id: Написан ли NDB ID транзакции в двоичный журнал (только для чтения).

  • ndb-log-update-minimal: Регистрация обновлений в минимальном формате.

  • ndb_log_updated_only: Регистрация полных строк (ON) или только обновлений (OFF).

  • Ndb_number_of_data_nodes: Если сервер часть NDB Cluster, значение этой переменной задает количество узлов данных в кластере.

  • ndb-optimization-delay: Определяет число миллисекунд, чтобы ждать между обработкой наборов строк OPTIMIZE TABLE в таблицах NDB.

  • ndb_optimized_node_selection: Определяет, как узел SQL выбирает узел данных, чтобы использовать в качестве операционного координатора.

  • Ndb_pruned_scan_count: Количество просмотров, выполненных NDB, начиная с последнего запуска кластера, где сокращение разделения могло использоваться.

  • Ndb_pushed_queries_defined: Количество соединений к узлам данных, которые узлы API попытались снизить.

  • Ndb_pushed_queries_dropped: Количество соединений, которые узлы API попытались снизить, но потерпели неудачу.

  • Ndb_pushed_queries_executed: Количество соединений, успешно сниженных и выполненных на узлах данных.

  • Ndb_pushed_reads: Количество чтений на узлах данных, сделанных сниженными соединениями.

  • ndb_read_backup: Позволить чтение из любой точной копии.

  • ndb_recv_thread_activation_threshold: Порог активации, когда поток получения принимает опрос связи кластера (измеренный в одновременно активных потоках).

  • ndb_recv_thread_cpu_mask: Маска CPU для блокировки принимающими потоками определенных CPU, определяется как шестнадцатеричное значение. См. документацию для деталей.

  • ndb_report_thresh_binlog_epoch_slip: NDB 7.5.4 и позже: Порог для числа эпох полностью буферизованных, но еще не потребляемых потоком двоичного журнала, который, когда значение превышено, производит сообщение о состоянии буфера событий BUFFERED_EPOCHS_OVER_THRESHOLD. До NDB 7.5.4: Порог для числа эпох, на которое можно отстать прежде, чем сообщить статус двоичного журнала.

  • ndb_report_thresh_binlog_mem_usage: Это порог процента свободной памяти, остающейся прежде, чем сообщить о статусе двоичного журнала.

  • ndb_row_checksum: Когда позволено, задает контрольные суммы строки, по умолчанию включено.

  • Ndb_scan_count: Общее количество просмотров, выполненных NDB, начиная с запуска кластера в последний раз.

  • ndb_show_foreign_key_mock_tables: Показать таблицы, которые раньше поддерживали foreign_key_checks=0.

  • ndb_slave_conflict_role: Роль для ведомого в обнаружении конфликта и решении. Значение одно из PRIMARY, SECONDARY, PASS или NONE (умолчание). Может быть изменено только, когда ведомый поток SQL остановлен. См. документацию для получения дополнительной информации.

  • Ndb_slave_max_replicated_epoch: Последний раз переданная эпоха NDB на этом ведомом. Когда это значение больше или равно Ndb_conflict_last_conflict_epoch, никакие конфликты еще не были обнаружены.

  • Ndb_system_name: Формируемое имя кластерной системы, пусто, если сервер не связан с NDB.

  • ndb_table_no_logging: Таблицы NDB, составленные, когда это позволено, не сбрасывают контрольные точки на диск (хотя файлы схемы таблицы создаются). Параметр работает, когда таблица составлена или изменена, чтобы использовать NDBCLUSTER для целой жизни таблицы.

  • ndb_table_temporary: Таблицы NDB не постоянные на диске: никакие файлы схемы не создаются, и таблицы не журналируются.

  • ndb_use_exact_count: Используйте точное количество строк, планируя запросы.

  • ndb_use_transactions: Предписывает NDB использовать количество записей во время планирования запроса SELECT COUNT(*), чтобы ускорить этот тип запроса.

  • ndb_version: Показывает версию сборки и механизма NDB как целое число.

  • ndb_version_string: Показывает информацию, включая версию сборки и механизма NDB в формате ndb-x.y.z.

  • ndbcluster: Включить NDB Cluster (если эта версия MySQL его поддерживает), отключается как --skip-ndbcluster.

  • ndbinfo_database: Имя для информационной базы данных NDB, только чтение.

  • ndbinfo_max_bytes: Используется только для отладки.

  • ndbinfo_max_rows: Используется только для отладки.

  • ndbinfo_offline: Переключить базу данных ndbinfo в режим офлайн, в котором никакие строки не возвращены из таблиц или обзоров.

  • ndbinfo_show_hidden: Показать ли внутренние базовые таблицы ndbinfo в клиенте mysql. Умолчание OFF.

  • ndbinfo_table_prefix: Префикс, чтобы использовать для обозначения внутренних базовых таблиц ndbinfo.

  • ndbinfo_version: Версия механизма ndbinfo, только чтение.

  • server_id_bits: Определяет число младших значащих битов в server_id, на самом деле используемом для идентификации сервера, разрешая приложениям NDB API сохранить данные запроса в старших значащих битах. server_id должен быть меньше 2 в степени этого значения.

  • slave_allow_batching: Включает группирование обновлений для ведомого репликации.

  • transaction_allow_batching: Позволяет комплектовать запросы в транзакции. Отключите AUTOCOMMIT, чтобы использовать.

5.3. Файлы кластерной конфигурации NDB

Формирование NDB Cluster требует работы с двумя файлами:

  • my.cnf: Определяет возможности для всех исполняемых файлов NDB Cluster. Этот файл, с которым необходимо быть знакомым по предыдущей работе с MySQL, должен быть доступным каждому приложению кластера.

  • config.ini: Этот файл, иногда известный как глобальный конфигурационный файл, прочитан только сервером управления NDB Cluster, который распределяет информацию, содержащуюся там, всем процессам, участвующим в кластере. config.ini содержит описание каждого узла, вовлеченного в кластер. Это включает параметры конфигурации для узлов данных и параметры конфигурации для связей между всеми узлами в кластере. Подробности здесь.

Кэширование данных конфигурации. NDB применяет конфигурацию с фиксацией состояния. Вместо того, чтобы читать глобальный конфигурационный файл каждый раз, когда сервер управления перезапущен, сервер управления кэширует конфигурацию в первый раз, когда запущен, после этого глобальный конфигурационный файл прочитан только, когда одно из следующих условий верно:

  • Сервер управления начат, используя опцию --initial. При использовании --initial глобальный конфигурационный файл перечитан, любые существующие файлы кэша удалены, а сервер управления создает новый кэш конфигурации.

  • Сервер управления начат, используя опцию --reload. При использовании --reload сервер управления сравнивает свой кэш с глобальным конфигурационным файлом. Если они отличаются, сервер управления создает новый кэш конфигурации, любой существующий кэш конфигурации сохраняется, но не используется. Если кэш сервера управления и глобальный конфигурационный файл содержат те же самые данные конфигурации, то существующий кэш используется, и никакой новый кэш не создается.

  • Сервер управления начат, используя --config-cache=FALSE. Это отключает --config-cache (включено по умолчанию) и может использоваться, чтобы вынудить сервер управления обойти сохраненную конфигурацию. В этом случае сервер управления игнорирует любые конфигурационные файлы, которые могут присутствовать, всегда читая данные конфигурации из файла config.ini.

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

Файлы кэша конфигурации. Сервер управления по умолчанию создает файлы кэша конфигурации в каталоге mysql-cluster в инсталляционном каталоге MySQL. Если вы собираете NDB Cluster в Unix из исходных текстов, местоположение по умолчанию /usr/local/mysql-cluster. Это может быть отвергнуто во времени выполнения, начав сервер управления с опцией --configdir. Файлы кэша конфигурации это двоичные файлы, названные согласно образцу ndb_ node_id_config.bin.seq_id , где node_id это ID узла сервера управления в кластере, а seq_id это идентиификатор кэша. Файлы кэша пронумерованы, последовательно используя seq_id, в порядке, в котором они создаются. Сервер управления использует последний файл кэша, как определено seq_id .

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

Для получения дополнительной информации об опциях --configdir, --config-cache, --initial и --reload для сервера управления NDB Cluster см. раздел 6.4.

Мы непрерывно делаем улучшения кластерной конфигурации и пытаемся упростить этот процесс. Хотя мы стремимся поддержать обратную совместимость, могут быть времена, когда вводят несовместимое изменение. В таких случаях мы попытаемся сообщить пользователям заранее, если изменение не будет обратно совместимо. Если вы находите такое изменение, и мы не зарегистрировали его, пожалуйста, сообщите о нем в базе данных ошибок MySQL, используя инструкции в How to Report Bugs or Problems.

5.3.1. Кластерная конфигурация NDB: основной пример

Чтобы поддержать NDB Cluster, необходимо будет обновить my.cnf как показано в следующем примере. Можно также определить эти параметры в командной строке.

Варианты, показанные здесь, не должны быть перепутаны с теми, которые используются в глобальном конфигурационном файле config.ini. Глобальные параметры конфигурации обсуждены позже в этой секции.

# my.cnf
# example additions to my.cnf for NDB Cluster
# (valid in MySQL 5.7)
# enable ndbcluster storage engine, and provide connection string for
# management server host (default port is 1186)
[mysqld]
ndbcluster
ndb-connectstring=ndb_mgmd.mysql.com
# provide connection string for management server host (default port: 1186)
[ndbd]
connect-string=ndb_mgmd.mysql.com
# provide connection string for management server host (default port: 1186)
[ndb_mgm]
connect-string=ndb_mgmd.mysql.com
# provide location of cluster configuration file
[ndb_mgmd]
config-file=/etc/config.ini

Для получения дополнительной информации о строках подключения посмотрите раздел 5.3.3.

# my.cnf
# example additions to my.cnf for NDB Cluster
# (will work on all versions)
# enable ndbcluster storage engine, and provide connection string for management
# server host to the default port 1186
[mysqld]
ndbcluster
ndb-connectstring=ndb_mgmd.mysql.com:1186

Как только вы начали процесс mysqld с параметрами NDBCLUSTER и ndb-connectstring в секции [mysqld] файла my.cnf как показано ранее, вы не можете выполнить CREATE TABLE или ALTER TABLE не запустив кластер на самом деле. Иначе эти запросы потерпят неудачу с ошибкой.

Можно также использовать отдельный раздел [mysql_cluster] в файле my.cnf для параметров настройки, которые будут читаться и использоваться всеми исполняемыми файлами:

# cluster-specific settings
[mysql_cluster]
ndb-connectstring=ndb_mgmd.mysql.com:1186

Для поучения списка дополнительных переменных NDB, которые могут быть установлены в файле my.cnf, см. раздел 5.3.9.2.

Глобальный конфигурационный файл NDB Cluster в соответствии с соглашением называется config.ini (но это не обязательно). В случае необходимости это прочитано ndb_mgmd при запуске и может быть помещено в любое место, которое может быть прочитано им. Место и название конфигурации определяются, используя опцию --config-file= path_name с ndb_mgmd в командной строке. Этот выбор не имеет никакого значения по умолчанию и проигнорирован, если ndb_mgmd использует кэш конфигурации.

Глобальный конфигурационный файл для NDB Cluster использует INI-формат, который состоит из секций, которым предшествуют заголовки раздела (окруженные квадратными скобками), сопровождаемые соответствующими названиями параметра и значениями. Одно отклонение от стандартного формата INI: название параметра и значение могут быть отделены двоеточием a colon (:), а также знак "равно" (=), однако, знак "равно" предпочтен. Другое отклонение: секции не однозначно определяются именем секции. Вместо этого уникальные секции (такие как два различных узла того же самого типа) определяются уникальным идентификатором, определенным в качестве параметра в разделе.

Значения по умолчанию определяются для большинства параметров и могут быть также определены в config.ini. Чтобы создать секцию значения по умолчанию, просто добавьте слово default к имени секции. Например, раздел [ndbd] содержит параметры, которые относятся к конкретному узлу данных, тогда как раздел [ndbd default] содержит параметры, которые относятся ко всем узлам данных. Предположим, что все узлы данных должны использовать тот же самый размер памяти данных. Чтобы формировать их все, создайте раздел [ndbd default], который содержит строку DataMemory, чтобы определить размер памяти данных.

Если используется раздел [ndbd default], должен предшествовать любому разделу [ndbd] в конфигурационном файле. Это также верно для разделов default любого другого типа.

В некоторых более старых выпусках NDB Cluster не было никакого значения по умолчанию для NoOfReplicas, который всегда должен был определяться явно в [ndbd default]. Хотя у этого параметра теперь есть значение по умолчанию 2, которое является рекомендуемым в наиболее распространенных сценариях использования, все еще рекомендуют практику, чтобы установить этот параметр явно.

Глобальный конфигурационный файл должен определить компьютеры и узлы, вовлеченные в кластер, и на которых компьютерах расположены эти узлы. Пример простого конфигурационного файла для кластера, состоящего из одного сервера управления, двух узлов данных и двух серверов MySQL:

# file "config.ini" - 2 data nodes and 2 SQL nodes
# This file is placed in the startup directory of ndb_mgmd (the
# management server)
# The first MySQL Server can be started from any host. The second
# can be started only on the host mysqld_5.mysql.com
[ndbd default]
NoOfReplicas= 2
DataDir= /var/lib/mysql-cluster
[ndb_mgmd]
Hostname= ndb_mgmd.mysql.com
DataDir= /var/lib/mysql-cluster
[ndbd]
HostName= ndbd_2.mysql.com
[ndbd]
HostName= ndbd_3.mysql.com
[mysqld]
[mysqld]
HostName= mysqld_5.mysql.com

Предыдущий пример предназначается как минимальная стартовая конфигурация в целях ознакомления с NDB Cluster и почти наверняка не будет достаточен для производственных параметров настройки. Посмотрите раздел 5.3.2, который предоставляет более полный пример стартовой конфигурации.

У каждого узла есть своя собственная секция в файле config.ini. Например, у этого кластера есть два узла данных, таким образом, предыдущий конфигурационный файл содержит два раздела [ndbd], определяющих эти узлы.

Не помещайте комментарии к той же самой строке, где заголовок раздела в файле config.ini, это заставляет сервер управления не запускаться, потому что он не может разобрать конфигурационный файл в таких случаях.

Разделы файла config.ini

Есть шесть различных секций, которые можно использовать в конфигурационном файле config.ini, как описано в следующем списке:

  • [computer]: Определяет хосты кластера. Это не требуется, чтобы формировать жизнеспособный кластер NDB, но может быть использовано в качестве удобства, настраивая большой кластер. Посмотрите раздел 5.3.4.

  • [ndbd]: Определяет узел данных (процесс ndbd). См. раздел 5.3.6.

  • [mysqld]: Определяет узлы сервера MySQL (также называемые узлами SQL или API). Для обсуждения конфигурации узла SQL посмотрите раздел 5.3.7.

  • [mgm] или [ndb_mgmd]: Определяет сервер управления (MGM). Для получения информации относительно конфигурации узлов управления посмотрите раздел 5.3.5.

  • [tcp]: Определяет связь TCP/IP между узлами группы, TCP/IP протокол связи по умолчанию. Обычно [tcp] или [tcp default] не требуются, чтобы настраивать NDB Cluster, поскольку группа обращается с этим автоматически, однако, может быть необходимо в некоторых ситуациях отвергнуть умолчания. Посмотрите раздел 5.3.10 для получения информации о доступных параметрах конфигурации TCP/IP и как использовать их. Раздел 5.3.11 представляет интерес в некоторых случаях.

  • [shm]: Определяет сопряжения с общей памятью между узлами. В MySQL 5.7 это позволяют по умолчанию, но нужно все еще считать экспериментальным. Для обсуждения межсоединений SHM посмотрите раздел 5.3.12 .

  • [sci]: Определяет связи Scalable Coherent Interface между узлами данных. Не поддержано в NDB 7.5 или 7.6.

Можно определить значения default для каждой секции. Если используется, раздел default должен быть перед любыми другими разделами того типа. Например, [ndbd default] должен появиться в конфигурационном файле перед любым разделом [ndbd].

Названия параметров NDB Cluster нечувствительны к регистру, если не определено в файлах MySQL Server my.cnf или my.ini.

5.3.2. Рекомендуемая стартовая конфигурация для NDB Cluster

Достижение лучшей работы NDB Cluster зависит от ряда факторов, включая следующие:

  • Версия программного обеспечения NDB Cluster.

  • Число узлов данных и узлов SQL.

  • Аппаратные средства.

  • Операционная система.

  • Объем данных, который будет сохранен.

  • Размер и тип нагрузки, под которой должен работать кластер.

Поэтому получение оптимальной конфигурации, вероятно, будет итеративным процессом, результат которого может значительно различаться в зависимости от специфических особенностей каждого развертывания NDB Cluster. Изменения в конфигурации, вероятно, будут, также обозначены, когда изменения будут внесены в платформе, на которой группой управляют, или в запросах, которые используют данные NDB Cluster. По этим причинам невозможно предложить единственную конфигурацию, которая идеальна для всех сценариев использования. Однако, в этой секции мы обеспечиваем рекомендуемую основную конфигурацию.

Стартовый файл config.ini. Следующий файл config.ini это рекомендуемая отправная точка для формирования NDB Cluster 7.5:

# TCP PARAMETERS
[tcp default]
SendBufferMemory=2M
ReceiveBufferMemory=2M
# Increasing the sizes of these 2 buffers beyond the default values
# helps prevent bottlenecks due to slow disk I/O.
# MANAGEMENT NODE PARAMETERS

[ndb_mgmd default]
DataDir=path/to/management/server/data/directory
# It is possible to use a different data directory for each management
# server, but for ease of administration it is preferable to be consistent.

[ndb_mgmd]
HostName=management-server-A-hostname
# NodeId=management-server-A-nodeid

[ndb_mgmd]
HostName=management-server-B-hostname
# NodeId=management-server-B-nodeid
# Using 2 management servers helps guarantee that there is always an
# arbitrator in the event of network partitioning, and so is
# recommended for high availability. Each management server must be
# identified by a HostName. You may for the sake of convenience specify
# a NodeId for any management server, although one will be allocated
# for it automatically; if you do so, it must be in the range 1-255
# inclusive and must be unique among all IDs specified for cluster nodes.

# DATA NODE PARAMETERS
[ndbd default]
NoOfReplicas=2
# Using 2 replicas is recommended to guarantee availability of data;
# using only 1 replica does not provide any redundancy, which means
# that the failure of a single data node causes the entire cluster to
# shut down. We do not recommend using more than 2 replicas, since 2 is
# sufficient to provide high availability, and we do not currently test
# with greater values for this parameter.
LockPagesInMainMemory=1
# On Linux and Solaris systems, setting this parameter locks data node
# processes into memory. Doing so prevents them from swapping to disk,
# which can severely degrade cluster performance.
DataMemory=3072M
IndexMemory=384M
# The values provided for DataMemory and IndexMemory assume 4 GB RAM
# per data node. However, for best results, you should first calculate
# the memory that would be used based on the data you actually plan to
# store (you may find the ndb_size.pl utility helpful in estimating
# this), then allow an extra 20% over the calculated values. Naturally,
# you should ensure that each data node host has at least as much
# physical memory as the sum of these two values.
# NOTE: IndexMemory is deprecated in NDB 7.6 and later.
# ODirect=1
# Enabling this parameter causes NDBCLUSTER to try using O_DIRECT
# writes for local checkpoints and redo logs; this can reduce load on
# CPUs. We recommend doing so when using NDB Cluster on systems running
# Linux kernel 2.6 or later.
NoOfFragmentLogFiles=300
DataDir=path/to/data/node/data/directory
MaxNoOfConcurrentOperations=100000
SchedulerSpinTimer=400
SchedulerExecutionTimer=100
RealTimeScheduler=1
# Setting these parameters allows you to take advantage of real-time scheduling
# of NDB threads to achieve increased throughput when using ndbd. They
# are not needed when using ndbmtd; in particular, you should not set
# RealTimeScheduler for ndbmtd data nodes.
TimeBetweenGlobalCheckpoints=1000
TimeBetweenEpochs=200
RedoBuffer=32M
# CompressedLCP=1
# CompressedBackup=1
# Enabling CompressedLCP and CompressedBackup causes, respectively, local
checkpoint files and backup files to be compressed, which can result in a space
savings of up to 50% over noncompressed LCPs and backups.
# MaxNoOfLocalScans=64
MaxNoOfTables=1024
MaxNoOfOrderedIndexes=256
[ndbd]
HostName=data-node-A-hostname
# NodeId=data-node-A-nodeid
LockExecuteThreadToCPU=1
LockMaintThreadsToCPU=0
# On systems with multiple CPUs, these parameters can be used to lock NDBCLUSTER
# threads to specific CPUs
[ndbd]
HostName=data-node-B-hostname
# NodeId=data-node-B-nodeid
LockExecuteThreadToCPU=1
LockMaintThreadsToCPU=0
# You must have an [ndbd] раздел for every data node in the cluster;
# each of these разделы must include a HostName. Each раздел may
# optionally include a NodeId for convenience, but in most cases, it is
# sufficient to allow the cluster to allocate node IDs dynamically. If
# you do specify the node ID for a data node, it must be in the range 1
# to 48 inclusive and must be unique among all IDs specified for
# cluster nodes.
# SQL NODE / API NODE PARAMETERS
[mysqld]
# HostName=sql-node-A-hostname
# NodeId=sql-node-A-nodeid
[mysqld]
[mysqld]
# Each API or SQL node that connects to the cluster requires a [mysqld]
# or [api] раздел of its own. Each such раздел defines a connection
# slot; you should have at least as many of these разделы in the
# config.ini file as the total number of API nodes and SQL nodes that
# you wish to have connected to the cluster at any given time. There is
# no performance or other penalty for having extra slots available in
# case you find later that you want or need more API or SQL nodes to
# connect to the cluster at the same time.
# If no HostName is specified for a given [mysqld] or [api] раздел,
# then any API or SQL node may use that slot to connect to the
# cluster. You may wish to use an explicit HostName for one connection slot
# to guarantee that an API or SQL node from that host can always
# connect to the cluster. If you wish to prevent API or SQL nodes from
# connecting from other than a desired host or hosts, then use a
# HostName for every [mysqld] or [api] раздел in the config.ini file.
# You can if you wish define a node ID (NodeId parameter) for any API or
# SQL node, but this is not necessary; if you do so, it must be in the
# range 1 to 255 inclusive and must be unique among all IDs specified
# for cluster nodes.

Рекомендуемые опции my.cnf для узлов SQL. MySQL Server, действующие как узлы SQL в NDB Cluster, должны всегда запускаться с опцией --ndbcluster и --ndb-connectstring в командной строке или в my.cnf. Кроме того, установите следующие возможности для всех процессов mysqld в кластере, если ваша установка не требует иного:

  • --ndb-use-exact-count=0

  • --ndb-index-stat-enable=0

  • --ndb-force-send=1

  • --optimizer-switch=engine_condition_pushdown=on

5.3.3. Строки подключения NDB Cluster

За исключением сервера управления NDB Cluster ( ndb_mgmd), каждый узел, который является частью NDB Cluster, требует строки подключения, которая указывает на местоположение сервера управления. Эта строка подключения используется в установлении связи с сервером управления, а также в выполнении других задач в зависимости от роли узла. Синтаксис для строки подключения следующий:

[nodeid=node_id, ] host-definition[, host-definition[, ...]]
host-definition:
host_name[:port_number]

node_id это целое число больше или равное 1, которое определяет узел в config.ini. host_name это последовательность, представляющая действительное интернет-имя хоста или IP-адрес. port_number целое число, относящееся к номеру порта TCP/IP.

Пример 1 (полный):  "nodeid=2, myhost1:1100, myhost2:1100,198.51.100.3:1200"
Пример 2 (краткий): "myhost1"

localhost:1186 используется в качестве значения строки подключения по умолчанию, если ничего не задано. Если port_num опущен, порт по умолчанию 1186. Этот порт должен всегда быть доступным в сети, потому что это было назначено IANA с этой целью (см. http://www.iana.org/assignments/port-numbers).

Перечисляя многочисленные определения хоста, возможно определять несколько избыточных серверов управления. Узлы данных или API пытаются связаться с серверами управления на каждом хосте в определенном порядке, пока успешная связь не была установлена.

Также возможно определить в строке подключения один или больше адресов, которые будут использоваться узлами, имеющими многократные сетевые интерфейсы для соединения с серверами управления. Такой адрес состоит из имени хоста или сетевого адреса и дополнительного номера порта. Этот расширенный синтаксис для строк подключения показывают здесь:

[nodeid=node_id, ]
[bind-address=host-definition, ]
host-definition[; bind-address=host-definition]
host-definition[; bind-address=host-definition]
[, ...]]
host-definition:
host_name[:port_number]

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

bind-address=198.51.100.242, poseidon:1186, perch:1186

Если адрес определяется после определения хоста управления, то он используется только для соединения с тем узлом управления. Рассмотрите следующую строку подключения:

poseidon:1186;bind-address=localhost, perch:1186;bind-address=198.51.100.242

В этом случае узел использует localhost, чтобы соединиться с сервером управления, работающим на хосте, poseidon, и 198.51.100.242, чтобы соединиться с сервером управления, работающим на хосте perch.

Можно определить, что умолчание связывает адрес и затем отвергает это умолчание для одного или более определенных хостов управления. В следующем примере localhost используется для соединения с сервером управления, работающим на хосте poseidon, после того, как 198.51.100.242 определяется сначала (перед любыми определениями сервера управления), это умолчание и используется для соединения с серверами управления на хостах perch и orca:

bind-address=198.51.100.242,poseidon:1186;bind-address=localhost,perch:1186,orca:2200

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

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

  • Также возможно установить строку подключения для всех узлов в группе сразу, помещая ее в раздел [mysql_cluster] файла my.cnf сервера управления.

  • Для обратной совместимости два других варианта доступны, используя тот же самый синтаксис:

    1. Установите переменную окружения NDB_CONNECTSTRING, чтобы содержать строку подключения.

    2. Напишите строку подключения для каждого исполняемого файла в текстовый файл Ndb.cfg и поместите этот файл в стартовый каталог исполняемого файла.

    Однако они теперь устарели и не должны использоваться для новых установок.

Рекомендуемый метод для определения строки подключения должен установить ее в командной строке или в файле my.cnf для каждого исполняемого файла.

5.3.4. Определение компьютеров в NDB Cluster

Раздел [computer] не имеет реального значения кроме служения в качестве способа избежать потребности определения имен хоста для каждого узла в системе. Все параметры, упомянутые здесь, требуются.

Типы перезапуска. Информацию о типах перезапуска, используемых описаниями параметра в этой секции, показывают в следующей таблице:

Таблица 5.1. Типы перезапуска NDB Cluster

Символ Тип перезапуска Описание
N Node Параметр может быть обновлен, используя катящийся перезапуск (см. раздел 7.5).
S System Все узлы должны быть закрыты полностью, затем перезапущены, чтобы вызвать изменение в этом параметре.
I Initial Узлы данных должны быть перезапущены, используя опцию --initial.
  • Id

    Таблица 5.2. Эта таблица обеспечивает тип и информацию о значении для идентификационного параметра конфигурации компьютера

    Свойство Значение
    Версия (или позже) NDB 7.5.0
    Тип или единица измерения string
    Умолчание [none]
    Диапазон ...
    Тип перезапуска IS

    Это уникальный идентификатор, используемый, чтобы относиться к главному компьютеру в другом месте в конфигурационном файле.

    ID не является тем же самым, как ID узла, используемый для управления, API или узла данных. В отличие от случая с ID узла, вы не можете использовать NodeId вместо Id в разделе [computer] файла config.ini.

  • HostName

    Таблица 5.3. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации компьютера HostName

    Свойство Значение
    Версия (или позже) NDB 7.5.0
    Тип или единица измерения Имя или IP-адрес
    Умолчание [none]
    Диапазон ...
    Тип перезапуска N

    Это имя хоста или IP-адрес компьютера.

5.3.5. Определение сервера управления NDB Cluster

Раздел [ndb_mgmd] используется, чтобы формировать поведение сервера управления. Если многократные серверы управления используются, можно определить параметры, характерные для всех, в разделе [ndb_mgmd default]. [mgm] и [mgm default] это более старые псевдонимы для них, поддержанные для обратной совместимости.

Все параметры в следующем списке дополнительные и принимают свои значения по умолчанию, если пропущены.

Если ни один из параметров ExecuteOnComputer или HostName не присутствует, значение по умолчанию localhost будет принято для обоих.

Типы перезапуска. Информацию о типах перезапуска, используемых описаниями параметра в этой секции, показывают в следующей таблице:

Таблица 5.4. Типы перезапуска NDB Cluster

Символ Тип перезапуска Описание
N Node Параметр может быть обновлен, используя катящийся перезапуск (см. раздел 7.5 ).
S System Все узлы должны быть закрыты полностью, затем перезапущены, чтобы вызвать изменение в этом параметре.
I Initial Узлы данных должны быть перезапущены, используя опцию --initial.
  • Id

    Таблица 5.5. Эта таблица обеспечивает тип и информацию о значении для параметра Id конфигурации узла управления

    Свойство Значение
    Версия (или позже) NDB 7.5.0
    Тип или единица измерения unsigned
    Умолчание [none]
    Диапазон 1 - 255
    Тип перезапуска IS

    У каждого узла есть уникальная идентичность. Для узла управления это представляется целочисленным значением в диапазоне от 1 до 255 включительно. Этот ID используется всеми внутренними сообщениями группы для обращения к узлу и должен быть уникальным для каждого узла NDB Cluster, независимо от типа узла.

    ID узла данных должен быть меньше 49. Если вы планируете развернуть большое количество узлов данных, хорошая идея ограничить ID узла для узлов управления (и узлов API) значениями больше 48.

    Использование параметра Id для идентификации узлов управления устарело в пользу NodeId . Хотя Id продолжает поддерживаться для обратной совместимости, это теперь производит предупреждение.

  • NodeId

    Таблица 5.6. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации узла управления NodeId

    Свойство Значение
    Версия (или позже) NDB 7.5.0
    Тип или единица измерения unsigned
    Умолчание [none]
    Диапазон 1 - 255
    Тип перезапуска IS

    У каждого узла есть уникальная идентичность. Для узла управления это представляется целочисленным значением в диапазоне 1-255 включительно. Этот ID используется всеми внутренними сообщениями для обращения к узлу и должен быть уникальным для каждого узла, независимо от типа узла.

    ID узла данных должен быть меньше 49. Если вы планируете развернуть большое количество узлов данных, хорошая идея ограничить ID узла для узлов управления (и узлов API) значениями больше 48.

    NodeId предпочтительное название параметра, чтобы использовать, определяя узлы управления. Хотя более старое Id продолжает поддерживаться для обратной совместимости, это теперь устарело и производит предупреждение.

  • ExecuteOnComputer

    Таблица 5.7. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации узла управления ExecuteOnComputer

    Свойство Значение
    Версия (или позже) NDB 7.5.0
    Тип или единица измерения name
    Умолчание [none]
    Диапазон ...
    Тип перезапуска S

    Это относится к установленному Id для одного из компьютеров в разделе [computer] файла config.ini.

    Этот параметр устарел с NDB 7.5.0 и подвергается удалению в будущем выпуске. Используйте HostName вместо этого.

  • PortNumber

    Таблица 5.8. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации узла управления PortNumber

    Свойство Значение
    Версия (или позже) NDB 7.5.0
    Тип или единица измерения unsigned
    Умолчание 1186
    Диапазон 0 - 64K
    Тип перезапуска S

    Это номер порта, на котором сервер управления прислушивается к запросам конфигурации и командам управления.

  • HostName

    Таблица 5.9. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации узла управления HostName

    Свойство Значение
    Версия (или позже) NDB 7.5.0
    Тип или единица измерения Имя или IP-адрес
    Умолчание [none]
    Диапазон ...
    Тип перезапуска N

    Определение этого параметра определяет имя хоста компьютера, на котором должен находиться узел управления. Определить имя хоста кроме localhost можно через этот параметр или через ExecuteOnComputer.

  • LocationDomainId

    Таблица 5.10. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации узла управления LocationDomainId

    Свойство Значение
    Версия (или позже) NDB 7.6.4
    Тип или единица измерения integer
    Умолчание 0
    Диапазон 0 - 16
    Тип перезапуска S

    Назначает узел управления на определенный домен доступности (также известный как зона доступности) в облаке. Сообщая NDB, какие узлы в которых областях доступности находятся, работа может быть улучшена в облачной среде следующими способами:

    • Если запрошенные данные не найдены на том же самом узле, чтение может быть направлено к другому узлу в той же самой области доступности.

    • Связь между узлами в различных областях доступности, как гарантируют, будет использовать транспортер NDB WAN без дальнейшего ручного вмешательства.

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

    • Арбитр может быть отобран из области доступности, в которой никакие узлы данных не присутствуют, или если никакая такая область доступности не может быть найдена от третьей области доступности.

    LocationDomainId берет целочисленное значение между 0 и 16 включительно, по умолчанию 0. Использование 0 означает сброс параметра.

  • LogDestination

    Таблица 5.11. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации узла управления LogDestination

    Свойство Значение
    Версия (или позже) NDB 7.5.0
    Тип или единица измерения {CONSOLE|SYSLOG|FILE}
    Умолчание [see text]
    Диапазон ...
    Тип перезапуска N

    Этот параметр определяет, куда послать информацию журнала. В этом отношении есть три варианта: CONSOLE, SYSLOG и FILE, по умолчанию FILE:

    • CONSOLE вывод в stdout:

      CONSOLE
      
    • SYSLOG пошлет журнал в syslog, возможные значения: being one of auth, authpriv, cron, daemon, ftp, kern, lpr, mail, news, syslog, user, uucp, local0, local1, local2, local3, local4, local5, local6 или local7.

      Не каждое средство обязательно поддерживается каждой операционной системой.

      SYSLOG:facility=syslog
      
    • FILE перекачивает журнал к обычному файлу на той же самой машине. Следующие значения могут быть определены:

      • filename: Название файла журнала.

        Имя файла журнала по умолчанию, используемое в таких случаях, ndb_nodeid_cluster.log.

      • maxsize: Максимальный размер (в байтах), до которого файл может вырасти файл перед ротацией. Когда это происходит, старый файл журнала переименован, добавив .N к имени файла, где N это следующее число, еще не используемое с этим именем.

      • maxfiles: Максимальное количество файлов журнала.

      FILE:filename=cluster.log,maxsize=1000000,maxfiles=6
      

      Значение по умолчанию для параметра FILE FILE:filename=ndb_node_id_cluster.log,maxsize=1000000, maxfiles=6, где node_id это ID узла.

    Возможно определить многократные места назначения, отделенные точками с запятой, как показано здесь:

    CONSOLE;SYSLOG:facility=local0;FILE:filename=/var/log/mgmd
    
  • ArbitrationRank

    Таблица 5.12. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации узла управления ArbitrationRank

    Свойство Значение
    Версия (или позже) NDB 7.5.0
    Тип или единица измерения 0-2
    Умолчание 1
    Диапазон 0 - 2
    Тип перезапуска N

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

    • 0: Узел никогда не будет использоваться в качестве арбитра.

    • 1: У узла есть высокий приоритет, это будет предпочтено как арбитр.

    • 2: Указывает на низкоприоритетный узел, который можно использовать в качестве арбитра, только если узел с более высоким приоритетом недоступен с этой целью.

    Обычно сервер управления должен формироваться как арбитр, устанавливая ArbitrationRank = 1 (умолчание для узлов управления) и ArbitrationRank = 0 для всех узлов SQL (умолчание для узлов SQL).

    Можно выключить арбитраж полностью, установив ArbitrationRank = 0 на всем управлении и узлах SQL или устанавливая Arbitration в разделе [ndbd default] файла config.ini. Указание Arbitration заставляет игнорировать любые параметры настройки для ArbitrationRank.

  • ArbitrationDelay

    Таблица 5.13. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации узла управления ArbitrationDelay

    Свойство Значение
    Версия (или позже) NDB 7.5.0
    Тип или единица измерения Миллисекунды
    Умолчание 0
    Диапазон 0 - 4294967039 (0xFFFFFEFF)
    Тип перезапуска N

    Целочисленное значение, которое заставляет ответы сервера управления на арбитражные запросы быть отложенными на указанное число миллисекунд. По умолчанию это значение 0, обычно не надо менять его.

  • DataDir

    Таблица 5.14. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации узла управления DataDir

    Свойство Значение
    Версия (или позже) NDB 7.5.0
    Тип или единица измерения path
    Умолчание .
    Диапазон ...
    Тип перезапуска N

    Это определяет каталог, куда выходные файлы от сервера управления будут помещены. Эти файлы включают файлы журнала, выходные файлы и файл ID (PID) процесса демона. Для файлов журнала это местоположение может быть отвергнуто, установив параметр FILE для LogDestination.

    Значение по умолчанию для этого параметра: каталог, в котором расположен ndb_mgmd.

  • PortNumberStats

    Таблица 5.15. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации узла управления PortNumberStats

    Свойство Значение
    Версия (или позже) NDB 7.5.0
    Тип или единица измерения unsigned
    Умолчание [none]
    Диапазон 0 - 64K
    Тип перезапуска N

    Этот параметр определяет номер порта, чтобы получать статистическую информацию от сервера управления NDB Cluster. У этого нет значения по умолчанию.

  • Wan

    Таблица 5.16. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации wan узла управления

    Свойство Значение
    Версия (или позже) NDB 7.5.0
    Тип или единица измерения boolean
    Умолчание false
    Диапазон true, false
    Тип перезапуска N

    Используйте настройки WAN TCP как умолчание.

  • HeartbeatThreadPriority

    Таблица 5.17. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации узла управления HeartbeatThreadPriority

    Свойство Значение
    Версия (или позже) NDB 7.5.0
    Тип или единица измерения string
    Умолчание [none]
    Диапазон ...
    Тип перезапуска S

    Установите политику планирования и приоритет потоков синхронизации для узлов API и управления.

    Синтаксис для установки этого параметра показывают здесь:

    HeartbeatThreadPriority = policy[, priority]
    policy:
    {FIFO | RR}
    

    Устанавливая этот параметр, необходимо определить политику. Это одно из FIFO (first in, first out) или RR (round robin). Стратегическое значение сопровождается произвольно приоритетом (целое число).

  • TotalSendBufferMemory

    Таблица 5.18. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации узла управления TotalSendBufferMemory

    Свойство Значение
    Версия (или позже) NDB 7.5.0
    Тип или единица измерения Байты
    Умолчание 0
    Диапазон 256K - 4294967039 (0xFFFFFEFF)
    Тип перезапуска N

    Этот параметр используется, чтобы определить общую сумму памяти, чтобы ассигновать на этом узле для общего буфера передачи среди всех формируемых транспортеров.

    Если этот параметр устанавливается, его минимальное разрешенное значение составляет 256 КБ. 0 указывает, что параметр не был установлен. Для более подробной информации посмотрите раздел 5.3.13 .

  • HeartbeatIntervalMgmdMgmd

    Таблица 5.19. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации узла управления HeartbeatIntervalMgmdMgmd

    Свойство Значение
    Версия (или позже) NDB 7.5.0
    Тип или единица измерения Миллисекунды
    Умолчание 1500
    Диапазон 100 - 4294967039 (0xFFFFFEFF)
    Тип перезапуска N

    Интервал между сообщениями синхронизации, определяющих, является ли другой узел управления связанным с этим. Узел управления ждет 3 этих интервала, чтобы объявить связь мертвой, таким образом настройка по умолчанию 1500 миллисекунд заставляет узел управления ждать тайм-аут в течение приблизительно 1600 мс.

После внесения изменений в конфигурации узла управления необходимо выполнить катящийся перезапуск кластера для новой конфигурации.

Чтобы добавить новые серверы управления в NDB Cluster, также необходимо выполнить катящийся перезапуск всех узлов после изменения любого существующего файла config.ini. Для получения дополнительной информации о возникновении проблем, используя многократные узлы управления, посмотрите раздел 3.7.10.

5.3.6. Определение узлов данных NDB Cluster

Разделы [ndbd] и [ndbd default] используются, чтобы формировать поведение узлов данных.

[ndbd] и [ndbd default] всегда используются в качестве имен секции, используете ли вы ndbd или ndbmtd для процессов узла данных.

Есть много параметров, которые управляют буферными размерами, тайм-аутами, размерами пулов и т.д. Единственный обязательный параметр любой из ExecuteOnComputer или HostName, это должно быть определено в локальном разделе [ndbd].

Параметр NoOfReplicas должен быть определен в разделе [ndbd default], поскольку это характерно для всех узлов данных. Не строго необходимо установить NoOfReplicas, но это хорошая практика.

Большинство параметров узла данных устанавливаются в разделе [ndbd default]. Только тпараметрам, явно указанным как способные установить локальные значения, разрешают быть измененными в разделе [ndbd]. HostName, NodeId и ExecuteOnComputer должны быть определен локально в разделе [ndbd], а не в любом другом разделе config.ini. Другими словами, параметры настройки для этих параметров определены для одного узла данных.

Для параметров, затрагивающих использование памяти или буферные размеры, возможно использовать K, M или G как суффикс, чтобы указать на единицы 1024, 1024*1024 или 1024*1024*1024. Например, 100K это 100*1024 = 102400.

Названия параметра и значения нечувствительны к регистру, если не используются в файле my.cnf или my.ini, в этом случае они чувствительны к регистру.

Информация о параметрах конфигурации, определенных для таблиц NDB Cluster Disk Data, может быть найдена позже в этой секции (см. здесь).

Все эти параметры также относятся к ndbmtd (мультипоточной версии ndbd). Три дополнительных параметра конфигурации узла данных MaxNoOfExecutionThreads, ThreadConfig и NoOfFragmentLogParts применяются только к ndbmtd, они не имеют никакого эффекта, когда используются с ndbd. См. также раздел 6.3.

Типы перезапуска. Информацию о типах перезапуска, используемых описаниями параметра в этой секции, показывают в следующей таблице:

Таблица 5.20. Типы перезапуска NDB Cluster

Символ Тип перезапуска Описание
N Node Параметр может быть обновлен, используя катящийся перезапуск (см. раздел 7.5 ).
S System Все узлы должны быть закрыты полностью, затем перезапущены, чтобы вызвать изменение в этом параметре.
I Initial Узлы данных должны быть перезапущены, используя опцию --initial .

Идентификация узлов данных. NodeId или Id (то есть, идентификатор узла данных) может быть ассигнован в командной строке, когда узел запускается, или в конфигурационном файле.

  • NodeId

    Таблица 5.21. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации узла данных NodeId

    Свойство Значение
    Версия (или позже) NDB 7.5.0
    Тип или единица измерения unsigned
    Умолчание [none]
    Диапазон 1 - 48
    Тип перезапуска IS

    Уникальный ID узла используется в качестве адреса узла для всех внутренних сообщений. Для узлов данных это целое число в диапазоне 1-48 включительно. У каждого узла должен быть уникальный идентификатор.

    NodeId это единственное поддержанное название параметра, чтобы использовать, определяя узлы данных. Id удалено в NDB 7.5.0.

  • ExecuteOnComputer

    Таблица 5.22. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации узла данных ExecuteOnComputer

    Свойство Значение
    Версия (или позже) NDB 7.5.0
    Тип или единица измерения name
    Умолчание [none]
    Диапазон ...
    Тип перезапуска S

    Это относится к Id для одного из компьютеров, определенных в разделе [computer].

    Этот параметр устарел с NDB 7.5.0 и подвергается удалению в будущем выпуске. Используйте вместо этого HostName.

  • HostName

    Таблица 5.23. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации узла данных HostName

    Свойство Значение
    Версия (или позже) NDB 7.5.0
    Тип или единица измерения Имя или IP-адрес
    Умолчание localhost
    Диапазон ...
    Тип перезапуска N

    Определение этого параметра определяет имя хоста компьютера, на котором должен работать узел данных. Определить имя хоста кроме localhost можно через этот параметр или ExecuteOnComputer.

  • ServerPort

    Таблица 5.24. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации узла данных ServerPort

    Свойство Значение
    Версия (или позже) NDB 7.5.0
    Тип или единица измерения unsigned
    Умолчание [none]
    Диапазон 1 - 64K
    Тип перезапуска S

    Каждый узел использует порт, чтобы соединиться с другими узлами. По умолчанию этот порт ассигнуется динамично таким способом, чтобы гарантировать, чтобы никакие два узла на том же самом хосте не получали тот же самый номер порта, таким образом, обычно не должно быть необходимо определить значение для этого параметра.

    Однако, если необходимо быть в состоянии открыть определенные порты в брандмауэре, чтобы разрешить связь между узлами данных и узлами API (включая узлы SQL), можно установить этот параметр на требуемый порт в разделе [ndbd] или (если необходимо сделать это для многих узлов данных) [ndbd default] файла config.ini, а затем открыть порт, имеющий этот номер, для поступающих связей от узлов SQL, узлов API или обоих.

    Связи от узлов данных до узлов управления сделаны, используя порт управления ndb_mgmd (сервер управления PortNumber), таким образом коммуникабельные связи с тем портом от любых узлов данных должны всегда разрешаться.

  • TcpBind_INADDR_ANY

    Установка этого параметра в TRUE или 1 связывает IP_ADDR_ANY, чтобы связи могли быть установлены отовсюду (для самозарожденных связей). Умолчание FALSE (0).

  • NodeGroup

    Таблица 5.25. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации узла данных NodeGroup

    Свойство Значение
    Версия (или позже) NDB 7.5.0
    Тип или единица измерения
    Умолчание [none]
    Диапазон 0 - 65536
    Тип перезапуска IS

    Этот параметр может использоваться, чтобы назначить узел данных на определенную группу узлов. Это прочитано только, когда кластер стартует впервые и не может использоваться, чтобы повторно назначить узел данных на иную группу узлов онлайн. Обычно нежелательно использовать этот параметр в разделе [ndbd default] файла config.ini.

    Параметр NodeGroup в основном предназначается для использования в добавлении новой группы узла к NDB Cluster, не имея необходимость выполнять катящийся перезапуск. С этой целью необходимо установить его в 65536 (максимальное значение). Вы не обязаны устанавливать значение NodeGroup для всех узлов данных, только для тех узлов, которые должны быть начаты и добавлены в кластер, как новая группа узлов в более позднее время. Для получения дополнительной информации посмотрите раздел 7.15.3.

  • LocationDomainId

    Таблица 5.26. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации узла данных LocationDomainId

    Свойство Значение
    Версия (или позже) NDB 7.6.4
    Тип или единица измерения integer
    Умолчание 0
    Диапазон 0 - 16
    Тип перезапуска S

    Назначает узел данных на определенную область доступности (также известна как зона доступности) в облаке. Сообщая NDB какие узлы в которых областях доступности находятся, работа может быть улучшена в облачной среде следующими способами:

    • Если запрошенные данные не найдены на том же самом узле, чтение может быть направлено к другому узлу в той же самой области доступности.

    • Связь между узлами в различных областях доступности, как гарантируют, будет использовать транспортер NDB WAN без дальнейшего ручного вмешательства.

    • Число группы транспортера может быть основано на том, какая область доступности используется, поэтому другие узлы SQL и API общаются с местными узлами данных в той же самой области доступности, когда это возможно.

    • Арбитр может быть отобран из области доступности, в которой никакие узлы данных не присутствуют или, если никакая такая область доступности не может быть найдена, из третьей области доступности.

    LocationDomainId берет целочисленное значение между 0 и 16 включительно, по умолчанию 0.

  • NoOfReplicas

    Таблица 5.27. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации узла данных NoOfReplicas

    Свойство Значение
    Версия (или позже) NDB 7.5.0
    Тип или единица измерения integer
    Умолчание 2
    Диапазон 1 - 2
    Тип перезапуска IS

    Этот глобальный параметр может быть установлен только в разделе [ndbd default] и определяет количество точных копий для каждой таблицы, хранимой в кластере. Этот параметр также определяет размер групп узла. Группа узла это ряд узлов, хранящих ту же самую информацию.

    Группы узла сформированы неявно. Первая группа узла сформирована набором узлов данных с самыми низкими ID узла, следующая группа узла набором следующих самых низких тождеств узла и так далее. Как пример, предположите, что у нас есть 4 узла данных и что NoOfReplicas = 2. У четырех узлов данных есть ID узла 2, 3, 4 и 5. Тогда первая группа узлов сформирована из узлов 2 и 3, вторая группа узлов это узлы 4 и 5. Важно формировать группу таким способом, что узлы в тех же самых группах узла не помещаются в тот же самый компьютер, потому что единственный отказ оборудования заставил бы всю группу терпеть неудачу.

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

    Умолчание и рекомендуемое максимальное значение для NoOfReplicas = 2. Это рекомендуемое значение для большинства производственных сред.

    В то время как для значения этого параметра теоретически возможно быть 3 или 4, NDB Cluster 7.5 и NDB Cluster 7.6 не поддерживают установку NoOfReplicas больше 2 в производстве.

    Установка NoOfReplicas = 1 значит, что есть только единственная копия всех данных. В этом случае потеря единственного узла данных заставляет кластер терпеть неудачу, потому что нет никаких дополнительных копий данных с этого узла.

    Значение для этого параметра должно разделиться равномерно на количество узлов данных. Например, если есть два узла данных, то NoOfReplicas должно быть равно 1 или 2, так как 2/3 и 2/4 приводят к дробным значениям. Если есть четыре узла данных, то NoOfReplicas должно быть равно 1, 2 или 4.

  • DataDir

    Таблица 5.28. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации узла данных DataDir

    Свойство Значение
    Версия (или позже) NDB 7.5.0
    Тип или единица измерения path
    Умолчание .
    Диапазон ...
    Тип перезапуска IN

    Этот параметр определяет каталог, куда пишутся файлы трассировки, файлы журнала, pid-файлов и журналы ошибок.

    Умолчание: рабочий каталог процесса узла данных.

  • FileSystemPath

    Таблица 5.29. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации узла данных FileSystemPath

    Свойство Значение
    Версия (или позже) NDB 7.5.0
    Тип или единица измерения path
    Умолчание DataDir
    Диапазон ...
    Тип перезапуска IN

    Этот параметр определяет каталог, куда помещаются все файлы, созданные для метаданных, журналов отката, регистраций UNDO (для дисковых таблиц данных) и файлы данных. Умолчание: каталог, определенный DataDir.

    Этот каталог должен существовать, прежде чем процесс ndbd стартует.

    Рекомендуемая иерархия каталогов для NDB Cluster включает /var/lib/mysql-cluster, под которым создается каталог для файловой системы узла. Название этого подкаталога содержит ID узла. Например, если ID узла = 2, этот подкаталог называют ndb_2_fs.

  • BackupDataDir

    Таблица 5.30. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации узла данных BackupDataDir

    Свойство Значение
    Версия (или позже) NDB 7.5.0
    Тип или единица измерения path
    Умолчание [см. ниже]
    Диапазон ...
    Тип перезапуска IN

    Этот параметр определяет каталог, в который помещаются резервные копии.

    Строка '/BACKUP' всегда добавляется к этому значению. Например, если вы устанавливаете значение BackupDataDir = /var/lib/cluster-data, все резервные копии сохранены под /var/lib/cluster-data/BACKUP. Это также означает, что эффективное местоположение резервирных копий по умолчанию это каталог BACKUP под местом, определенным параметром FileSystemPath.

Память данных, индекса и строк

DataMemory и IndexMemory это параметры в [ndbd], определяющие размер сегментов памяти, хранящих фактические записи и их индексы. В установке значений для них важно понять, как DataMemory и IndexMemory применяются, поскольку они обычно должны обновляться, чтобы отразить фактическое использование кластером.

IndexMemory устарело в NDB 7.6.

  • DataMemory

    Таблица 5.31. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации узла данных DataMemory

    Свойство Значение
    Версия (или позже) NDB 7.5.0
    Тип или единица измерения Байты
    Умолчание 80M
    Диапазон 1M - 1T
    Тип перезапускаN
    Версия (или позже) NDB 7.6.2
    Тип или единица измерения Байты
    Умолчание 98M
    Диапазон 1M - 1T
    Тип перезапуска N

    Этот параметр определяет сумму пространства (в байтах), доступного для хранения отчетов базы данных. Вся сумма, определенная этой значениею, ассигнуется в памяти, таким образом, чрезвычайно важно, чтобы у машины была достаточная физическая память, чтобы его разместить.

    Память, ассигнованная DataMemory, используется, чтобы сохранить фактические записи и индексы. Есть 16 байтов заголовка на каждой записи, дополнительная сумма для каждого отчета понесена, потому что это сохранено на странице 32 КБ со 128-байтовым заголовком страницы (см. ниже). Есть также небольшое количество, потраченное впустую на страницу вследствие того, что каждый отчет сохранен только на одной странице.

    Для признаков таблицы переменного размера данные хранятся на отдельных страницах данных, ассигнованных из DataMemory. Отчеты переменной длины применяют часть фиксированного размера с дополнительным заголовком в 4 байта, чтобы сослаться на часть переменного размера. У части переменного размера есть 2 байта заголовка плюс по 2 байта на признак.

    Максимальный рекордный размер составляет 14000 байтов.

    В NDB 7.5 (и ранее), пространство памяти, определенное DataMemory, также используется, чтобы сохранить отсортированные индексы, которые используют приблизительно по 10 байтов на отчет. Каждая строка таблицы представляется в отсортированном индексе. Распространенная ошибка среди пользователей состоит в том, чтобы предположить, что все индексы сохранены в памяти, ассигнованной IndexMemory, но дело обстоит не так: только первичный ключ и уникальные хэш-индексы используют эту память, отсортированные индексы используют память, ассигнованную DataMemory. Однако, создание первичного ключа или уникального хэш-индекса также создает отсортированный индекс на тех же самых ключах, если вы не определяете USING HASH при создании индекса. Это может быть проверено, выполняя ndb_desc -d db_name table_name.

    В NDB 7.6 ресурсы, назначенные на DataMemory, используются для того, чтобы хранить все данные и индексы; любая память формируется как IndexMemory, автоматически добавляется к используемой DataMemory, чтобы сформировать общий пул ресурсов.

    В настоящее время NDB Cluster может использовать максимум 512 МБ для хэш-индексов на раздел, что означает в некоторых случаях, что возможно получить ошибку Table is full в клиентских приложениях MySQL даже когда ndb_mgm -e "ALL REPORT MEMORYUSAGE" показывает значительную свободную DataMemory. Это может также создать проблему с перезапусками узла данных на узлах, которые в большой степени загружаются данными.

    В NDB 7.5.4 и позже можно управлять количеством разделов на местный менеджер данных для данной таблицы, устанавливая опцию NDB_TABLE PARTITION_BALANCE в одно из значений FOR_RA_BY_LDM, FOR_RA_BY_LDM_X_2, FOR_RA_BY_LDM_X_3 или FOR_RA_BY_LDM_X_4 для 1, 2, 3 или 4 разделов на LDM, соответственно, составляя таблицу (см. здесь).

    В предыдущих версиях NDB Cluster было возможно создать дополнительный раздел для таблиц NDB Cluster и таким образом иметь больше памяти в наличии для хэш-индексов при помощи опции MAX_ROWS для CREATE TABLE. В то время как это все еще поддержано для обратной совместимости, использование MAX_ROWS с этой целью устарело, начиная с NDB 7.5.4, где необходимо использовать PARTITION_BALANCE.

    Можно также использовать параметр конфигурации MinFreePct, чтобы помочь избежать проблем с перезапусками узла.

    Пространство памяти, ассигнованное DataMemory, состоит из страниц 32 КБ, которые ассигнуются фрагментам таблицы. Каждая таблица обычно делится на то же самое количество фрагментов, сколько есть узлов данных в кластере. Таким образом, для каждого узла, есть то же самое количество фрагментов, как установлено в NoOfReplicas.

    Как только страница была ассигнована, в настоящее время невозможно вернуть ее в пул свободных страниц, кроме удаления таблица. Это также означает, что страницы DataMemory, когда-то ассигнованные данной таблице, не могут использоваться другими таблицами. Выполнение восстановления узла данных также сжимает раздел, потому что все отчеты вставляются в пустой раздел от других живых узлов.

    Пространство памяти DataMemory также содержит информацию UNDO: для каждого обновления копия неизменного отчета ассигнуется в DataMemory. Есть также ссылка на каждую копию в упорядоченных индексах таблицы. Уникальные хэш-индексы обновляются только, когда колонки уникального индекса обновляются, в этом случае новый вход в таблице индекса вставляется, а старый вход удален при передаче. Поэтому также необходимо ассигновать достаточно памяти, чтобы обращаться с самыми большими транзакциями, выполненными запросами, используя кластер. В любом случае выполнение нескольких больших транзакций не дает преимущества перед использованием многих меньших по следующим причинам:

    • Большие транзакции не намного быстрее, чем меньшие.

    • Большие транзакции увеличивают число операций, которые потеряны и должны быть повторены в случае сбоя транзакции.

    • Большие транзакции используют больше памяти.

    В NDB 7.5 (и ранее) значение по умолчанию для DataMemory = 80MB, начиная с NDB 7.6.2, это 98MB. Минимальное значение составляет 1 МБ. Нет никакого максимального размера, но в действительности максимальный размер должен быть адаптирован так, чтобы процесс не начинал свопинг, когда предел достигнут. Этот предел определяется суммой физической RAM, доступной на машине, и объемом памяти, который операционная система может выделить на любой процесс. 32-битные операционные системы обычно ограничиваются 2-4GB для каждого процесса, 64-битные операционные системы могут использовать больше. Для больших баз данных может быть предпочтительно использовать 64-битную операционную систему.

  • IndexMemory

    Таблица 5.32. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации узла данных IndexMemory

    Свойство Значение
    Версия (или позже) NDB 7.5.0
    Тип или единица измерения Байты
    Умолчание 18M
    Диапазон 1M - 1T
    Тип перезапускаN
    Версия (или позже) NDB 7.6.2
    Тип или единица измерения Байты
    Умолчание 0
    Диапазон 1M - 1T
    Тип перезапуска N

    В NDB 7.5 и ранее этот параметр управляет объемом хранения, используемого для хэш-индексов в NDB Cluster. Хэш-индексы всегда используются для индексов первичного ключа, уникальных индексов и ограничений на уникальность данных. Определяя первичный ключ или уникальный индекс, два индекса создаются, один из которых является хэш-индексом, используемым для всех доступов кортежа, а также обработки блокировки. Этот индекс также используется, чтобы провести в жизнь ограничения на уникальность данных.

    Начиная с NDB 7.6.2, IndexMemory устарел, любая память, назначенная на IndexMemory, ассигнуется вместо этого тому же самому пулу, что и DataMemory, который становится ответственным за все ресурсы, необходимые для того, чтобы хранить данные и индексы в памяти. В NDB 7.6.2 и позже использование в кластерной конфигурации IndexMemory вызывает предупреждение от сервера управления.

    Можно оценить размер хэш-индекса, используя эту формулу:

    size= ((fragments * 32K) + (rows * 18)) * replicas
    

    fragments это количество фрагментов, replicas количество точных копий (обычно 2) и rows количество строк. Если у таблицы есть один миллион строк, 8 фрагментов и 2 точных копии, ожидаемое использование памяти индекса вычисляется как показано здесь:

    ((8 * 32K) + (1000000 * 18)) * 2 = ((8 * 32768) + (1000000 * 18)) * 2
    = (262144 + 18000000) * 2
    = 18262144 * 2 = 36524288 байт = примерно 35MB
    

    Статистические данные индекса для упорядоченных индексов (когда они позволены) сохранены в таблице mysql.ndb_index_stat_sample. Так как у этой таблицы есть хэш-индекс, это добавляет к использованию памяти индекса. Верхняя граница количества строк для данного отсортированного индекса может быть вычислена следующим образом:

    sample_size = key_size + ((key_attributes + 1) * 4)
    sample_rows = IndexStatSaveSize * ((0.01 * IndexStatSaveScale *
                  log2(rows * sample_size)) + 1) / sample_size
    

    key_size это размер отсортированного ключа индекса в байтах, key_attributes число признаков в отсортированном ключе индекса, а rows количество строк в базовой таблице.

    Примите, что таблица t1 имеет 1 миллион строк и отсортированный индекс, названный ix1 на двух четырехбайтовых целых числах. Примите, кроме того, что IndexStatSaveSize и IndexStatSaveScale установлены в их значения по умолчанию (32K и 100, соответственно). Используя предыдущие 2 формулы, мы можем вычислить следующим образом:

    sample_size = 8+ ((1 + 2) * 4) = 20 bytes
    sample_rows = 32K * ((0.01 * 100 * log2(1000000*20)) + 1) / 20 =
                  32768 * ((1 * около 16.811)+1)/20 = 32768 * около 17.811/20 =
                  примерно 29182 строк
    

    Ожидаемое использование памяти индекса равняется таким образом 2 * 18 * 29182 = примерно 1050550 байт.

    До NDB 7.6.2 значения по умолчанию для IndexMemory = 18MB, минимум составляет 1 МБ. В NDB 7.6.2 и позже минимум и умолчание = 0 (ноль). Это имеет последствия для снижений от NDB 7.6 до более ранних версий NDB Cluster, см. раздел 4.9 .

  • StringMemory

    Таблица 5.33. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации узла данных StringMemory

    Свойство Значение
    Версия (или позже) NDB 7.5.0
    Тип или единица измерения % или байты
    Умолчание 25
    Диапазон 0 - 4294967039 (0xFFFFFEFF)
    Тип перезапуска S

    Этот параметр определяет, сколько памяти ассигнуется для последовательностей, таких как имена таблиц и определяется в разделах [ndbd] или [ndbd default] файла config.ini. Значение между 0 и 100 включительно интерпретируется как процент максимального значения по умолчанию, которое вычисляется на основе многих факторов, включая количество таблиц, максимальный размер имени таблицы, максимальный размер файлов .FRM, MaxNoOfTriggers, максимальный размер имени столбца и максимальное значение столбца по умолчанию.

    Значение больше 100 интерпретируется как количество байтов.

    Значение по умолчанию 25 то есть, 25 процентов максимума по умолчанию.

    В большинстве обстоятельств значение по умолчанию должно быть достаточным, но когда у вас есть очень много таблиц NDB (1000 или больше), возможно получить ошибку 773 Out of string memory, please modify StringMemory config parameter: Permanent error: Schema error, в этом случае необходимо увеличить это значение. 25 (25%) не чрезмерно и должно препятствовать этой ошибке во всех кроме самых чрезвычайных условий.

Следующий пример иллюстрирует, как память используется для таблицы. Рассмотрите это определение таблицы:

CREATE TABLE example (a INT NOT NULL, b INT NOT NULL, c INT NOT NULL,
                      PRIMARY KEY(a), UNIQUE(b)) ENGINE=NDBCLUSTER;

Для каждого отчета есть 12 байтов данных плюс 12 байтов заголовок. Отсутствие nullable-столбцов экономит 4 байта заголовка. Кроме того, у нас есть два упорядоченных индекса на колонках a и b с потреблением примерно 10 байтов каждый на отчет. Есть хэш-индекс первичного ключа на базовой таблице, использущий примерно 29 байтов на отчет. Ограничение на уникальность данных осуществляется отдельной таблицей b как первичный ключ и a как колонка. Эта другая таблица потребляет дополнительные 29 байтов памяти индекса на отчет в таблице example, а также 8 байтов для данных плюс 12 байтов заголовка.

Таким образом, для одного миллиона отчетов, нам нужны 58 МБ для памяти индекса, чтобы обращаться с хэш-индексами для первичного ключа и ограничения на уникальность данных. Нам также нужны 64 МБ для отчетов базовой таблицы и таблицы уникального индекса плюс два упорядоченных индекса таблицы.

Вы видите, что хэш-индексы занимают изрядное количество пространства памяти, однако, они обеспечивают очень быстрый доступ к данным. Они также используются в NDB Cluster, чтобы обращаться с ограничениями уникальности.

В настоящее время единственный алгоритм разделения это хэширование, а отсортированные индексы локальны для каждого узла. Таким образом отсортированные индексы не могут использоваться, чтобы обращаться с ограничениями уникальности в общем случае.

Важный момент для обоих IndexMemory и DataMemory в том, что полный размер базы данных это сумма всей памяти данных и всей памяти индекса для каждой группы узлов. Каждая группа узлов используется, чтобы хранить копируемую информацию, поэтому если будет четыре узла с двумя точными копиями, будет две группы узлов. Таким образом полная доступная память данных является 2* DataMemory для каждого узла данных.

Настоятельно рекомендовано установить DataMemory и IndexMemory в те же самые значения для всех узлов. Распределение данных даже по всем узлам в группе, таким образом, будет максимальной суммой пространства, доступного для любого узла, значит может быть не больше, чем место из самого маленького узла в группе.

DataMemory (и в NDB 7.5 и ранее IndexMemory) может быть изменено, но уменьшение может быть опасным: выполнение этого может легко привести к узлу или даже всему NDB Cluster, который неспособен перезапуститься из-за того, что недостаточно памяти. Увеличения должны быть приемлемыми, но рекомендуется, чтобы такие модернизации были выполнены таким же образом как обновление программного обеспечения, начавшись с обновления конфигурационного файла, а затем перезапустив сервер управления, сопровождаемый перезапуском каждого узла данных в свою очередь.

MinFreePct. Пропорция (5% по умолчанию) ресурсов узла данных, включая DataMemory (и в NDB 7.5 и ранее IndexMemory), сохраненная в резерве, чтобы гарантировать, что узел данных не исчерпывает свою память, выполняя перезапуск. Это может быть скорректировано, используя параметр конфигурации узла данных MinFreePct (умолчание 5).

Таблица 5.34. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации узла данных MinFreePct

Свойство Значение
Версия (или позже) NDB 7.5.0
Тип или единица измерения unsigned
Умолчание 5
Диапазон 0 - 100
Тип перезапуска N

Обновления не увеличивают сумму используемой памяти индекса. Вставки немедленно вступают в силу, однако, строки на самом деле не удалены, пока транзакция не передается.

Операционные параметры. Несколько следующих параметров [ndbd], которые мы обсуждаем, важны потому, что они затрагивают количество параллельных транзакций и размеры транзакций, которые могут быть обработаны системой. MaxNoOfConcurrentTransactions определяет число параллельных транзакций, возможных в узле. MaxNoOfConcurrentOperations определяет число записей, которые могут быть в фазе обновления или блокированы одновременно.

Оба из этих параметров (особенно MaxNoOfConcurrentOperations) вероятные цели пользователей, устанавливающих определенные значения и не использующих значение по умолчанию. Значение по умолчанию установлено для систем, используя маленькие транзакции, чтобы гарантировать, чтобы они не использовали чрезмерную память.

MaxDMLOperationsPerTransaction определяет максимальное число операций DML, которые могут быть выполнены в данной транзакции.

  • MaxNoOfConcurrentTransactions

    Таблица 5.35. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации узла данных MaxNoOfConcurrentTransactions

    Свойство Значение
    Версия (или позже) NDB 7.5.0
    Тип или единица измерения integer
    Умолчание 4096
    Диапазон 32 - 4294967039 (0xFFFFFEFF)
    Тип перезапуска N

    Каждый узел данных требует записи транзакции для каждой активной транзакции. Задача координирования транзакций распределяется среди всех узлов данных. Общее количество записей транзакции это количество транзакций в любой момент во всех узлах кластера.

    Записи транзакции ассигнуются отдельным серверам MySQL. Каждая связь с сервером MySQL требует по крайней мере одной записи транзакции плюс дополнительный операционный объект на таблицу, к которой получает доступ та связь. Это означает, что разумный минимум для общего количества транзакций в группе может быть выражен так:

    TotalNoOfConcurrentTransactions =
    (максимальное число таблиц, задействованных в транзакции + 1)
    * число узлов SQL
    

    Предположим, что есть 10 узлов SQL. Единственное соединение, включающее 10 таблиц, требует 11 записей транзакции, если есть 10 соединений в транзакции, то 10 * 11 = 110 записей транзакции требуются для этой транзакции на сервер MySQL, или 110 * 10 = 1100 общее количество записей транзакций. Каждый узел данных, как могут ожидать, будет обращаться с TotalNoOfConcurrentTransactions / количество узлов данных. Для NDB Cluster, имеющего 4 узла данных, это означало бы MaxNoOfConcurrentTransactions на каждом узле данных 1100 / 4 = 275. Кроме того, необходимо предусмотреть восстановление после сбоя, гарантировав, что единственная группа узлов может выполнить все параллельные транзакции, другими словами, что MaxNoOfConcurrentTransactions каждого узла данных достаточно, чтобы покрыть много транзакций, равное TotalNoOfConcurrentTransactions / количество групп узлов. Если у этого кластера есть единственная группа узлов, то MaxNoOfConcurrentTransactions должен быть установлен в 1100 (то же самое значение, как общее количество параллельных транзакций для всего кластера).

    Кроме того, каждая транзакция включает по крайней мере одну операцию, поэтому значение MaxNoOfConcurrentTransactions должно всегда быть не больше, чем значение MaxNoOfConcurrentOperations.

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

    Возможно изменить это значение, используя катящийся перезапуск, но объем трафика должен быть таков, что транзакций не происходит ниже старых и новых уровней.

    Значение по умолчанию 4096.

  • MaxNoOfConcurrentOperations

    Таблица 5.36. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации узла данных MaxNoOfConcurrentOperations

    Свойство Значение
    Версия (или позже) NDB 7.5.0
    Тип или единица измерения integer
    Умолчание 32K
    Диапазон 32 - 4294967039 (0xFFFFFEFF)
    Тип перезапуска N

    Хорошая идея приспособить значение этого параметра согласно размеру и количеству транзакций. Выполняя транзакции, которые включают только несколько операций, значение по умолчанию для этого параметра обычно достаточно. Выполнение больших транзакций, включающих много записей, обычно требует, чтобы вы увеличили это значение.

    Учет ведут для каждой транзакции, обновляющей данные, в операционном координаторе и в узлах, где фактические обновления выполняются. Эти отчеты содержат информацию статуса, чтобы найти отчеты UNDO для отката, очередей блокировки и других целей.

    Этот параметр должен быть установлен как минимум на количество записей, которые будут обновлены одновременно в транзакциях, разделенных на количество узлов данных. Например, в кластере, у которого есть четыре узла данных и который, как ожидают, будет обращаться с одним миллионом параллельных обновлений, используя транзакции, необходимо установить это значение в 1000000 / 4 = 250000. Чтобы помочь обеспечить упругость против неудач, предлагается, чтобы вы установили этот параметр в значение, которое достаточно высоко, чтобы разрешить отдельному узлу данных обращаться с нагрузкой для своей группы узлов. Другими словами, необходимо установить значение, равное общее число параллельных операций / число групп узлов. В случае, где есть единственная группа узлов, это совпадает с общим количеством параллельных операций для всего кластера.

    Поскольку каждая транзакция всегда включает по крайней мере одну операцию, значение MaxNoOfConcurrentOperations должно всегда быть больше или равным MaxNoOfConcurrentTransactions.

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

    Когда запросы используют уникальный хэш-индекс, есть на самом деле два операционных отчета, используемых на отчет в транзакции. Первый отчет представляет чтение в таблице индекса, второй обрабатывает операцию на базовой таблице.

    Значение по умолчанию 32768.

    Этот параметр на самом деле обращается с двумя значениями, которые могут формироваться отдельно. Первый из них определяет, сколько операционных отчетов должно быть размещено операционным координатором. Вторая часть определяет, сколько операционных отчетов должно быть локальными для базы данных.

    Очень большая транзакция, выполненная на кластере с восемью узлами, требует столько же операционных отчетов в операционном координаторе, сколько есть чтений, обновлений и удалений в транзакции. Однако операционные отчеты распространены по всем восьми узлам. Таким образом, если необходимо формировать систему для одной очень большой транзакции, хорошая идея формировать эти две части отдельно. MaxNoOfConcurrentOperations будет всегда использоваться, чтобы вычислить количество операционных отчетов в операционном координаторе.

    Также важно иметь идею требований к памяти для операционных отчетов. Они потребляют приблизительно 1 КБ на отчет.

  • MaxNoOfLocalOperations

    Таблица 5.37. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации узла данных MaxNoOfLocalOperations

    Свойство Значение
    Версия (или позже) NDB 7.5.0
    Тип или единица измерения integer
    Умолчание UNDEFINED
    Диапазон 32 - 4294967039 (0xFFFFFEFF)
    Тип перезапуска N

    По умолчанию этот параметр вычисляется как 1.1 * MaxNoOfConcurrentOperations. Это заполняет системы многими одновременными транзакциями, ни одна из них не является очень большой. Если есть потребность обращаться с одной очень большой трназакцией за один раз и есть много узлов, хорошая идея отвергнуть значение по умолчанию, явно определяя этот параметр.

  • MaxDMLOperationsPerTransaction

    Таблица 5.38. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации узла данных MaxDMLOperationsPerTransaction

    Свойство Значение
    Версия (или позже) NDB 7.5.0
    Тип или единица измерения Операции (DML)
    Умолчание 4294967295
    Диапазон 32 - 4294967295
    Тип перезапуска N

    Этот параметр ограничивает размер транзакции. Транзакция прерывается, если она требует больше, чем это число операций DML. Минимальное количество операций на транзакцию равняется 32, однако, можно установить MaxDMLOperationsPerTransaction = 0, чтобы отключить любое ограничение на количество операций DML на транзакцию. Максимум (и умолчание) равняется 4294967295.

Операционное временное хранение. Следующие параметры [ndbd] используются, чтобы определить временное хранение, выполняя запрос, который является частью транзакции. Все отчеты опубликованы, когда запрос закончен, а кластер ждет передачи или отката.

Значения по умолчанию для этих параметров достаточны для большинства ситуаций. Однако пользователи с потребностью поддержать транзакции, включающие большие количества строк или операций, возможно, должны увеличить эти значения, чтобы позволить лучший параллелизм в системе, тогда как пользователи, запросы которых требуют относительно маленьких транзакций, могут уменьшить значения, чтобы сохранить память.

  • MaxNoOfConcurrentIndexOperations

    Таблица 5.39. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации узла данных MaxNoOfConcurrentIndexOperations

    Свойство Значение
    Версия (или позже) NDB 7.5.0
    Тип или единица измерения integer
    Умолчание 8K
    Диапазон 0 - 4294967039 (0xFFFFFEFF)
    Тип перезапуска N

    Для запросов, использующих уникальный хэш-индекс, другой временный набор операционных отчетов используется во время фазы выполнения запроса. Этот параметр устанавливает размер того пула отчетов. Таким образом этот отчет ассигнуется, только выполняя часть запроса. Как только эта часть была выполнена, отчет опубликован. Статус должен был обращаться с аварийными прекращениями работы и передачи, обработкой отчетов нормального функционирования, где размер пула установлен параметром MaxNoOfConcurrentOperations.

    Значение по умолчанию этого параметра 8192. Только в редких случаях чрезвычайно высокого параллелизма, используя уникальные хэш-индексы надо увеличить это значение. Использовать меньшее значение возможно и может сохранить память, если DBA уверен, что высокая степень параллелизма не требуется.

  • MaxNoOfFiredTriggers

    Таблица 5.40. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации узла данных MaxNoOfFiredTriggers

    Свойство Значение
    Версия (или позже) NDB 7.5.0
    Тип или единица измерения integer
    Умолчание 4000
    Диапазон 0 - 4294967039 (0xFFFFFEFF)
    Тип перезапуска N

    Значение по умолчанию MaxNoOfFiredTriggers = 4000, которое достаточно для большинства ситуаций. В некоторых случаях это может даже быть уменьшено, если DBA чувствует себя уверенным, что потребность в параллелизме невысока.

    Отчет создается, когда операция выполняется, которая затрагивает уникальный хэш-индекс. Вставка или удаление отчета в таблице с уникальными хэш-индексамиили обновление колонки, которая является частью уникального хэш-индекса, запускают вставку или удаление в таблице индекса. Получающийся отчет используется, чтобы представлять эту операцию в таблице индекса, ожидая завершения оригинальной операции, которая запустила его. Эта операция недолгая, но может все еще потребовать большого количества отчетов в пуле для ситуаций со многими параллельными операциями записи на базовой таблице, содержащей ряд уникальных хэш-индексов.

  • TransactionBufferMemory

    Таблица 5.41. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации узла данных TransactionBufferMemory

    Свойство Значение
    Версия (или позже) NDB 7.5.0
    Тип или единица измерения Байты
    Умолчание 1M
    Диапазон 1K - 4294967039 (0xFFFFFEFF)
    Тип перезапуска N

    Память, затронутая этим параметром, используется для отслеживания операций, запущенных, обновляя таблицы индекса и читая уникальные индексы. Эта память используется, чтобы сохранить ключ и информацию о колонке для этих операций. Только очень редко значение для этого параметра должно быть изменено от умолчания.

    Значение по умолчанию для TransactionBufferMemory = 1MB.

    Нормальные операции чтения и записи используют подобный буфер, использование которого еще более краткое. Параметр времени компиляции ZATTRBUF_FILESIZE (находится в ndb/src/kernel/blocks/Dbtc/Dbtc.hpp) = 4000 * 128 байт (500KB). Подобный буфер для ключевой информации ZDATABUF_FILESIZE (также в Dbtc.hpp) занимает 4000 * 16 = 62.5KB пространства буфера. Dbtc это модуль, который обращается с операционной координацией.

Просмотры и буферизование. Дополнительные параметры [ndbd] в модуле Dblqhndb/src/kernel/blocks/Dblqh/Dblqh.hpp) влияют чтение и обновление. Они включают ZATTRINBUF_FILESIZE, установленный по умолчанию в 10000 * 128 байт (1250KB), и ZDATABUF_FILE_SIZE, установленный по умолчанию в 10000*16 байт (примерно 156KB). До настоящего времени нет ни отчетов от пользователей, ни любых следствий наших собственных обширных тестов, предполагающих, что любой из этих пределов времени компиляции должен быть увеличен.

  • BatchSizePerLocalScan

    Таблица 5.42. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации узла данных BatchSizePerLocalScan

    Свойство Значение
    Версия (или позже) NDB 7.5.0
    Тип или единица измерения integer
    Умолчание 256
    Диапазон 1 - 992
    Тип перезапуска N

    Этот параметр используется, чтобы вычислить количество отчетов блокировки, используемых параллельными операциями по просмотру.

    BatchSizePerLocalScan имеет сильную связь с BatchSize, определенном в узлах SQL.

  • LongMessageBuffer

    Таблица 5.43. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации узла данных LongMessageBuffer

    Свойство Значение
    Версия (или позже) NDB 7.5.0
    Тип или единица измерения Байты
    Умолчание 64M
    Диапазон 512K - 4294967039 (0xFFFFFEFF)
    Тип перезапуска N

    Это внутренний буфер, используемый для мимолетных сообщений в отдельных узлах и между узлами. Умолчание составляет 64 МБ.

    Этот параметр редко должен изменяться от умолчания.

  • MaxFKBuildBatchSize

    Таблица 5.44. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации узла данных MaxFKBuildBatchSize

    Свойство Значение
    Версия (или позже) NDB 7.6.4
    Тип или единица измерения integer
    Умолчание 64
    Диапазон 16 - 512
    Тип перезапуска S

    Максимальный пакетный размер просмотра используется для создания внешних ключей. Увеличение набора значений для этого параметра может убыстрить создание внешнего ключа за счет большего трафика.

    Добавлено в NDB 7.6.4.

  • MaxNoOfConcurrentScans

    Таблица 5.45. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации узла данных MaxNoOfConcurrentScans

    Свойство Значение
    Версия (или позже) NDB 7.5.0
    Тип или единица измерения integer
    Умолчание 256
    Диапазон 2 - 500
    Тип перезапуска N

    Этот параметр используется, чтобы управлять количеством параллельных просмотров, которые могут быть выполнены. Каждый операционный координатор может обращаться с количеством параллельных просмотров, определенных для этого параметра. Каждый запрос просмотра выполняется, просматривая все разделение параллельно. Каждый просмотр разделения использует отчет просмотра в узле, где разделение расположено, количество отчетов, являющихся значением этого параметра, умноженное на количество узлов. Группа должна быть в состоянии выдержать MaxNoOfConcurrentScans просмотров одновременно от всех узлов.

    Просмотры на самом деле выполняются в двух случаях. Первый из этих случаев происходит, когда никакой хэш или отсортированные индексы не существуют, чтобы обращаться с запросом, в этом случае запрос выполняется через полное сканирование таблицы. Со вторым случаем сталкиваются, когда нет никакого хэш-индекса, чтобы поддержать запрос, но есть отсортированный индекс. Использовать отсортированный индекс означает выполнять параллельный просмотр диапазона. Порядок сохранен только на местном разделении, таким образом, необходимо выполнить просмотр индекса на всех разделениях.

    Значение по умолчанию MaxNoOfConcurrentScans = 256. Максимальное значение 500.

  • MaxNoOfLocalScans

    Таблица 5.46. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации узла данных MaxNoOfLocalScans

    Свойство Значение
    Версия (или позже) NDB 7.5.0
    Тип или единица измерения integer
    Умолчание [see text]
    Диапазон 32 - 4294967039 (0xFFFFFEFF)
    Тип перезапуска N

    Определяет количество местных отчетов просмотра, если многим просмотрам не полностью находят что-либо подобное. Когда количество местных отчетов просмотра не обеспечивается, оно вычисляется как показано здесь:

    4 * MaxNoOfConcurrentScans * [число узлов данных] + 2
    

    Минимальное значение равняется 32.

  • MaxParallelCopyInstances

    Таблица 5.47. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации узла данных MaxParallelCopyInstances

    Свойство Значение
    Версия (или позже) NDB 7.5.0
    Тип или единица измерения integer
    Умолчание 0
    Диапазон 0 - 64
    Тип перезапуска S

    Этот параметр устанавливает параллелизацию, используемую в фазе копии перезапуска узла или системного перезапуска, когда узел, который в настоящее время только стартует, синхронизирован с узлом, у которого уже есть текущие данные, копируя любые измененные отчеты с узла, который актуален. Поскольку весь параллелизм в таких случаях может привести к ситуациям с перегрузкой, MaxParallelCopyInstances обеспечивает средство уменьшить его. Значение по умолчанию этого параметра 0, это означает, что эффективный параллелизм равен количеству экземпляров LDM в стартующем узле, а также узле, обновляющем его.

  • MaxParallelScansPerFragment

    Таблица 5.48. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации узла данных MaxParallelScansPerFragment

    Свойство Значение
    Версия (или позже) NDB 7.5.0
    Тип или единица измерения Байты
    Умолчание 256
    Диапазон 1 - 4294967039 (0xFFFFFEFF)
    Тип перезапуска N

    Возможно формировать максимальное количество параллельных просмотров (просмотры TUP и TUX) позволенных прежде, чем они начнут стоять в очереди за последовательной обработкой. Можно увеличить это, чтобы использовать в своих интересах любой неиспользованный CPU, выполняя большое количество просмотров параллельно и улучшить их работу.

    Значение по умолчанию для этого параметра 256.

  • MaxReorgBuildBatchSize

    Таблица 5.49. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации узла данных MaxReorgBuildBatchSize

    Свойство Значение
    Версия (или позже) NDB 7.6.4
    Тип или единица измерения integer
    Умолчание 64
    Диапазон 16 - 512
    Тип перезапуска S

    Максимальный пакетный размер просмотра используется для перестройки разделения таблицы. Увеличение значения для этого параметра может ускорить перестройку за счет большего трафика.

    Добавлено в NDB 7.6.4.

  • MaxUIBuildBatchSize

    Таблица 5.50. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации узла данных MaxUIBuildBatchSize

    Свойство Значение
    Версия (или позже) NDB 7.6.4
    Тип или единица измерения integer
    Умолчание 64
    Диапазон 16 - 512
    Тип перезапуска S

    Максимальный пакетный размер просмотра используется для создания уникальных ключей. Увеличение значения для этого параметра может ускорить создание за счет большего трафика.

    Добавлено в NDB 7.6.4.

Выделение памяти

MaxAllocate

Таблица 5.51. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации узла данных MaxAllocate

Свойство Значение
Версия (или позже) NDB 7.5.0
Тип или единица измерения unsigned
Умолчание 32M
Диапазон 1M - 1G
Тип перезапуска N

Это максимальный размер блока памяти, чтобы использовать, ассигнуя память для таблиц. В случаях, когда NDB дает ошибку Out of memory, но очевидно, исследуя журнал или вывод DUMP 1000, что вся доступная память еще не использовалась, можно увеличить значение этого параметра (или MaxNoOfTables или вместе), чтобы предписать NDB сделать достаточную память доступной.

Размер хэш-карты

DefaultHashMapSize

Таблица 5.52. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации узла данных DefaultHashMapSize

Свойство Значение
Версия (или позже) NDB 7.5.0
Тип или единица измерения LDM threads
Умолчание 3840
Диапазон 0 - 3840
Тип перезапуска N

Размер таблицы хэш-карт, используемый NDB, настраивается этим параметром. DefaultHashMapSize может принять любое из трех возможных значений (0, 240, 3840). Эти значения и их эффекты описаны в следующей таблице:

Таблица 5.53. Параметры DefaultHashMapSize

Значение Эффект
0 Используйте самое низкое значение, если таковое имеется, для этого параметра среди всех узлов данных и узлов API, если это не установлено ни на каких узлах данных или API, используйте значение по умолчанию.
240 Оригинальный размер хэш-карты (используемый по умолчанию во всем NDB Cluster до NDB 7.2.7).
3840 Больший размер хэш-карты (используемый по умолчанию начиная с NDB 7.2.7).

Оригинальное надлежащее использование для этого параметра должно было облегчить модернизации и особенно даунгрейды для очень старых выпусков с отличающимися размерами хэш-карты по умолчанию. Это не проблема, модернизируя от NDB Cluster 7.4 до NDB Cluster 7.5.

Регистрация и контрольные точки. Следующие параметры [ndbd] управляют поведением контрольной точки и регистрации.

  • FragmentLogFileSize

    Таблица 5.54. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации узла данных FragmentLogFileSize

    Свойство Значение
    Версия (или позже) NDB 7.5.0
    Тип или единица измерения Байты
    Умолчание 16M
    Диапазон 4M - 1G
    Тип перезапуска IN

    Установка этого параметра позволяет вам управлять непосредственно размером файлов журнала отката. Это может быть полезно в ситуациях, когда NDB Cluster работает под высокой нагрузкой и неспособен закрыть файлы журнала фрагмента достаточно быстро прежде, чем попытаться открыть новые (только 2 файла журнала фрагмента могут быть открыты одновременно). Увеличение размера файлов журнала фрагмента дает больше времени прежде, чем получить необходимость открыть каждый новый файл журнала фрагмента. Значение по умолчанию для этого параметра 16M.

    Для получения дополнительной информации о файлах журнала фрагмента см. описание для NoOfFragmentLogFiles.

  • InitialNoOfOpenFiles

    Таблица 5.55. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации узла данных InitialNoOfOpenFiles

    Свойство Значение
    Версия (или позже) NDB 7.5.0
    Тип или единица измерения Файлы
    Умолчание 27
    Диапазон 20 - 4294967039 (0xFFFFFEFF)
    Тип перезапуска N

    Этот параметр определяет начальное число внутренних потоков, чтобы ассигновать для открытых файлов.

    Значение по умолчанию 27.

  • InitFragmentLogFiles

    Таблица 5.56. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации узла данных InitFragmentLogFiles

    Свойство Значение
    Версия (или позже) NDB 7.5.0
    Тип или единица измерения [see values]
    Умолчание SPARSE
    Диапазон SPARSE, FULL
    Тип перезапуска IN

    По умолчанию файлы фрагмента журнала создаются разреженными, выполняя начальный запуск узла данных то есть, в зависимости от операционной системы и файловой системы, не все байты обязательно написаны на диск. Однако, возможно отвергнуть это поведение и вынудить все байты быть написанными, независимо от платформы и используемого типа файловой системы, посредством этого параметра. InitFragmentLogFiles берет любое из двух значений:

    • SPARSE. Файлы фрагмента журнала создаются разреженными. Это значение по умолчанию.

    • FULL. Принудительно все байты файла фрагмента журнала пишутся на диск.

    В зависимости от вашей операционной системы и файловой системы, установка InitFragmentLogFiles=FULL может помочь устранить ошибки I/O при записи журнала отката.

  • EnablePartialLcp

    Таблица 5.57. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации узла данных EnablePartialLcp

    Свойство Значение
    Версия (или позже) NDB 7.6.4
    Тип или единица измерения boolean
    Умолчание true
    Диапазон ...
    Тип перезапуска N

    Когда true, допустимы частичные местные контрольные точки: это означает, что каждый LCP делает запись только части полной базы данных плюс любые отчеты, содержащие строки, измененные начиная с последнего LCP, если никакие строки не изменились, LCP обновляет только файл контроля за LCP и не обновляет файлов данных.

    Если EnablePartialLcp выключен (false), каждый LCP использует только единственный файл и пишет полную контрольную точку, это требует наименьшего количества дискового пространства для LCP, но увеличивает нагрузку для каждого LCP. Значение по умолчанию true. Пропорция пространства, использованного частичным LCP, может быть изменена параметром RecoveryWork.

    Для получения дополнительной информации о файлах и каталогах, используемых для полного и частичного LCP, см. здесь.

    В NDB 7.6.7 и позже установка этого параметра в false также отключает расчет скорости записи на диск, используемой адаптивным механизмом управления LCP.

  • LcpScanProgressTimeout

    Таблица 5.58. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации узла данных LcpScanProgressTimeout

    Свойство Значение
    Версия (или позже) NDB 7.5.0
    Тип или единица измерения Секунды
    Умолчание 60
    Диапазон 0 - 4294967039 (0xFFFFFEFF)
    Тип перезапуска N

    Местный фрагмент контрольной точки периодически просматривает охранительные проверки на отсутствие активности каждого просмотра фрагмента, выполненного как часть местной контрольной точки и закрывает узел, если нет никакого прогресса после того, как данное количество времени прошло. Этот интервал может быть установлен, используя параметр конфигурации узла данных LcpScanProgressTimeout, который устанавливает максимальное время, в течение которого местная контрольная точка может быть остановлена перед контрольной проверкой просмотра фрагмента LCP.

    Значение по умолчанию составляет 60 секунд (предоставляет совместимость с предыдущими выпусками). Установка этого параметра в 0 выключает проверку просмотра фрагмента LCP в целом.

  • MaxNoOfOpenFiles

    Таблица 5.59. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации узла данных MaxNoOfOpenFiles

    Свойство Значение
    Версия (или позже) NDB 7.5.0
    Тип или единица измерения unsigned
    Умолчание 0
    Диапазон 20 - 4294967039 (0xFFFFFEFF)
    Тип перезапуска N

    Этот параметр устанавливает потолок на число внутренних потоков, ассигнованных для открытых файлов. О любой ситуации, требующей изменения в этом параметре, нужно сообщить, как об ошибке.

    Значение по умолчанию 0. Однако, минимальное значение, в которое может быть установлен этот параметр, 20.

  • MaxNoOfSavedMessages

    Таблица 5.60. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации узла данных MaxNoOfSavedMessages

    Свойство Значение
    Версия (или позже) NDB 7.5.0
    Тип или единица измерения integer
    Умолчание 25
    Диапазон 0 - 4294967039 (0xFFFFFEFF)
    Тип перезапуска N

    Этот параметр определяет максимальное число ошибок, написанных в журнале ошибок, а также максимальное количество файлов трассировки, которые сохранены прежде, чем переписать существующие. Файлы трассировки произведены, когда по любой причине узел падает.

    Умолчание равняется 25, что устанавливает эти максимумы в 25 сообщений об ошибках и 25 файлов трассировки.

  • MaxLCPStartDelay

    Таблица 5.61. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации узла данных MaxLCPStartDelay

    Свойство Значение
    Версия (или позже) NDB 7.5.0
    Тип или единица измерения Секунды
    Умолчание 0
    Диапазон 0 - 600
    Тип перезапуска N

    В параллельном восстановлении узла данных только данные о таблице на самом деле скопированы и синхронизированы параллельно, синхронизация метаданных, таких как словарь и информация о контрольной точке сделана последовательным способом. Кроме того, восстановление словаря и информации о контрольной точке не может быть выполнено параллельно с выполнением местных контрольных точек. Это означает, что перезапуская много узлов данных одновременно, узлы данных могут быть вынуждены ждать, в то время как местная контрольная точка выполняется, что может занять много времени.

    Возможно вынудить задержку местной контрольной точки разрешить большему числу узлов данных (возможно всем) заканчивать синхронизацию метаданных, как только каждая синхронизация метаданных узла данных завершена, все узлы данных могут возвратить данные о таблице параллельно, даже в то время как местная контрольная точка выполняется. Чтобы вызвать такую задержку, установите MaxLCPStartDelay, что определяет число секунд, которое кластер может ждать, чтобы начать местную контрольную точку, в то время как узлы данных продолжают синхронизировать метаданные. Этот параметр должен быть установлен в разделе [ndbd default] файла config.ini, чтобы это было то же самое для всех узлов данных. Максимальное значение 600, умолчание 0.

  • NoOfFragmentLogFiles

    Таблица 5.62. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации узла данных NoOfFragmentLogFiles

    Свойство Значение
    Версия (или позже) NDB 7.5.0
    Тип или единица измерения integer
    Умолчание 16
    Диапазон 3 - 4294967039 (0xFFFFFEFF)
    Тип перезапуска IN

    Этот параметр определяет число файлов журнала отката для узла и таким образом сумму места, выделенного для них. Поскольку файлы журнала отката организованы в кольце, чрезвычайно важно, чтобы первые и последние файлы журнала в наборе (иногда называемые файлами журнала head и tail соответственно) не встречались. Когда они приближаются друг к другу слишком тесно, узел начинает прерывать все транзакции, охватывающие обновления из-за отсутствия места для новых записей журнала.

    Запись журнала REDO не удалена, пока обе необходимых местных контрольных точки не были закончены, так как та запись журнала была вставлена. Частота контрольных точек определяется собственным набором параметров конфигурации, обсужденных в другом месте в этой главе.

    Значение параметра по умолчанию равняется 16, это означает 16 наборов по 4 файла по 16 МБ, в общей сложности 1024 МБ. Размер отдельных файлов журнала конфигурируем с использованием FragmentLogFileSize. В сценариях, требующих очень многих обновлений, значения для NoOfFragmentLogFiles возможно, должен быть установлен в 300 или еще выше, чтобы обеспечить достаточное пространство для журналов отката.

    Если контрольные точки медленные и есть так много записей в базу данных, что файлы журнала полны, а хвост регистрации не может быть порезан, не подвергая опасности восстановление, все транзакции обновления прерываются с внутренним кодом ошибки 410 (Out of log file space temporarily). Это условие преобладает, пока контрольная точка не закончит работу, а хвост регистрации может быть продвинут.

    Этот параметр не может быть изменен на лету, необходимо перезапустить узел с использованием --initial. Если вы хотите изменить это значение для всех узлов данных в кластере, можно сделать катящийся перезапуск узла (с использованием --initial, запуская каждый узел данных).

  • RecoveryWork

    Таблица 5.63. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации узла данных RecoveryWork

    Свойство Значение
    Версия (или позже) NDB 7.6.4
    Тип или единица измерения integer
    Умолчание 50
    Диапазон 25 - 100
    Тип перезапуска N
    Версия (или позже) NDB 7.6.5
    Тип или единица измерения integer
    Умолчание 60
    Диапазон 25 - 100
    Тип перезапуска N

    Процент издержек хранения для файлов LCP. Этот параметр имеет эффект только когда EnablePartialLcp = true, то есть, только когда частичные местные контрольные точки позволены. Более высокое значение означает:

    • Меньше отчетов написано для каждого LCP, LCP используют больше места.

    • Больше работы необходимо во время перезапусков.

    Низкое значение для RecoveryWork значит:

    • Больше отчетов написано во время каждого LCP, но LCP требуют меньшего места на диске.

    • Меньше работы во время перезапуска и таким образом более быстрый перезапуск за счет большего количества работы во время нормального функционирования.

    Например, RecoveryWork = 60 значит, что полный размер LCP примерно 1 + 0.6 = 1.6 размера данных для контрольной точки. Это означает, что на 60% больше работы требуется во время восстановления фазы перезапуска по сравнению с работой, сделанной во время перезапуска, который использует полные контрольные точки. Зато больше, чем дают компенсации во время других фаз перезапуска, таким образом, перезапуск в целом еще быстрее, используя частичный LCP, чем используя полный LCP. Чтобы не заполнить журнал отката, необходимо написать в 1 + (1 / RecoveryWork) раз больше данных, которые изменяются, во время контрольных точек, таким образом, когда RecoveryWork = 60, необходимо написать приблизительно 1 + (1/0.6) = 2.67 раза больше. Другими словами, если изменения пишутся на уровне 10 мегабайтов в секунду, контрольная точка должна быть написана на уровне примерно 26.7 мегабайтов в секунду.

    RecoveryWork = 40 значит, что только 1.4 раза полного размера LCP необходимо (и таким образом фаза восстановления занимает на 10-15% меньше времени). В этом случае запись контрольной точки примерно в 3.5 раза больше уровня изменения.

    Исходный дистрибутив NDB включает тестовую программу для моделирования LCP. lcp_simulator.cc может быть найдена в storage/ndb/src/kernel/blocks/backup/. Чтобы собрать и управлять ею на платформах Unix, выполните команды, показанные здесь:

    shell> gcc lcp_simulator.cc
    shell> ./a.out
    

    У этой программы нет зависимостей, кроме stdio.h, и она не требует связи с кластером NDB или сервером MySQL. По умолчанию это моделирует 300 LCP (три набора по 100 LCP каждый, состоящие в свою очередь из вставок, обновлений и удалений), сообщая о размере LCP после каждого. Можно изменить моделирование, изменив значения recovery_work, insert_work и delete_work в исходном тексте. Для получения дополнительной информации посмотрите исходный текст программы.

  • InsertRecoveryWork

    Таблица 5.64. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации узла данных InsertRecoveryWork

    Свойство Значение
    Версия (или позже) NDB 7.6.5
    Тип или единица измерения integer
    Умолчание 40
    Диапазон 0 - 70
    Тип перезапуска N

    Процент RecoveryWork, используемый для вставленных строк. Более высокое значение увеличивает число записей во время местной контрольной точки и уменьшает полный размер LCP. Низкое значение сокращает число записей во время LCP, но приводит к большему количеству места, используемого для LCP, что означает, что восстановление занимает больше времени. Этот параметр имеет эффект только когда EnablePartialLcp = true, то есть, только когда частичные местные контрольные точки позволены.

  • EnableRedoControl

    Таблица 5.65. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации узла данных EnableRedoControl

    Свойство Значение
    Версия (или позже) NDB 7.6.7
    Тип или единица измерения boolean
    Умолчание false
    Диапазон ...
    Тип перезапуска N

    Позвольте адаптивную скорость для управления использованием журнала отката. Установите в false, чтобы отключить (умолчание). Установка EnablePartialLcp = false также отключает адаптивное вычисление.

    Когда позволено, EnableRedoControl позволяет узлам данных большую гибкость относительно уровня, по которому они пишут LCP на диск. Более определенно предоставление возможности этого параметра означает, что большой уровень записи может использоваться, чтобы LCP могли закончиться, и журналы отката были урезаны быстрее, таким образом уменьшив время восстановления и требования к пространству на диске. Эта функциональность позволяет узлам данных лучше использовать более высокий уровень I/O и большую пропускную способность, доступную от современных твердотельных устройств хранения данных и протоколов, таких как SSD и использование Non-Volatile Memory Express (NVMe).

    Параметр в настоящее время по умолчанию false (выключен) вследствие того, что NDB все еще развернут широко на системах, I/O которых или пропускная способность ограничиваются относительно тех, которые используют твердотельную технологию. В параметрах настройки таких устройств механизм EnableRedoControl может легко перегрузить подсистему I/O, увеличив время ожидания для ввода и вывода узла данных. В частности это может вызвать проблемы с таблицами NDB Disk Data, у которых есть табличные пространства или группы файла журнала, делящие ограниченную подсистему IO с файлами журнала отката и LCP, такие проблемы потенциально включают неудачу узла из-за ошибок остановки GCP.

Объекты метаданных. Следующий набор параметров [ndbd] определяет размеры пула для объектов метаданных, используемых, чтобы определить максимальное количество признаков, таблиц, индексов и объектов, используемых индексами, событиями и репликацией.

Они действуют просто как предложения кластеру, те, которые не определяются, возвращаются к показанным значениям по умолчанию.

  • MaxNoOfAttributes

    Таблица 5.66. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации узла данных MaxNoOfAttributes

    Свойство Значение
    Версия (или позже) NDB 7.5.0
    Тип или единица измерения integer
    Умолчание 1000
    Диапазон 32 - 4294967039 (0xFFFFFEFF)
    Тип перезапуска N

    Этот параметр определяет предложенное максимальное число признаков, которые могут быть определены в кластере, как MaxNoOfTables, это не предназначается, чтобы функционировать как жесткий верхний предел.

    В более старых выпусках NDB Cluster этот параметр иногда рассматривали как жесткий предел для определенных операций. Это вызвало проблемы с NDB Cluster Replication, когда было возможно составить больше таблиц, чем могло копироваться, и иногда вело к беспорядку, когда было возможно создать больше, чем MaxNoOfAttributes атрибутов.

    Значение по умолчанию 1000 с минимально возможным значением 32. Максимум 4294967039. Каждый признак потребляет приблизительно 200 байтов хранения на узел вследствие того, что все метаданные полностью копируются на серверах.

    Устанавливая MaxNoOfAttributes, важно подготовиться заранее к любому запросу ALTER TABLE, который вы могли бы хотеть сделать в будущем. Это происходит из-за того, во время выполнения ALTER TABLE на таблице Cluster используется утроенное количество признаков, как в оригинальной таблице, хорошая практика должна разрешить дважды эту сумму. Например, если таблица NDB Cluster, имеющая самое большое количество признаков (greatest_number_of_attributes) имеет 100 признаков, то хорошая отправная точка для значения MaxNoOfAttributes это 6 * greatest_number_of_attributes = 600.

    Необходимо также оценить среднее количество признаков на таблицу и умножить это на MaxNoOfTables. Если это значение больше, чем значение, полученное в предыдущем параграфе, необходимо использовать большее значение.

    Предположив, что можно составить все желаемые таблицы без любых проблем, необходимо также проверить, что это число достаточно, пробуя фактический ALTER TABLE после формирования параметра. Если это не успешно, увеличьте MaxNoOfAttributes на число, кратное MaxNoOfTables и попробуйте снова.

  • MaxNoOfTables

    Таблица 5.67. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации узла данных MaxNoOfTables

    Свойство Значение
    Версия (или позже) NDB 7.5.0
    Тип или единица измерения integer
    Умолчание 128
    Диапазон 8 - 20320
    Тип перезапуска N

    Объект таблицы ассигнуется для каждой таблицы и для каждого уникального хэш-индекса в кластере. Этот параметр определяет предложенный максимальное число объектов таблицы для кластера в целом, как MaxNoOfAttributes, это не предназначается, чтобы функционировать как строгий верхний предел.

    В более старых выпусках NDB Cluster этот параметр иногда рассматривали как жесткий предел для определенных операций. Это вызвало проблемы с NDB Cluster Replication.

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

    Значение по умолчанию этого параметра 128. Минимум 8, максимум 20320. Каждый объект таблицы потребляет приблизительно 20 КБ на узел.

    Сумма MaxNoOfTables, MaxNoOfOrderedIndexes и MaxNoOfUniqueHashIndexes не должна превышать 232-2 (4294967294).

  • MaxNoOfOrderedIndexes

    Таблица 5.68. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации узла данных MaxNoOfOrderedIndexes

    Свойство Значение
    Версия (или позже) NDB 7.5.0
    Тип или единица измерения integer
    Умолчание 128
    Диапазон 0 - 4294967039 (0xFFFFFEFF)
    Тип перезапуска N

    Для каждого отсортированного индекса в группе объект ассигнуется, описывая то, что вносится в указатель и его сегменты хранения. По умолчанию каждый определенный так индекс также определяет отсортированный индекс. У каждого уникального индекса и первичного ключа есть отсортированный индекс и хэш-индекс. MaxNoOfOrderedIndexes определяет общее число упорядоченных индексов, которые могут использоваться в системе в любой момент.

    Значение по умолчанию этого параметра равняется 128. Каждый индексный объект потребляет приблизительно 10 КБ данных на узел.

    Сумма MaxNoOfTables, MaxNoOfOrderedIndexes и MaxNoOfUniqueHashIndexes не может превышать 232-2 (4294967294).

  • MaxNoOfUniqueHashIndexes

    Таблица 5.69. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации узла данных MaxNoOfUniqueHashIndexes

    Свойство Значение
    Версия (или позже) NDB 7.5.0
    Тип или единица измерения integer
    Умолчание 64
    Диапазон 0 - 4294967039 (0xFFFFFEFF)
    Тип перезапуска N

    Для каждого уникального индекса, который не является первичным ключом, специальная таблица ассигнуется, которая отображает уникальный ключ к первичному ключу индексируемой таблицы. По умолчанию отсортированный индекс также определяется для каждого уникального индекса. Чтобы предотвратить это, необходимо определить опцию USING HASH, определяя уникальный индекс.

    Значение по умолчанию равняется 64. Каждый индекс потребляет приблизительно 15 КБ на узел.

    Сумма MaxNoOfTables, MaxNoOfOrderedIndexes и MaxNoOfUniqueHashIndexes не можжет превышать 232-2 (4294967294).

  • MaxNoOfTriggers

    Таблица 5.70. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации узла данных MaxNoOfTriggers

    Свойство Значение
    Версия (или позже) NDB 7.5.0
    Тип или единица измерения integer
    Умолчание 768
    Диапазон 0 - 4294967039 (0xFFFFFEFF)
    Тип перезапуска N

    Триггеры внутреннего обновления, вставки и удаления ассигнуются для каждого уникального хэш-индекса. Это означает, что три триггера создаются для каждого уникального хэш-индекса. Однако, отсортированный индекс требует только единственного объекта триггера. Резервные копии также используют три объекта триггера для каждой нормальной таблицы в кластере.

    Репликация между кластерами также использует внутренние триггеры.

    Этот параметр определяет максимальное число объектов триггеров в кластере.

    Значение по умолчанию 768.

  • MaxNoOfSubscriptions

    Таблица 5.71. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации узла данных MaxNoOfSubscriptions

    Свойство Значение
    Версия (или позже) NDB 7.5.0
    Тип или единица измерения unsigned
    Умолчание 0
    Диапазон 0 - 4294967039 (0xFFFFFEFF)
    Тип перезапуска N

    Каждая таблица NDB требует подписки в ядре NDB. Для некоторых приложений API NDB может быть необходимо или желательно изменить этот параметр. Однако, для нормального использования с серверами MySQL, действующими как узлы SQL, нет никакой потребности это делать.

    Значение по умолчанию MaxNoOfSubscriptions = 0, что рассматривают как равное MaxNoOfTables. Каждая подписка потребляет 108 байтов.

  • MaxNoOfSubscribers

    Таблица 5.72. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации узла данных MaxNoOfSubscribers

    Свойство Значение
    Версия (или позже) NDB 7.5.0
    Тип или единица измерения unsigned
    Умолчание 0
    Диапазон 0 - 4294967039 (0xFFFFFEFF)
    Тип перезапуска N

    Этот параметр представляет интерес только используя NDB Cluster Replication. Значение по умолчанию 0, что рассматривают как 2 * MaxNoOfTables, то есть, есть одна подписка на таблицу NDB для каждого из двух серверов MySQL (один действует как владелец репликации, другой как ведомый). Каждый подписчик использует 16 байтов памяти.

    Используя кольцевую репликацию, репликацию с мультиисточником и другие установки репликации, включающие больше 2 серверов MySQL, необходимо увеличить этот параметр до количества процессов mysqld, включенных в репликацию (это часто, но не всегда, то же самое, что количество кластеров). Например, если у вас есть кольцевая установка репликации, используя три кластера NDB Cluster с одним mysqld, присоединенным к каждому кластеру, и каждый из этих процессов mysqld работает как ведущий и как ведомый, необходимо установить MaxNoOfSubscribers = 3*MaxNoOfTables.

    Для получения дополнительной информации см. главу 8.

  • MaxNoOfConcurrentSubOperations

    Таблица 5.73. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации узла данных MaxNoOfConcurrentSubOperations

    Свойство Значение
    Версия (или позже) NDB 7.5.0
    Тип или единица измерения unsigned
    Умолчание 256
    Диапазон 0 - 4294967039 (0xFFFFFEFF)
    Тип перезапуска N

    Этот параметр устанавливает потолок количества операций, которые могут быть выполнены всеми узлами API в кластере одновременно. Значение по умолчанию (256) достаточно для нормального функционирования, и возможно должно было бы быть приспособлено только в сценариях, где есть очень много узлов API с выполнением большого объема операций одновременно.

Boolean-параметры. Поведение узлов данных также затронуто рядом параметров [ndbd], берущих булевы значения. Эти параметры могут быть определены как TRUE, устанавливая их равными 1 или Y, или FALSE, устанавливая их равными 0 или N.

  • CompressedBackup

    Таблица 5.74. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации узла данных CompressedBackup

    Свойство Значение
    Версия (или позже) NDB 7.5.0
    Тип или единица измерения boolean
    Умолчание false
    Диапазон true, false
    Тип перезапуска N

    Предоставление возможности этого параметра заставляет резервные файлы быть сжатыми. Используемое сжатие эквивалентно gzip --fast и может сэкономить 50% или больше пространства, требуемого на узле данных, чтобы хранить несжатые резервные файлы. Сжатые резервные копии могут быть позволены для отдельных узлов данных или для всех узлов данных (устанавливая этот параметр в разделе [ndbd default] файла config.ini).

    Вы не можете вернуть сжатую резервную копию в кластер с версией MySQL, которая не поддерживает эту функцию.

    Значение по умолчанию 0 (выключено).

  • CompressedLCP

    Таблица 5.75. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации узла данных CompressedLCP

    Свойство Значение
    Версия (или позже) NDB 7.5.0
    Тип или единица измерения boolean
    Умолчание false
    Диапазон true, false
    Тип перезапуска N

    Установка этого параметра в 1 включает местные файлы контрольной точки, которые будут сжаты. Используемое сжатие эквивалентно gzip --fast и экономит 50% или больше пространства, требуемого на узле данных, чтобы сохранить несжатые файлы контрольной точки. Сжатый LCP может быть позволен для отдельных узлов данных или для всех узлов данных (устанавливая этот параметр в разделе [ndbd default] файла config.ini).

    Вы не можете вернуть сжатую местную контрольную точку кластеру с версией MySQL, которая не поддерживает эту функцию.

    Значение по умолчанию 0 (выключено).

  • CrashOnCorruptedTuple

    Таблица 5.76. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации узла данных CrashOnCorruptedTuple

    Свойство Значение
    Версия (или позже) NDB 7.5.0
    Тип или единица измерения boolean
    Умолчание true
    Диапазон true, false
    Тип перезапуска S

    Когда этот параметр позволен, он вынуждает узел данных закрыться каждый раз, когда он сталкивается с испорченным кортежем. В NDB 7.5 это позволено по умолчанию.

  • Diskless

    Таблица 5.77. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации узла данных Diskless

    Свойство Значение
    Версия (или позже) NDB 7.5.0
    Тип или единица измерения true|false (1|0)
    Умолчание false
    Диапазон true, false
    Тип перезапуска IS

    Возможно определить таблицы NDB Cluster как diskless, то есть эти таблицы не создают контрольные точки на диске, и никакой регистрации не происходит. Такие таблицы существуют только в оперативной памяти. Последствие использования бездисковых таблиц: ни таблицы, ни отчеты в тех таблицах не переживают катастрофу. Однако, работая в бездисковом способе, возможно использовать ndbd на бездисковом компьютере.

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

    Когда эта опция активирована, резервная копия онлайн отключена. Кроме того, частичный запуск кластера невыполним.

    Diskless отключен по умолчанию.

  • LateAlloc

    Таблица 5.78. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации узла данных LateAlloc

    Свойство Значение
    Версия (или позже) NDB 7.5.0
    Тип или единица измерения numeric
    Умолчание 1
    Диапазон 0 - 1
    Тип перезапуска N

    Ассигнуйте память для этого узла данных после того, как связь с сервером управления будет установлена. Включено по умолчанию.

  • LockPagesInMainMemory

    Таблица 5.79. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации узла данных LockPagesInMainMemory

    Свойство Значение
    Версия (или позже) NDB 7.5.0
    Тип или единица измерения numeric
    Умолчание 0
    Диапазон 0 - 2
    Тип перезапуска N

    Для многих операционных систем, включая Solaris и Linux, возможно захватить процесс в память и тем самым избежать любого свопа. Это может использоваться, чтобы помочь гарантировать особенности кластера в реальном времени.

    Этот параметр берет одно из целочисленных значений 0, 1 или 2:

    • 0: Отключает захват. Это значение по умолчанию.

    • 1: Ставит блокировку после распределения памяти для процесса.

    • 2: Ставит блокировку прежде, чем память для процесса будет ассигнована.

    Если операционная система не формируется, чтобы разрешить непривилегированным пользователям захватывать страницы, то процесс узла данных, использующий этот параметр, вероятно, придется выполнить как root. ( LockPagesInMainMemory испольует функцию mlockall. С Linux 2.6.9 непривилегированные пользователи могут захватить память как ограничено max locked memory. Для получения дополнительной информации см. ulimit -l и http://linux.die.net/man/2/mlock).

    В более старых выпусках NDB Cluster этот параметр имел тип Boolean. 0 или false был настройкой по умолчанию и отключал захват. 1 или true позволял захват процесса после выделения его памяти. NDB Cluster 7.5 понимает true или false для значения этого параметра как ошибку.

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

    Логика glibc может быть конфигурируемым через переменную окружения MALLOC_ARENA_MAX, но ошибка в этом механизме до glibc 2.16 означала, что эта переменная не могла быть установлена меньше, чем в 8, так что потраченная впустую память не могла быть восстановлена (Bug #15907219, см. также http://sourceware.org/bugzilla/show_bug.cgi?id=13137).

    Один возможный обход для этой проблемы это использовать переменную окружения LD_PRELOAD, чтобы предварительно загрузить библиотеку выделения памяти jemalloc вместо поставляемой с glibc.

  • ODirect

    Таблица 5.80. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации узла данных ODirect

    Свойство Значение
    Версия (или позже) NDB 7.5.0
    Тип или единица измерения boolean
    Умолчание false
    Диапазон true, false
    Тип перезапуска N

    Предоставление возможности этого параметра предписывает NDB делать попытку использования O_DIRECT для записи LCP, резервных копий и журналов отката, снижая нагрузку на kswapd и CPU. Используя NDB Cluster в Linux, включите ODirect, если вы используете 2.6 или более позднее ядро.

    ODirect отключен по умолчанию.

  • ODirectSyncFlag

    Таблица 5.81. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации узла данных ODirectSyncFlag

    Свойство Значение
    Версия (или позже) NDB 7.6.4
    Тип или единица измерения boolean
    Умолчание false
    Диапазон true, false
    Тип перезапуска N

    Когда этот параметр позволен, записи журнала отката выполняются таким образом, что каждая законченная запись обработана как вызов fsync. Значение для этого параметра проигнорировано, если по крайней мере одно из следующих условий верно:

    • ODirect выключено.

    • InitFragmentLogFiles = SPARSE.

    Отключено по умолчанию.

  • RestartOnErrorInsert

    Таблица 5.82. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации узла данных RestartOnErrorInsert

    Свойство Значение
    Версия (или позже) NDB 7.5.0
    Тип или единица измерения error code
    Умолчание 2
    Диапазон 0 - 4
    Тип перезапуска N

    Эта особенность доступна только собирая отладочную версию, где возможно вставить ошибки в выполнение отдельных блоков кода как часть тестирования.

    Эта опция отключена по умолчанию.

  • StopOnError

    Таблица 5.83. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации узла данных StopOnError

    Свойство Значение
    Версия (или позже) NDB 7.5.0
    Тип или единица измерения boolean
    Умолчание 1
    Диапазон 0, 1
    Тип перезапуска N

    Этот параметр определяет, должен ли процесс узла данных выполнить автоматический перезапуск, когда сталкивается с состоянием ошибки.

    Значение по умолчанию этого параметра равняется 1, это означает, что по умолчанию ошибка заставляет процесс узла данных останавливаться.

    Когда с ошибкой сталкиваются и StopOnError = 0, процесс узла данных перезапущен.

    До NDB Cluster 7.5.5 если процесс узла данных завершался неконтролируемо (например, выполнением kill -9 на процессе узла данных, выполняя запрос, или из-за segmentation fault), и StopOnError = 0, процесс ангела пытается перезапустить его точно таким же образом, как это было начато ранее то есть, используя те же самые опции запуска, которые использовались в прошлый раз, когда узел был запущен. Таким образом, если процесс узла данных был первоначально запущен, используя --initial , это также будет перезапущено с --initial. Это означает в таких случаях, что если неудача происходит на достаточном числе узлов данных в очень коротком интервале, эффект совпадает с тем, как если бы вы выполнили начальный перезапуск кластера, приводя к потере всех данных. Этот запрос решен в NDB Cluster 7.5.5 (Bug #83510, Bug #24945638).

    Пользователи MySQL Cluster Manager должны отметить что, когда StopOnError = 1, это препятствует тому, чтобы агент MySQL Cluster Manager перезапустил любые узлы данных после того, как это выполнило свой собственный перезапуск и восстановление. Посмотрите Starting and Stopping the Agent on Linux.

  • UseShm

    Таблица 5.84. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации узла данных UseShm

    Свойство Значение
    Версия (или позже) NDB 7.6.6
    Тип или единица измерения boolean
    Умолчание false
    Диапазон true, false
    Тип перезапуска S

    Используйте сопряжения с общей памятью между этим узлом данных и узлом API, также работающим на этом хосте. Установите в 1, чтобы позволить.

    См. раздел 5.3.12.

Управляя перерывами, интервалами и дисковым оповещением

Есть много параметров [ndbd], определяющих перерывы и интервалы между различными действиями в узлах данных. Большинство значений перерыва определяется в миллисекундах. Любые исключения упоминаются, когда это применимо.

  • TimeBetweenWatchDogCheck

    Таблица 5.85. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации узла данных TimeBetweenWatchDogCheck

    Свойство Значение
    Версия (или позже) NDB 7.5.0
    Тип или единица измерения Миллисекунды
    Умолчание 6000
    Диапазон 70 - 4294967039 (0xFFFFFEFF)
    Тип перезапуска N

    Чтобы препятствовать тому, чтобы главный поток застрял в бесконечном цикле в какой-то момент, поток watchdog проверяет главный поток. Этот параметр определяет количество миллисекунд между проверками. Если процесс остается в том же самом статусе после трех проверок, watchdog закончит его.

    Этот параметр может легко быть изменен для целей экспериментирования или приспосабливаться к местным условиям. Это может быть определено на основе узла хотя, кажется, есть мало причин того, чтобы сделать так.

    Перерыв по умолчанию 6000 миллисекунд (6 секунд).

  • TimeBetweenWatchDogCheckInitial

    Таблица 5.86. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации узла данных TimeBetweenWatchDogCheckInitial

    Свойство Значение
    Версия (или позже) NDB 7.5.0
    Тип или единица измерения Миллисекунды
    Умолчание 6000
    Диапазон 70 - 4294967039 (0xFFFFFEFF)
    Тип перезапуска N

    Это подобно TimeBetweenWatchDogCheck за исключением того, что TimeBetweenWatchDogCheckInitial управляет количеством времени, которое проходит между проверками выполнения в узле хранения в фазах раннего начала во время которых ассигнуется память.

    Перерыв по умолчанию 6000 миллисекунд (6 секунд).

  • StartPartialTimeout

    Таблица 5.87. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации узла данных StartPartialTimeout

    Свойство Значение
    Версия (или позже) NDB 7.5.0
    Тип или единица измерения Миллисекунды
    Умолчание 30000
    Диапазон 0 - 4294967039 (0xFFFFFEFF)
    Тип перезапуска N

    Этот параметр определяет, сколько времени кластер ждет все узлы данных прежде, чем установленный порядок инициализации будет вызван. Этот перерыв используется, чтобы избежать частичного запуска кластера, когда это возможно.

    Этот параметр отвергнут, выполняя начальный перезапуск.

    Значение по умолчанию 30000 миллисекунд (30 секунд). 0 отключает перерыв, в этом случае кластер стартует только если все узлы доступны.

  • StartPartitionedTimeout

    Таблица 5.88. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации узла данных StartPartitionedTimeout

    Свойство Значение
    Версия (или позже) NDB 7.5.0
    Тип или единица измерения Миллисекунды
    Умолчание 60000
    Диапазон 0 - 4294967039 (0xFFFFFEFF)
    Тип перезапуска N

    Если кластер готов к запуску после ожидания StartPartialTimeout миллисекунд, но все еще возможно находится в разделенном статусе, он ждет, пока этот перерыв также не пройдет. Если StartPartitionedTimeout = 0, кластер ждет неопределенно долго.

    Этот параметр отвергнут, выполняя начальный перезапуск.

    Перерыв по умолчанию 60000 миллисекунд (60 секунд).

  • StartFailureTimeout

    Таблица 5.89. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации узла данных StartFailureTimeout

    Свойство Значение
    Версия (или позже) NDB 7.5.0
    Тип или единица измерения Миллисекунды
    Умолчание 0
    Диапазон 0 - 4294967039 (0xFFFFFEFF)
    Тип перезапуска N

    Если узел данных не закончил свою последовательность запуска в течение времени, определенного этим параметром, запуск узла терпит неудачу. Установка этого параметра в 0 (значение по умолчанию) означает, что никакой перерыв узла данных не применяется.

    Для ненулевых значений этот параметр измерен в миллисекундах. Для узлов данных, содержащих чрезвычайно большие объемы данных, этот параметр должен быть увеличен. Например, в случае узла данных, содержащего несколько гигабайтов данных, период ожидания около 10-15 минут (600000 - 1000000 миллисекунд) может потребоваться, чтобы выполнить перезапуск узла.

  • StartNoNodeGroupTimeout

    Таблица 5.90. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации узла данных StartNoNodeGroupTimeout

    Свойство Значение
    Версия (или позже) NDB 7.5.0
    Тип или единица измерения Миллисекунды
    Умолчание 15000
    Диапазон 0 - 4294967039 (0xFFFFFEFF)
    Тип перезапуска N

    Когда узел данных формируется с Nodegroup = 65536, он расценивается как не назначаемый ни на какую группу узлов. Когда это сделано, кластер ждет StartNoNodegroupTimeout миллисекунд, затем рассматривает такие узлы, как будто они были добавлены к списку, переданному опции --nowait-nodes, и стартует. Значение по умолчанию 15000 (то есть, сервер управления ждет 15 секунд). Установка этого параметра в 0 значит, что кластер ждет неопределенно.

    StartNoNodegroupTimeout должно быть тем же самым для всех узлов данных в кластере, поэтому необходимо всегда устанавливать его в разделе [ndbd default] файла config.ini, а не для отдельных узлов данных.

    См. раздел 7.15.

  • HeartbeatIntervalDbDb

    Таблица 5.91. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации узла данных HeartbeatIntervalDbDb

    Свойство Значение
    Версия (или позже) NDB 7.5.0
    Тип или единица измерения Миллисекунды
    Умолчание 5000
    Диапазон 10 - 4294967039 (0xFFFFFEFF)
    Тип перезапуска N

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

    После четырех пропущенных интервалов синхронизации подряд, узел объявлен мертвым. Таким образом максимальное время для обнаружения неудачи через механизм синхронизации является пятикратным интервалом синхронизации.

    Интервал синхронизации по умолчанию 5000 миллисекунд (5 секунд). Этот параметр не должен быть сильно изменен и не должен значительно различаться в узлах. Если один узел будет использовать 5000 миллисекунд, и узел, наблюдая его использует 1000 миллисекунд, очевидно узел будет объявлен мертвым очень быстро. Этот параметр может быть изменен во время обновления программного обеспечения онлайн, но только в маленьких пределах.

    См. также здесь, а также описание параметра ConnectCheckIntervalDelay.

  • HeartbeatIntervalDbApi

    Таблица 5.92. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации узла данных HeartbeatIntervalDbApi

    Свойство Значение
    Версия (или позже) NDB 7.5.0
    Тип или единица измерения Миллисекунды
    Умолчание 1500
    Диапазон 100 - 4294967039 (0xFFFFFEFF)
    Тип перезапуска N

    Каждый узел данных посылает сигналы синхронизации в каждый сервер MySQL (узел SQL), чтобы гарантировать, что это остается в контакте. Если сервер MySQL не посылает синхроимпульс вовремя, он объявлен мертвым, в этом случае все продолжающиеся транзакции закончены, и все ресурсы высвобождены. Узел SQL не может соединиться снова, пока все действия, начатые предыдущим экземпляром MySQL, не были закончены. Критерии с тремя синхроимпульсом этого определения совпадают с описанными для HeartbeatIntervalDbDb.

    Интервал по умолчанию: 1500 миллисекунд (1.5 секунды). Этот интервал может измениться между отдельными узлами данных, потому что каждый узел данных наблюдает серверы MySQL, связанные с ним, независимо от всех других узлов данных.

    См.подробности здесь.

  • HeartbeatOrder

    Таблица 5.93. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации узла данных HeartbeatOrder

    Свойство Значение
    Версия (или позже) NDB 7.5.0
    Тип или единица измерения numeric
    Умолчание 0
    Диапазон 0 - 65535
    Тип перезапуска S

    Узлы данных посылают синхроимпульс друг другу по кольцу посредством чего каждый узел данных контролирует предыдущий. Если синхроимпульс не обнаружен определенным узлом данных, этот узел объявляет предыдущий узел данных в кольце мертвым (то есть, больше не доступным). Определение, что узел данных мертв, сделано глобально, другими словами, как только узел данных объявлен мертвым, он расценивается как таковой всеми узлами.

    Для синхронизации между узлами данных, проживающими на различных хостах, возможно быть слишком медленными по сравнению с синхроимпульсом между другими парами узлов (например, из-за очень низкого интервала синхронизации или временной проблемы связи), так что узел данных может быть объявлен мертвым даже при том, что узел может все еще функционировать.

    В этом типе ситуации может случиться так, что порядок, в котором синхроимпульс передан между узлами данных, имеет значение относительно того, объявлен ли конкретный узел данных мертвым. Если эта декларация происходит излишне, это может в свою очередь привести к ненужной утрате узла и таким образом к сбою кластера.

    Рассмотрите установку, где есть 4 узла данных A, B, C, и D на 2 хостах host1 и host2. Эти узлы данных составляют 2 группы узлов, как показано в следующей таблице:

    Таблица 5.94. Четыре узла данных A, B, C и D на двух компьютерах host1 и host2. Каждый узел данных принадлежит одной из двух групп узлов.

    Группа узлов Узлы на host1 Узлы на host2
    Группа узлов 0:Узел AУзел B
    Группа узлов 1 :Узел CУзел D

    Предположим, что синхроимпульс передан в порядке A->B->C->D->A. В этом случае потеря синхронизации между хостами заставляет узел B объявлять узел мертвым, а узел C объявить узел B мертвым. Это приводит к потере группы узлов 0 и таким образом кластер падает. С другой стороны, если порядок передачи A->B->D->C->A (и все другие условия остаются, как ранее указано), потеря синхронизации заставляет узлы A и D быть объявленными мертвыми, в этом случае у каждой группы узлов есть один выживший узел, в итоге кластер выживает.

    Параметр HeartbeatOrder делает порядок передачи синхронизации конфигурируемым пользователем. Значение по умолчанию для HeartbeatOrder = 0, значение по умолчанию на всех узлах данных заставляет порядок передачи синхронизации быть определенным NDB. Если этот параметр используется, он должен быть установлен в ненулевое значение (максимум 65535) для каждого узла данных, это значение должно быть уникальным для каждого узла данных: это заставляет передачу синхронизации продолжаться от узла данных до узла данных в порядке их значений HeartbeatOrder от самого низкого до самого высокого (а затем непосредственно от узла данных, имеющего самое высокое значение HeartbeatOrder к узлу данных, имеющему самое низкое значение, чтобы закончить круг). Значения не должны быть последовательными. Например, чтобы вызвать порядок передачи синхронизации A->B->D->C->A в сценарии, обрисованном в общих чертах ранее, вы должны установить HeartbeatOrder вот так:

    Таблица 5.95. Значения HeartbeatOrder, чтобы вызвать порядок перехода синхронизации A->B->D->C->A.

    Узел Значение HeartbeatOrder
    A10
    B20
    C30
    D25

    Чтобы использовать этот параметр, чтобы изменить порядок передачи синхронизации в управлении NDB Cluster, необходимо сначала установить HeartbeatOrder для каждого узла данных в глобальной конфигурации (файл config.ini). Чтобы заставить изменение вступить в силу, необходимо выполнить любое из следующего:

    • Полное закрытие и перезапуск всего кластера.

    • 2 катящихся перезапуска по очереди. Все узлы должны быть перезапущены в том же самом порядке в обоих катящихся перезапусках.

    Можно использовать DUMP 908, чтобы наблюдать эффект этого параметра в регистрациях узла данных.

  • ConnectCheckIntervalDelay

    Таблица 5.96. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации узла данных ConnectCheckIntervalDelay

    Свойство Значение
    Версия (или позже) NDB 7.5.0
    Тип или единица измерения Миллисекунды
    Умолчание 0
    Диапазон 0 - 4294967039 (0xFFFFFEFF)
    Тип перезапуска N

    Этот параметр позволяет проверку связи между узлами данных после того, как один из них провалил проверки синхронизации на 5 интервалов до HeartbeatIntervalDbDb миллисекунд.

    Такой узел данных, который далее не отвечает в интервале ConnectCheckIntervalDelay миллисекунд считают подозреваемым и считают мертвыми после двух таких интервалов. Это может быть полезно в установках с известными проблемами времени ожидания.

    Значение по умолчанию для этого параметра 0 (отключено).

  • TimeBetweenLocalCheckpoints

    Таблица 5.97. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации узла данных TimeBetweenLocalCheckpoints

    Свойство Значение
    Версия (или позже) NDB 7.5.0
    Тип или единица измерения Количество 4-байтовых слов как логарифм base-2
    Умолчание 20
    Диапазон 0 - 31
    Тип перезапуска N

    Этот параметр исключение: он не определяет время, чтобы ждать прежде, чем начать новую местную контрольную точку, это используется, чтобы гарантировать, что местные контрольные точки не выполняются в кластере, где относительно немного обновлений происходит. В большинстве кластеров с высокими частотами обновления вероятно, что новая местная контрольная точка немедленно начата после того, как предыдущая была закончена.

    Размер всех операций записи, выполненных начиная с начала предыдущих местных контрольных точек, добавляется. Этот параметр также исключительный в этом, он определяется как логарифм base-2 количества 4-байтовых слов, так что значение по умолчанию 20 значит 4MB (4 *220) операций записи, 21 означало бы 8 МБ и так далее до максимального значения 31, которое значит 8 ГБ операций записи.

    Все операции записи добавляются вместе. Урегулирование TimeBetweenLocalCheckpoints = 6 или меньше значит, что местные контрольные точки будут выполняться непрерывно без паузы, независимо от рабочей нагрузки.

  • TimeBetweenGlobalCheckpoints

    Таблица 5.98. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации узла данных TimeBetweenGlobalCheckpoints

    Свойство Значение
    Версия (или позже) NDB 7.5.0
    Тип или единица измерения Миллисекунды
    Умолчание 2000
    Диапазон 20 - 32000
    Тип перезапуска N

    Когда транзакция передается, она передается в оперативной памяти во всех узлах, на которых отражены данные. Однако, записи протокола транзакций не сбрасываются на диск как часть передачи. Причина этого поведения состоит в том, что наличие транзакции, безопасно переданной по крайней мере на двух автономных хост-машинах, должно соответствовать разумным стандартам для длительности.

    Также важно гарантировать, что даже худший из случаев (полная катастрофа кластера) обработан правильно. Чтобы гарантировать, что это происходит, все транзакции, происходящие в данном интервале, помещаются в глобальную контрольную точку, которая может считаться рядом переданных транзакций, который сброшен на диск. Другими словами, как часть процесса передачи транзакция помещается в глобальную группу контрольной точки. Позже записи журнала этой группы сбрасывают на диск, затем вся группа транзакций безопасно передается на диск на всех компьютерах в кластере.

    Этот параметр определяет интервал между глобальными контрольными точками. Умолчание: 2000 миллисекунд.

  • TimeBetweenGlobalCheckpointsTimeout

    Таблица 5.99. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации узла данных TimeBetweenGlobalCheckpointsTimeout

    Свойство Значение
    Версия (или позже) NDB 7.5.0
    Тип или единица измерения Миллисекунды
    Умолчание 120000
    Диапазон 10 - 4294967039 (0xFFFFFEFF)
    Тип перезапуска N

    Этот параметр определяет минимальный перерыв между глобальными контрольными точками. Умолчание: 120000 миллисекунд.

  • TimeBetweenEpochs

    Таблица 5.100. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации узла данных TimeBetweenEpochs

    Свойство Значение
    Версия (или позже) NDB 7.5.0
    Тип или единица измерения Миллисекунды
    Умолчание 100
    Диапазон 0 - 32000
    Тип перезапуска N

    Этот параметр определяет интервал между эпохами синхронизации для репликации NDB Cluster Replication. Значение по умолчанию 100 миллисекунд.

    TimeBetweenEpochs это часть внедрения micro-GCP, которое может использоваться, чтобы улучшить выполнение NDB Cluster Replication.

  • TimeBetweenEpochsTimeout

    Таблица 5.101. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации узла данных TimeBetweenEpochsTimeout

    Свойство Значение
    Версия (или позже) NDB 7.5.0
    Тип или единица измерения Миллисекунды
    Умолчание 0
    Диапазон 0 - 256000
    Тип перезапуска N

    Этот параметр определяет перерыв в течение эпох синхронизации для NDB Cluster Replication. Если узел не участвует в глобальной контрольной точке в течение времени, определенного этим параметром, узел закрывается. Значение по умолчанию 0, другими словами, перерыв отключен.

    TimeBetweenEpochsTimeout это часть внедрения micro-GCP, которое может использоваться, чтобы улучшить выполнение NDB Cluster Replication.

    Текущее значение этого параметра и предупреждения написаны в журнал кластера каждый раз, когда сохранение GCP занимает больше, чем 1 минута или передача GCP занимает больше времени, чем 10 секунд.

    Установка этого параметра в ноль имеет эффект выведения из строя остановок GCP, вызванных тайм-аутами. Максимальное возможное значение для этого параметра: 256000 миллисекунд.

  • MaxBufferedEpochs

    Таблица 5.102. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации узла данных MaxBufferedEpochs

    Свойство Значение
    Версия (или позже) NDB 7.5.0
    Тип или единица измерения Эпохи
    Умолчание 100
    Диапазон 0 - 100000
    Тип перезапуска N

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

    Значение по умолчанию 100 достаточно для наиболее нормального функционирования. Если подписывающийся узел действительно отстает достаточно, чтобы вызвать разъединение, это обычно происходит из-за сети или проблем относительно процессов или потоков. При редких обстоятельствах проблема может произойти из-за ошибки в клиенте NDB. Может быть желательно установить значение ниже, чем умолчание, когда эпохи более длительны.

    Разъединение препятствует тому, чтобы проблемы клиента затронули обслуживание узла данных, исчерпав память, чтобы буферизовать данные. Вместо этого только клиент затронут в результате разъединения (например, события промежутка в двоичном журнале), вынудив клиента повторно подключиться или перезапустить процесс.

  • MaxBufferedEpochBytes

    Таблица 5.103. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации узла данных MaxBufferedEpochBytes

    Свойство Значение
    Версия (или позже) NDB 7.5.0
    Тип или единица измерения Байты
    Умолчание 26214400
    Диапазон 26214400 (0x01900000) - 4294967039 (0xFFFFFEFF)
    Тип перезапуска N

    Общее количество байтов ассигнуется для того, чтобы буферизовать эпохи этим узлом.

  • TimeBetweenInactiveTransactionAbortCheck

    Таблица 5.104. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации узла данных TimeBetweenInactiveTransactionAbortCheck

    Свойство Значение
    Версия (или позже) NDB 7.5.0
    Тип или единица измерения Миллисекунды
    Умолчание 1000
    Диапазон 1000 - 4294967039 (0xFFFFFEFF)
    Тип перезапуска N

    Обработка перерыва выполняется, проверяя таймер на каждой транзакции однажды для каждого интервала, определенного этим параметром. Таким образом, если этот параметр будет установлен на 1000 миллисекунд, каждая транзакция будет проверена на выбор времени однажды в секунду.

    Значение по умолчанию 1000 миллисекунд (1 секунда).

  • TransactionInactiveTimeout

    Таблица 5.105. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации узла данных TransactionInactiveTimeout

    Свойство Значение
    Версия (или позже) NDB 7.5.0
    Тип или единица измерения Миллисекунды
    Умолчание [see text]
    Диапазон 0 - 4294967039 (0xFFFFFEFF)
    Тип перезапуска N

    Этот параметр указывает максимальное время, которому разрешают истечь между операциями в той же самой транзакции, прежде чем транзакция будет прервана.

    Умолчание для этого параметра 4G (также максимум). Для базы данных в реальном времени, которая должна гарантировать, что никакая транзакция не держит блокировки слишком долго, этот параметр должен быть установлен в относительно маленькое значение. Установка его в 0 выключает тайм-аут.

  • TransactionDeadlockDetectionTimeout

    Таблица 5.106. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации узла данных TransactionDeadlockDetectionTimeout

    Свойство Значение
    Версия (или позже) NDB 7.5.0
    Тип или единица измерения Миллисекунды
    Умолчание 1200
    Диапазон 50 - 4294967039 (0xFFFFFEFF)
    Тип перезапуска N

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

    Отказ ответить может произойти по любой из следующих причин:

    • Узел мертв.

    • Операция вошла в очередь блокировки.

    • Действие узла сильно перегружено.

    Этот параметр перерыва указывает, сколько времени операционный координатор ждет выполнения запросов другим узлом прежде, чем прервать транзакцию. Параметр важен для обнаружения обработки и для мертвой блокировки узла.

    Значение перерыва по умолчанию 1200 миллисекунд (1.2 секунды).

    Минимум для этого параметра 50 миллисекунд.

  • DiskSyncSize

    Таблица 5.107. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации узла данных DiskSyncSize

    Свойство Значение
    Версия (или позже) NDB 7.5.0
    Тип или единица измерения Байты
    Умолчание 4M
    Диапазон 32K - 4294967039 (0xFFFFFEFF)
    Тип перезапуска N

    Это максимальное количество байтов, чтобы сохранить перед сбросом данных к местному файлу контрольной точки. Это сделано, чтобы предотвратить буферизование записи, которое может значительно препятствовать работе. Этот параметр не предназначается, чтобы занять место TimeBetweenLocalCheckpoints.

    Когда ODirect позволен, нет необходимости установить DiskSyncSize, на самом деле в таких случаях его значение просто проигнорировано.

    Значение по умолчанию 4M (4 мегабайта).

  • MaxDiskWriteSpeed

    Таблица 5.108. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации узла данных MaxDiskWriteSpeed

    Свойство Значение
    Версия (или позже) NDB 7.5.0
    Тип или единица измерения numeric
    Умолчание 20M
    Диапазон 1M - 1024G
    Тип перезапуска S

    Установите максимальный уровень записи на диск в байтах в секунду местными контрольными точками и операциями резервного копирования, когда никакие перезапуски (этим узлом данных или любым другим узлом данных) не произойдут в этом NDB Cluster.

    Для урегулирования максимального темпа записей на диск, позволенных в то время, как этот узел данных перезапускается, следует использовать MaxDiskWriteSpeedOwnRestart. Для урегулирования максимального темпа записей на диск, позволенных в то время, как другие узлы данных перезапускаются, надо использовать MaxDiskWriteSpeedOtherNodeRestart. Минимальная скорость для записей на диск всеми LCP и операциями резервного копирования может быть отрегулирована, установив MinDiskWriteSpeed.

  • MaxDiskWriteSpeedOtherNodeRestart

    Таблица 5.109. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации узла данных MaxDiskWriteSpeedOtherNodeRestart

    Свойство Значение
    Версия (или позже) NDB 7.5.0
    Тип или единица измерения numeric
    Умолчание 50M
    Диапазон 1M - 1024G
    Тип перезапуска S

    Установите максимальный уровень записи на диск в байтах в секунду местными контрольными точками и операциями резервного копирования, когда один или несколько узлов данных в этом NDB Cluster перезапускается, кроме этого узла.

    Для урегулирования максимального темпа записей на диск, позволенных в то время, как этот узел данных перезапускается, надо использовать MaxDiskWriteSpeedOwnRestart. Для урегулирования максимального темпа записей на диск, позволенных, когда никакие узлы данных не перезапускаются нигде в кластере, надо использовать MaxDiskWriteSpeed. Минимальная скорость для записей на диск всем LCP и операциями резервного копирования может быть отрегулирована, установив MinDiskWriteSpeed.

  • MaxDiskWriteSpeedOwnRestart

    Таблица 5.110. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации узла данных MaxDiskWriteSpeedOwnRestart

    Свойство Значение
    Версия (или позже) NDB 7.5.0
    Тип или единица измерения numeric
    Умолчание 200M
    Диапазон 1M - 1024G
    Тип перезапуска S

    Установите максимальный уровень записи на диск в байтах в секунду местными контрольными точками и операциями резервного копирования в то время, как этот узел данных перезапускается.

    Для урегулирования максимального темпа записей на диск, позволенных в то время, как другие узлы данных перезапускаются, надо использовать MaxDiskWriteSpeedOtherNodeRestart. Для урегулирования максимального темпа записей на диск, позволенных, когда никакие узлы данных не перезапускаются нигде в кластере, надо использовать MaxDiskWriteSpeed. Минимальная скорость для записей на диск всем LCP и операциями резервного копирования может быть отрегулирована, установив MinDiskWriteSpeed.

  • MinDiskWriteSpeed

    Таблица 5.111. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации узла данных MinDiskWriteSpeed

    Свойство Значение
    Версия (или позже) NDB 7.5.0
    Тип или единица измерения numeric
    Умолчание 10M
    Диапазон 1M - 1024G
    Тип перезапуска S

    Установите минимальный уровень записи на диск в байтах в секунду местными контрольными точками и операциями резервного копирования.

    Максимальные темпы записей на диск, допустимые для LCP и резервных копий при различных условиях настраиваются использованием параметров MaxDiskWriteSpeed, MaxDiskWriteSpeedOwnRestart и MaxDiskWriteSpeedOtherNodeRestart. См. описания этих параметров для получения дополнительной информации.

  • ArbitrationTimeout

    Таблица 5.112. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации узла данных ArbitrationTimeout

    Свойство Значение
    Версия (или позже) NDB 7.5.0
    Тип или единица измерения Миллисекунды
    Умолчание 7500
    Диапазон 10 - 4294967039 (0xFFFFFEFF)
    Тип перезапуска N

    Этот параметр определяет, сколько времени узлы данных ждут ответа от арбитра на арбитражное сообщение. Если это превышено, сеть, как предполагается, отвалилась.

    Значение по умолчанию 7500 миллисекунд (7.5 секунд).

  • Arbitration

    Таблица 5.113. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации узла данных Arbitration

    Свойство Значение
    Версия (или позже) NDB 7.5.0
    Тип или единица измерения enumeration
    Умолчание Default
    Диапазон Default, Disabled, WaitExternal
    Тип перезапуска N

    Параметр Arbitration позволяет выбор арбитражных схем, соответствуя одному из 3 возможных значений для этого параметра:

    • Default. Это позволяет арбитражу обычно продолжать, как определено настройкой ArbitrationRank для узлов управления и API. Это значение по умолчанию.

    • Disabled. Arbitration = Disabled в разделе [ndbd default] файла config.ini выполняет ту же самую задачу, как ArbitrationRank = 0 на всех узлах управления и API. Когда Arbitration установлен таким образом, любой значение ArbitrationRank проигнорировано.

    • WaitExternal. Параметр Arbitration также позволяет формировать арбитраж таким способом, что кластер ждет до окончания времени, определенного ArbitrationTimeout, чтобы внешний менеджера приложений выполнил арбитраж вместо того, чтобы обращаться с арбитражем внутренне. Это может быть сделано, установив Arbitration = WaitExternal в разделе [ndbd default] файла config.ini. Для лучших результатов с WaitExternal рекомендуют, чтобы ArbitrationTimeout был в 2 раза длинным, чем интервал, требуемый внешним менеджером, чтобы выполнить арбитраж.

    Этот параметр должен использоваться только в разделе [ndbd default] файла кластерной конфигурации. Поведение кластера неопределенное, когда Arbitration установлен в различные значения для отдельных узлов данных.

  • RestartSubscriberConnectTimeout

    Таблица 5.114. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации узла данных RestartSubscriberConnectTimeout

    Свойство Значение
    Версия (или позже) NDB 7.5.0
    Тип или единица измерения ms
    Умолчание 12000
    Диапазон 0 - 4294967039 (0xFFFFFEFF)
    Тип перезапуска S

    Этот параметр определяет время, которое узел данных ждет подписки узлов API, чтобы соединиться. Как только этот перерыв истекает, любые недостающие узлы API отключены от кластера. Чтобы отключить этот перерыв, надо установить RestartSubscriberConnectTimeout = 0.

    В то время, как этот параметр определяется в миллисекундах, сам перерыв округлен к следующей самой большой целой секунде.

Буферизование и регистрация. Несколько параметров конфигурации [ndbd] позволяют опытному пользователю иметь больше контроля над ресурсами, используемыми процессами узла и приспособить различные буферные размеры.

Эти буфера используются в качестве фронтэндов к файловой системе при записи журнала на диск. Если узел работает в бездисковом режиме, эти параметры могут быть установлены в их минимальные значения без штрафа вследствие того, что записи на диск фальсифицируются уровнем абстракции файловой системы механизма NDB.

  • UndoIndexBuffer

    Таблица 5.115. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации узла данных UndoIndexBuffer

    Свойство Значение
    Версия (или позже) NDB 7.5.0
    Тип или единица измерения unsigned
    Умолчание 2M
    Диапазон 1M - 4294967039 (0xFFFFFEFF)
    Тип перезапуска N

    Индексный буфер UNDO, размер которого установлен этим параметром, используется во время местных контрольных точек. NDB использует схему восстановления на основе последовательности контрольной точки вместе с эксплуатационным журналом отката. Чтобы произвести последовательную контрольную точку, не блокируя всю систему для записи, регистрация UNDO сделана, выполняя местную контрольную точку. Регистрация UNDO активируется на единственном фрагменте таблицы за один раз. Эта оптимизация возможна, потому что таблицы сохранены полностью в оперативной памяти.

    Индексный буфер UNDO используется для обновлений хэш-индекса первичного ключа. Вставки и удаления перестраивают хэш-индекс, механизм хранения NDB пишет записи журнала UNDO, которые отображают все физические изменения индексной страницы так, чтобы они могли быть отменены при системном перезапуске. Это также регистрирует все активные операции по вставке для каждого фрагмента в начале местной контрольной точки.

    Чтения и обновления ставят биты блокировки и обновляют заголовок в элементе хэш-индекса. Эти изменения обработаны пишущим страницу алгоритмом, чтобы гарантировать, чтобы для этих операций не была нужна никакая регистрация UNDO.

    Этот буфер составляет 2 МБ по умолчанию. Минимальное значение составляет 1 МБ, который достаточен для большинства запросов. Для запросов, делающих чрезвычайно большие или многочисленные вставки и удаления вместе с большими транзакциями и большими первичными ключами, может быть необходимо увеличить размер этого буфера. Если этот буфер слишком маленький, механизм хранения NDB выпускает внутренний код ошибки 677 (Index UNDO buffers overloaded).

    Небезопасно уменьшать значение этого параметра во время катящегося перезапуска.

  • UndoDataBuffer

    Таблица 5.116. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации узла данных UndoDataBuffer

    Свойство Значение
    Версия (или позже) NDB 7.5.0
    Тип или единица измерения unsigned
    Умолчание 16M
    Диапазон 1M - 4294967039 (0xFFFFFEFF)
    Тип перезапуска N

    Этот параметр устанавливает размер буфера данных UNDO, который выполняет функцию, подобную функции из индексного буфера UNDO, кроме того, что буфер данных UNDO используется относительно памяти индекса, а не памяти данных. Этот буфер используется во время местной фазы контрольной точки фрагмента для вставок, удалений и обновления.

    Поскольку записи в журнале UNDO имеют тенденцию расти, поскольку больше операций зарегистрировано, этот буфер также более крупный, чем его коллега памяти индекса со значением по умолчанию 16 МБ.

    Этот объем памяти может быть излишне большим для некоторых запросов. В таких случаях возможно уменьшить этот размер к минимуму 1 МБ.

    Редко необходимо увеличить размер этого буфера. Если есть такая потребность, хорошая идея проверить, могут ли диски на самом деле обращаться с нагрузкой, вызванной деятельностью обновления базы данных. Отсутствие достаточного дискового пространства не может быть преодолено, увеличив размер этого буфера.

    Если этот буфер слишком маленький и переполнен, механизм хранения NDB выпускает внутренний код ошибки 891 (Data UNDO buffers overloaded).

    Небезопасно уменьшать значение этого параметра во время катящегося перезапуска.

  • RedoBuffer

    Таблица 5.117. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации узла данных RedoBuffer

    Свойство Значение
    Версия (или позже) NDB 7.5.0
    Тип или единица измерения Байты
    Умолчание 32M
    Диапазон 1M - 4294967039 (0xFFFFFEFF)
    Тип перезапуска N

    Все действия обновления также должны быть зарегистрированы. Журнал отката позволяет переиграть эти обновления каждый раз, когда система перезапущена. Алгоритм восстановления NDB использует нечеткую контрольную точку данных вместе с регистрацией UNDO, и затем применяет журнал отката, чтобы воспроизвести все изменения до пункта восстановления.

    RedoBuffer устанавливает размер буфера, в котором написан журнал отката. Значение по умолчанию составляет 32 МБ, минимальное значение составляет 1 МБ.

    Если этот буфер слишком маленький, NDB выпускает код ошибки 1221 (REDO log buffers overloaded). Поэтому необходимо соблюдать осторожность при попытке уменьшить значение RedoBuffer как часть изменения онлайн в конфигурации кластера.

    ndbmtd ассигнует отдельный буфер для каждого потока LDM (см. ThreadConfig). Например, с 4 потоками LDM узел данных ndbmtd на самом деле имеет 4 буфера и ассигнует RedoBuffer байт каждому, в общей сложности 4 * RedoBuffer байт.

  • EventLogBufferSize

    Таблица 5.118. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации узла данных EventLogBufferSize

    Свойство Значение
    Версия (или позже) NDB 7.5.0
    Тип или единица измерения Байты
    Умолчание 8192
    Диапазон 0 - 64K
    Тип перезапуска S

    Управляет размером кольцевого буфера, используемого для регистрации событий NDB в узлах данных.

Управление сообщениями регистрации. В управлении кластером очень важно быть в состоянии управлять количеством сообщений регистрации и следить за различными типами событий, пишущих сообщения в stdout. Для каждой категории событий есть 16 возможных уровней события (от 0 до 15). Установка для данной категории событий уровня 15 означает, что все отчеты о событиях в этой категории посылают на stdout, установка в 0 значит, что не будет никаких отчетов событий, сделанных в той категории.

По умолчанию только сообщение запуска посылают в stdout, с остающимися событиями по умолчанию с уровнями, устанавливаемыми в 0. Причина этого состоит в том, что эти сообщения также посылают в регистрацию сервера управления кластером.

Аналогичная настройка уровней может использоваться клиентом управления, чтобы определить, какие уровни событий делают запись в журнале кластера.

  • LogLevelStartup

    Таблица 5.119. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации узла данных LogLevelStartup

    Свойство Значение
    Версия (или позже) NDB 7.5.0
    Тип или единица измерения integer
    Умолчание 1
    Диапазон 0 - 15
    Тип перезапуска N

    Уровень сообщения для событий во время процесса запуска.

    Уровень по умолчанию 1.

  • LogLevelShutdown

    Таблица 5.120. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации узла данных LogLevelShutdown

    Свойство Значение
    Версия (или позже) NDB 7.5.0
    Тип или единица измерения integer
    Умолчание 0
    Диапазон 0 - 15
    Тип перезапуска N

    Уровень сообщения для событий, произведенных как часть закрытия узла.

    Уровень по умолчанию 0.

  • LogLevelStatistic

    Таблица 5.121. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации узла данных LogLevelStatistic

    Свойство Значение
    Версия (или позже) NDB 7.5.0
    Тип или единица измерения integer
    Умолчание 0
    Диапазон 0 - 15
    Тип перезапуска N

    Уровень сообщения для статистических событий, таких как количество чтений первичного ключа, количество обновлений, количество вставок, информация, имеющая отношение к буферному использованию и т.д.

    Уровень по умолчанию 0.

  • LogLevelCheckpoint

    Таблица 5.122. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации узла данных LogLevelCheckpoint

    Свойство Значение
    Версия (или позже) NDB 7.5.0
    Тип или единица измерения log level
    Умолчание 0
    Диапазон 0 - 15
    Тип перезапуска N

    Уровень сообщения для событий, произведенных местными и глобальными контрольными точками.

    Уровень по умолчанию 0.

  • LogLevelNodeRestart

    Таблица 5.123. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации узла данных LogLevelNodeRestart

    Свойство Значение
    Версия (или позже) NDB 7.5.0
    Тип или единица измерения integer
    Умолчание 0
    Диапазон 0 - 15
    Тип перезапуска N

    Уровень сообщения для событий, произведенных во время перезапуска узла.

    Уровень по умолчанию 0.

  • LogLevelConnection

    Таблица 5.124. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации узла данных LogLevelConnection

    Свойство Значение
    Версия (или позже) NDB 7.5.0
    Тип или единица измерения integer
    Умолчание 0
    Диапазон 0 - 15
    Тип перезапуска N

    Уровень сообщения для событий, произведенных связями между узлами.

    Уровень по умолчанию 0.

  • LogLevelError

    Таблица 5.125. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации узла данных LogLevelError

    Свойство Значение
    Версия (или позже) NDB 7.5.0
    Тип или единица измерения integer
    Умолчание 0
    Диапазон 0 - 15
    Тип перезапуска N

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

    Уровень по умолчанию 0.

  • LogLevelCongestion

    Таблица 5.126. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации узла данных LogLevelCongestion

    Свойство Значение
    Версия (или позже) NDB 7.5.0
    Тип или единица измерения level
    Умолчание 0
    Диапазон 0 - 15
    Тип перезапуска N

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

    Уровень по умолчанию 0.

  • LogLevelInfo

    Таблица 5.127. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации узла данных LogLevelInfo

    Свойство Значение
    Версия (или позже) NDB 7.5.0
    Тип или единица измерения integer
    Умолчание 0
    Диапазон 0 - 15
    Тип перезапуска N

    Уровень сообщения для событий, произведенных для получения информации об общем состоянии кластера.

    Уровень по умолчанию 0.

  • MemReportFrequency

    Таблица 5.128. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации узла данных MemReportFrequency

    Свойство Значение
    Версия (или позже) NDB 7.5.0
    Тип или единица измерения unsigned
    Умолчание 0
    Диапазон 0 - 4294967039 (0xFFFFFEFF)
    Тип перезапуска N

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

    Каждое использование памяти данных узла данных и памяти индекса зарегистрированы как процент и как много страниц по 32 КБ DataMemory и (NDB 7.5 и ранее) IndexMemory, соответственно, заданных в файле config.ini. Например, если DataMemory = 100 MB, а узел определенных данных использует 50 МБ памяти данных для хранения, соответствующая строка в журнале могла бы быть похожей на это:

    2006-12-24 01:18:16 [MgmSrvr] INFO -- Node 2: Data usage is 50%(1280 32K pages of total 2560)
    

    MemReportFrequency не обязательный параметр. Если используется, это может быть установлено для всех узлов данных в разделе [ndbd default] файла config.ini и может также быть установлено или отвергнуто для отдельных узлов данных в соответствующем разделе [ndbd] конфигурационного файла. Минимальное значение, которое является также значением по умолчанию, 0, в этом случае отчеты использования памяти зарегистрированы только, когда использование памяти достигает определенных процентов (80%, 90% и 100%), как упомянуто в обсуждении событий статистики в разделе 7.6.2.

  • StartupStatusReportFrequency

    Таблица 5.129. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации узла данных StartupStatusReportFrequency

    Свойство Значение
    Версия (или позже) NDB 7.5.0
    Тип или единица измерения Секунды
    Умолчание 0
    Диапазон 0 - 4294967039 (0xFFFFFEFF)
    Тип перезапуска N

    Когда узел данных запущен с --initial, это инициализирует файл журнала отката во время фазы 4 запуска (см. раздел 7.1). Когда очень большие значения установлены для NoOfFragmentLogFiles, FragmentLogFileSize или обоих, эта инициализация может занять много времени. Можно вынудить отчеты о прогрессе этого процесса периодически регистрироваться посредством StartupStatusReportFrequency. В этом случае о прогрессе сообщают в журнале кластера с точки зрения количества файлов и с точки зрения суммы места, которое было инициализировано, как показано здесь:

    2009-06-20 16:39:23 [MgmSrvr] INFO -- Node 1: Local redo log file initialization status:
    #Total files: 80, Completed: 60
    #Total MBytes: 20480, Completed: 15557
    2009-06-20 16:39:23 [MgmSrvr] INFO -- Node 2: Local redo log file initialization status:
    #Total files: 80, Completed: 60
    #Total MBytes: 20480, Completed: 15570
    

    Эти отчеты зарегистрированы каждые StartupStatusReportFrequency секунд во время фазы 4 запуска. Если StartupStatusReportFrequency = 0 (умолчание), тогда сообщения написаны в журнал кластера только в начале и при завершении инициализации файла журнала отката.

Параметры отладки узла данных

Следующие параметры предназначаются для использования во время тестирования или отладки узлов данных, а не для использования в производстве.

  • DictTrace

    Таблица 5.130. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации узла данных DictTrace

    Свойство Значение
    Версия (или позже) NDB 7.5.0
    Тип или единица измерения Байты
    Умолчание undefined
    Диапазон 0 - 100
    Тип перезапуска N

    Возможно вызвать регистрацию трассировки для событий, произведенных, создавая и удаляя таблицы с использованием DictTrace. Этот параметр полезен только в отладке ядерного кода NDB. DictTrace берет целочисленное значение. 0 (умолчание, никакой регистрации) и 1 (регистрация позволена) это единственные поддержанные значения до NDB 7.5.2. В NDB 7.5.2 и позже установка этого параметра в 2 позволяет регистрировать дополнительную отладочную информацию DBDICT (Bug #20368450).

  • WatchdogImmediateKill

    Таблица 5.131. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации узла данных WatchDogImmediateKill

    Свойство Значение
    Версия (или позже) NDB 7.6.7
    Тип или единица измерения boolean
    Умолчание false
    Диапазон true, false
    Тип перезапуска S

    В NDB 7.6.7 и позже можно заставить потоки быть немедленно убитыми каждый раз, когда охранительные проблемы происходят, позволяя параметр конфигурации узла данных WatchdogImmediateKill. Этот параметр должен использоваться только отлаживая или расследуя, чтобы получить файлы трассировки, сообщающие точно, что происходило в момент выполнения, которое прекращают.

Параметры резервного копирования. Параметры [ndbd] в этой секции определяют буферы памяти, отложенные для выполнения резервных копий онлайн.

  • BackupDataBufferSize

    Таблица 5.132. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации узла данных BackupDataBufferSize

    Свойство Значение
    Версия (или позже) NDB 7.5.0
    Тип или единица измерения Байты
    Умолчание 16M
    Диапазон 512K - 4294967039 (0xFFFFFEFF)
    Тип перезапуска N
    Версия (или позже) NDB 7.5.0
    Тип или единица измерения Байты
    Умолчание 16M
    Диапазон 2M - 4294967039 (0xFFFFFEFF)
    Тип перезапуска N
    Версия (или позже) NDB 7.5.1
    Тип или единица измерения Байты
    Умолчание 16M
    Диапазон 512K - 4294967039 (0xFFFFFEFF)
    Тип перезапуска N

    При создании резервной копии есть два буфера, используемые для отправки данных к диску. Буфер данных резервного копирования используется, чтобы заполнить данные, зарегистрированные, просматривая таблицы узла. Как только этот буфер был заполнен до уровня, определенного как BackupWriteSize, страницы посылают на диск. После этого процесс резервного копирования может продолжить заполнять этот буфер, пока это не исчерпывает пространство. Когда это происходит, процесс резервного копирования делает паузу просмотра и ждет, пока некоторые записи на диск не закончили освобождение памяти, чтобы просмотр мог продолжиться.

    Значение по умолчанию для этого параметра составляет 16 МБ. Минимум был изменен от 2M до 512K в NDB NDB 7.5.1 (Bug #22749509).

  • BackupDiskWriteSpeedPct

    Таблица 5.133. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации узла данных BackupDiskWriteSpeedPct

    Свойство Значение
    Версия (или позже) NDB 7.5.0
    Тип или единица измерения Процент
    Умолчание 50
    Диапазон 0 - 90
    Тип перезапуска N

    Во время нормального функционирования узлы данных пытаются максимизировать скорость записи на диск, используемую для местных контрольных точек и резервных копий, оставаясь в границах, установленных MinDiskWriteSpeed и MaxDiskWriteSpeed. Уменьшение записи на диск дает каждому потоку LDM равную долю общего бюджета. Это позволяет параллельному LCP происходить, не превышая бюджет дискового I/O. Поскольку резервная копия выполняется только одним потоком LDM, это эффективно вызывает сокращение бюджета, что приводит к более длительному времени завершения резервной копии, а если уровень изменения достаточно высок, то отказу закончить резервную копию, когда буфер журнала резервного копирования заполняется выше, чем достижимый уровень записи.

    Эта проблема может быть решена при помощи параметра BackupDiskWriteSpeedPct, который берет значение в диапазоне 0-90 включительно, которое интерпретируется как процент максимума бюджет записи узла, который резервируется до деления остатка от бюджета среди потоков LDM для LCP. Поток LDM, управляющий резервной копией, получает некоторый бюджет для резервной копии, плюс его (уменьшенную) долю бюджета уровня для местных контрольных точек. Это заставляет бюджет темпа записи на диск вести себя так же, как он был бы обработан в NDB Cluster 7.3 и ранее.

    Значение по умолчанию для этого параметра 50 (в смысле 50%).

  • BackupLogBufferSize

    Таблица 5.134. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации узла данных BackupLogBufferSize

    Свойство Значение
    Версия (или позже) NDB 7.5.0
    Тип или единица измерения Байты
    Умолчание 16M
    Диапазон 2M - 4294967039 (0xFFFFFEFF)
    Тип перезапуска N

    Буфер журнала резервного копирования выполняет роль, подобную роли буфера данных резервного копирования, за исключением того, что это используется для создания регистрации всей таблицы, сделанной во время выполнения резервной копии. Те же самые принципы запрашивают написание этих страниц как с буфером данных резервного копирования, за исключением того, что когда больше нет пространства в буфере журнала резервного копирования, резервная копия терпит неудачу. По этой причине размер буфера журнала резервного копирования должен быть достаточно большим, чтобы обращаться с нагрузкой, вызванной действиями записи в то время, как резервная копия делается. Посмотрите раздел 7.3.3.

    Значение по умолчанию для этого параметра должно быть достаточным для большинства приложений. На самом деле более вероятно для резервной неудачи быть вызванной недостаточной скоростью записи на диск, чем переполниться для буфера журнала резервного копирования. Если дисковая подсистема не будет формироваться для соответствующей нагрузки, кластер вряд ли будет в состоянии выполнить желаемые операции.

    Предпочтительно формировать узлы таким способом, что процессор становится узким местом, а не диски или сетевые соединения.

    Значение по умолчанию для этого параметра составляет 16 МБ.

  • BackupMemory

    Таблица 5.135. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации узла данных BackupMemory

    Свойство Значение
    Версия (или позже) NDB 7.5.0
    Тип или единица измерения Байты
    Умолчание 32M
    Диапазон 0 - 4294967039 (0xFFFFFEFF)
    Тип перезапуска N

    Этот параметр устарел. Игнорируется.

  • BackupReportFrequency

    Таблица 5.136. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации узла данных BackupReportFrequency

    Свойство Значение
    Версия (или позже) NDB 7.5.0
    Тип или единица измерения Секунды
    Умолчание 0
    Диапазон 0 - 4294967039 (0xFFFFFEFF)
    Тип перезапуска N

    Этот параметр управляет, как часто резервные отчеты о состоянии выпущены в клиенте управления во время изготовления резервной копии, а также как часто такие отчеты написаны в журнал кластера (если регистрация событий, чтобы это разрешить, см. здесь). BackupReportFrequency представляет время в секундах между отчетами о состоянии.

    Значение по умолчанию 0.

  • BackupWriteSize

    Таблица 5.137. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации узла данных BackupWriteSize

    Свойство Значение
    Версия (или позже) NDB 7.5.0
    Тип или единица измерения Байты
    Умолчание 256K
    Диапазон 32K - 4294967039 (0xFFFFFEFF)
    Тип перезапуска N

    Этот параметр определяет размер по умолчанию сообщений, написанных на диск буферами данных и журналом резервного копирования.

    Значение по умолчанию для этого параметра составляет 256 КБ.

  • BackupMaxWriteSize

    Таблица 5.138. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации узла данных BackupMaxWriteSize

    Свойство Значение
    Версия (или позже) NDB 7.5.0
    Тип или единица измерения Байты
    Умолчание 1M
    Диапазон 256K - 4294967039 (0xFFFFFEFF)
    Тип перезапуска N

    Этот параметр определяет максимальный размер сообщений, написанных на диск буферами данных резервного копирования и журналом резервного копирования.

    Значение по умолчанию для этого параметра составляет 1 МБ.

Местоположение резервных файлов определяется параметром конфигурации узла данных BackupDataDir.

Дополнительные требования. Определяя эти параметры, следующие отношения должны сохраняться. Иначе узел данных будет неспособен стартовать.

  • BackupDataBufferSize >= BackupWriteSize + 188KB

  • BackupLogBufferSize >= BackupWriteSize + 16KB

  • BackupMaxWriteSize >= BackupWriteSize

Эксплуатационные параметры в реальном времени NDB Cluster

Параметры [ndbd] в этой секции, используются в планировании и блокировке потоков к определенным CPU на хостах узла данных.

Чтобы использовать эти параметры, процессом узла данных нужно управлять как системный root.

  • LockExecuteThreadToCPU

    Таблица 5.139. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации узла данных LockExecuteThreadToCPU

    Свойство Значение
    Версия (или позже) NDB 7.5.0
    Тип или единица измерения Набор CPU ID
    Умолчание 0
    Диапазон ...
    Тип перезапуска N

    Когда используется с ndbd, этот параметр (теперь последовательность) определяет ID CPU, выделенного для потока выполнения NDBCLUSTER . Когда используется с ndbmtd, значение этого параметра это список разделенных запятой значений CPU ID, выделенных для потоков выполнения. Каждый CPU ID в списке должен быть целым числом в диапазоне от 0 до 65535 (включительно).

    Количество определенных ID должно соответствовать количеству потоков выполнения, определенных MaxNoOfExecutionThreads. Однако, нет никакой гарантии, что потоки назначены на CPU в любом порядке, данном, используя этот параметр. Можно получить более точный контроль с использованием ThreadConfig.

    LockExecuteThreadToCPU не имеет никакого значения по умолчанию.

  • LockMaintThreadsToCPU

    Таблица 5.140. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации узла данных LockMaintThreadsToCPU

    Свойство Значение
    Версия (или позже) NDB 7.5.0
    Тип или единица измерения CPU ID
    Умолчание 0
    Диапазон 0 - 64K
    Тип перезапуска N

    Этот параметр определяет ID CPU, выделенного для потока обслуживания NDBCLUSTER.

    Значение этого параметра это целое число в диапазоне от 0 до 65535 (включительно). Нет никакого значения по умолчанию .

  • RealtimeScheduler

    Таблица 5.141. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации узла данных RealtimeScheduler

    Свойство Значение
    Версия (или позже) NDB 7.5.0
    Тип или единица измерения boolean
    Умолчание false
    Диапазон true, false
    Тип перезапуска N

    Установка этого параметра в 1 позволяет планирование в реальном времени потоков узла данных.

    Умолчание: 0 (планирование отключено).

  • SchedulerExecutionTimer

    Таблица 5.142. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации узла данных SchedulerExecutionTimer

    Свойство Значение
    Версия (или позже) NDB 7.5.0
    Тип или единица измерения Микросекунды
    Умолчание 50
    Диапазон 0 - 11000
    Тип перезапуска N

    Этот параметр определяет время в микросекундах для потоков, которые будут выполнены в планировщике прежде, чем будут переданы. Установка в 0 минимизирует время отклика, чтобы достигнуть более высокой пропускной способности, можно увеличить значение за счет более длительного времени отклика.

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

  • SchedulerResponsiveness

    Таблица 5.143. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации узла данных SchedulerResponsiveness

    Свойство Значение
    Версия (или позже) NDB 7.5.0
    Тип или единица измерения integer
    Умолчание 5
    Диапазон 0 - 10
    Тип перезапуска S

    Установите баланс в планировщике NDB между скоростью и пропускной способностью. Этот параметр берет целое число, значение которого находится в диапазоне 0-10 включительно, 5 по умолчанию. Более высокие значения обеспечивают лучшее время отклика относительно пропускной способности. Низкие значения обеспечивают увеличенную пропускную способность за счет более длительного времени отклика.

  • SchedulerSpinTimer

    Таблица 5.144. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации узла данных SchedulerSpinTimer

    Свойство Значение
    Версия (или позже) NDB 7.5.0
    Тип или единица измерения Микросекунды
    Умолчание 0
    Диапазон 0 - 500
    Тип перезапуска N

    Этот параметр определяет время в микросекундах для потоков, которые будут выполнены в планировщике перед сном.

    Значение по умолчанию 0.

  • BuildIndexThreads

    Таблица 5.145. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации узла данных BuildIndexThreads

    Свойство Значение
    Версия (или позже) NDB 7.5.0
    Тип или единица измерения numeric
    Умолчание 0
    Диапазон 0 - 128
    Тип перезапуска S
    Версия (или позже) NDB 7.6.4
    Тип или единица измерения numeric
    Умолчание 128
    Диапазон 0 - 128
    Тип перезапуска S

    Этот параметр определяет количество потоков для создания, когда идет восстановление отсортированных индексов во время старта системы или узла, а также выполняя ndb_restore --rebuild-indexes. Это поддерживается только, когда есть больше, чем один фрагмент для таблицы на узел данных (например, когда COMMENT="NDB_TABLE=PARTITION_BALANCE=FOR_RA_BY_LDM_X_2" использовано в CREATE TABLE).

    Установка этого параметра в 0 (умолчание) отключает многопоточное создание упорядоченных индексов.

    Этот параметр поддерживается, используя ndbd или ndbmtd.

    Можно позволить многопоточное создание во время перезапусков узла данных, устанавливая параметр конфигурации узла данных TwoPassInitialNodeRestartCopy = TRUE.

  • TwoPassInitialNodeRestartCopy

    Таблица 5.146. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации узла данных TwoPassInitialNodeRestartCopy

    Свойство Значение
    Версия (или позже) NDB 7.5.0
    Тип или единица измерения boolean
    Умолчание false
    Диапазон true, false
    Тип перезапуска N
    Версия (или позже) NDB 7.6.4
    Тип или единица измерения boolean
    Умолчание true
    Диапазон true, false
    Тип перезапуска N

    Многопоточное создание упорядоченных индексов может быть позволено для начальных перезапусков узлов данных, установив этот параметр конфигурации в true, что позволяет копирование с двумя проходами данных во время начальных перезапусков узла. Начиная с NDB 7.6.4, это значение по умолчанию (Bug #26704312, Bug #27109117).

    Необходимо также установить BuildIndexThreads к ненулевому значению.

  • Numa

    Таблица 5.147. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации узла данных Numa

    Свойство Значение
    Версия (или позже) NDB 7.5.0
    Тип или единица измерения numeric
    Умолчание 1
    Диапазон ...
    Тип перезапуска N

    Этот параметр определяет, управляют ли Non-Uniform Memory Access (NUMA) операционная система или процесс узла, а также использует ли узел данных ndbd или ndbmtd. По умолчанию NDB пытается использовать чередованную политику выделения памяти NUMA в отношении любого узла данных, где хостовая операционная система оказывает поддержку NUMA.

    Numa = 0 значит, что процесс datanode самостоятельно не пытается установить политику для выделения памяти и разрешает этому поведению быть определенным операционной системой, которая может далее управляться отдельным инструментом numactl. Таким образом, Numa = 0 приводит к поведению системного значения по умолчанию, которое может быть настроено numactl. Для многих систем Linux поведение системного значения по умолчанию должно ассигновать локальную память сокета любому данному процессу во время распределения. Это может быть проблематично, используя ndbmtd, это вызвано тем, что nbdmtd ассигнует всю память при запуске, приводя к неустойчивости, давая различные скорости доступа для различных сокетов, особенно захватывая страницы в оперативной памяти.

    Numa = 1 значит, что процесс узла данных использует libnuma, чтобы запросить распределение памяти с чередованием адресов. Это может также быть достигнуто вручную на уровне операционной системы, используя numactl. Использование чередованного распределения в действительности говорит процессу узла данных игнорировать неоднородный доступ к памяти, но не пытается воспользоваться любым преимуществом быстрой локальной памяти, вместо этого процесс узла данных пытается избежать неустойчивости, должной замедлить удаленную память. Если чередованное распределение не желаемо, надо установить Numa = 0, чтобы желаемое поведение могло быть определено на уровне операционной системы.

    Параметр конфигурации Numa поддерживается только на системах Linux, где доступна libnuma.so.

Параметры мультипоточной конфигурации (ndbmtd). ndbmtd работает по умолчанию как однопоточный процесс и должен формироваться, чтобы использовать многократные потоки, используя любой из двух методов, оба из которых требуют параметров конфигурации в файле config.ini. Первый метод должен просто установить соответствующее значение для параметра MaxNoOfExecutionThreads. Второй метод, позволяет настроить более сложные правила для ndbmtd, используя ThreadConfig. Следующие несколько параграфов предоставляют информацию об этих параметрах и их использовании с многопоточными узлами данных.

  • MaxNoOfExecutionThreads

    Таблица 5.148. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации многопоточного узла данных MaxNoOfExecutionThreads

    Свойство Значение
    Версия (или позже) NDB 7.5.0
    Тип или единица измерения integer
    Умолчание 2
    Диапазон 2 - 72
    Тип перезапуска IS

    Этот параметр непосредственно управляет количеством потоков выполнения, используемых ndbmtd, максимум до 72. Хотя этот параметр устанавливается в разделе [ndbd] или [ndbd default] файла config.ini, это исключительно для ndbmtd и не относится к ndbd.

    MaxNoOfExecutionThreads определяет число потоков для каждого типа, как определено матрицей в файле storage/ndb/src/kernel/vm/mt_thr_config.cpp. Эта таблица показывает эти числа потоков для возможных значений MaxNoOfExecutionThreads.

    Таблица 5.149. Значения MaxNoOfExecutionThreads и соответствующее количество потоков по типу (LQH, TC, Send, Receive).

    Значение MaxNoOfExecutionThreads Потоки LDM Потоки TC Потоки Send Потоки Receive
    0 .. 3 1001
    4 .. 62001
    7 .. 84001
    94201
    104211
    114311
    126211
    136311
    146312
    156322
    168312
    178412
    188422
    198522
    2010422
    2110522
    2210523
    2310623
    2412523
    2512623
    2612633
    2712733
    2812734
    2912834
    3012844
    3112944
    3216833
    3316834
    3416844
    3516944
    36161044
    37161045
    38161145
    39161155
    40201044
    41201045
    42201145
    43201155
    44201255
    45201256
    46201356
    47201366
    48241255
    49241256
    50241356
    51241366
    52241466
    53241467
    54241567
    55241577
    56241677
    57241678
    58241778
    59241788
    60241888
    61241889
    62241989
    63241999
    64321677
    65321678
    66321778
    67321788
    68321888
    69321889
    70321989
    71322089
    723220810

    Всегда есть один поток SUMA (репликация).

    NoOfFragmentLogParts должен быть установлен равным количеству потоков LDM, используемых ndbmtd, как определено для этого параметра. Это отношение не должно быть много больше, чем 4:1, начиная с NDB 7.5.7 и NDB 7.6.3, конфигурации, в которой дело обстоит так, определенно отвергнуты (Bug #25333414).

    Количество потоков LDM также определяет количество разделения, используемого таблицей NDB, которая явно не разделена, это число потоков LDM, умноженное на количество узлов данных в кластере. Если ndbd используется на узлах данных, а не ndbmtd, то всегда есть единственный поток LDM, в этом случае количество разделений, созданных автоматически, просто равно количеству узлов данных. Посмотрите раздел 3.2.

    Добавление больших табличных пространств для таблиц Disk Data, используя больше, чем количество по умолчанию потоков LDM может вызвать проблемы с ресурсом и использованием CPU, если дисковый буфер страницы недостаточно большой, см. описание DiskPageBufferMemory.

    Типы потоки описаны позже в этой секции (см. ThreadConfig).

    Указание этого параметра вне разрешенного диапазона заставляет сервер управления прерываться на запуске с ошибкой Error line number: Illegal value for parameter MaxNoOfExecutionThreads.

    Для MaxNoOfExecutionThreads значение 0 или 1 внутренне округлено NDB до 2, чтобы 2 считался значением по умолчанию этого параметра и минимальным значением.

    MaxNoOfExecutionThreads обычно предназначается, чтобы быть установленным равным количеству доступных потоков ЦП, и ассигновать много потоков каждого типа, для типичной рабочей нагрузки. Это не назначает особые потоки на указанные CPU. Для случаев когда желательно изменить параметры настройки или связать потоки с CPU, необходимо использовать ThreadConfig, который позволяет вам ассигновать каждый поток непосредственно желаемому типу, CPU или обоим.

    Многопоточный процесс узла данных всегда порождает, как минимум, потоки, перечисленные здесь:

    • 1 обработчик локального запроса (LDM).

    • 1 поток полученгия.

    • 1 менеджер по подписке (SUMA или репликация).

    Для MaxNoOfExecutionThreads = 8 или меньше никакие потоки TC не создаются, а обработка TC вместо этого выполняется главным потоком.

    До NDB 7.6 изменение количества потоков LDM всегда требует системного перезапуска, изменяется ли это, используя этот параметр или ThreadConfig. В NDB 7.6 и позже возможно вызвать изменение, используя начальный перезапуск узла (NI), если следующим условиям отвечают:

    • Если после изменения количество потоков LDM остается тем же самым, как прежде, простой перезапуск узла (катящийся перезапуск или N) требуются, чтобы осуществить изменение.

    • Иначе (то есть, если количество потоков LDM изменено), все еще возможно вызвать изменение, используя начальный перезапуск узла (NI), если следующие два условия соблюдаются:

      1. Каждый поток LDM обращается максимум с 8 фрагментами и

      2. Общее количество фрагментов таблицы это целое число, кратное числу потоков LDM.

    До NDB 7.6, если IndexMemory больше, чем 50%, изменение этого требует начального перезапуска кластера. Максимум 30-35% IndexMemory рекомендуется в таких случаях. Иначе использование ресурсов и распределение потоков LDM не могут быть уравновешены между узлами, что может привести к недостаточно использованным и сверхиспользуемым потокам LDM и в конечном счете неудачам узла данных. В NDB 7.6 и позже начальный перезапуск не требуется, чтобы вызывать изменение в этом параметре.

  • NoOfFragmentLogParts

    Таблица 5.150. Эта таблица обеспечивает тип и информацию о значении NoOfFragmentLogParts

    Свойство Значение
    Версия (или позже) NDB 7.5.0
    Тип или единица измерения numeric
    Умолчание 4
    Диапазон 4, 8, 12, 16, 24, 32
    Тип перезапуска IN

    Определите число групп файла журнала для журналов отката, принадлежащих этому ndbmtd. Максимальное значение 32, значение должно быть кратным 4.

    NoOfFragmentLogParts должен быть установлен равным количеству потоков LDM, используемых ndbmtd, как определено для MaxNoOfExecutionThreads. Начиная с NDB 7.5.7 и NDB 7.6.3, конфигурация, использующая больше 4 частей журнала отката на LDM, отвергнута (Bug #25333414).

    См. описание MaxNoOfExecutionThreads.

  • ThreadConfig

    Таблица 5.151. Эта таблица обеспечивает тип и информацию о значении ThreadConfig

    Свойство Значение
    Версия (или позже) NDB 7.5.0
    Тип или единица измерения string
    Умолчание ''
    Диапазон ...
    Тип перезапуска IS

    Этот параметр используется с ndbmtd, чтобы назначить потоки различных типов к различным CPU. Его значение это последовательность, у формата которой есть следующий синтаксис:

    ThreadConfig := entry[,entry[,...]]
    entry := type={param[,param[,...]]}
    type := ldm | main | recv | send | rep | io | tc | watchdog | idxbld
    param := count=number
    | cpubind=cpu_list
    | cpuset=cpu_list
    | spintime=number
    | realtime={0|1}
    | nosend={0|1}
    | thread_prio={0..10}
    | cpubind_exclusive=cpu_list
    | cpuset_exclusive=cpu_list
    

    Фигурные скобки ({...} ) окружения списка параметров требуется, даже если есть только один параметр в списке.

    param (параметр) определяет любую из следующей информации:

    • Количество потоков данного типа (count).

    • Задает CPU, с которыми должны быть неисключительно связаны потоки данного типа. Это определяется любым cpubind или cpuset). cpubind определяет каждый поток, который будет связан (неисключительно) с CPU в наборе, cpuset значит, что каждый поток связан (неисключительно) с набором определенных CPU.

      В Solaris можно вместо этого определить ряд CPU, с которыми потоки данного типа должны быть связаны исключительно. cpubind_exclusive задает каждый поток, который будет связан исключительно с CPU в наборе, cpuset_exclsuive значит, что каждый поток связан исключительно с набором определенных CPU.

      Только один из cpubind, cpuset, cpubind_exclusive или cpuset_exclusive может быть обеспечен в единственной конфигурации.

    • spintime определяет время ожидания в микросекундах ротации потока перед засыпанием.

      Значение по умолчанию для spintime это значение SchedulerSpinTimer конфигурации узла данных.

      spintime не относится к потокам I/O, контрольным потокам или офлайновому созданию индекса, и не может быть установлен для этих типов потоков.

    • realtime может быть установлен в 0 или 1. Если это установлено в 1, потоки работают с приоритетом в реальном времени. Это также означает, что thread_prio не может быть установлен.

      realtime устанавливается по умолчанию в значение RealtimeScheduler.

      realtime не может быть установлен для офлайнового потока создания индекса.

    • Устанавливая nosend = 1, можно не дать потокам main, ldm, rep или tc помочь потокам передачи. Этот параметр 0 по умолчанию и не может использоваться с другими типами потоков.

      nosend добавлено в NDB 7.6.4.

    • thread_prio это приоритетный уровень потока, который может быть установлен от 0 до 10, где 10 задает самый большой приоритет. Умолчание равняется 5. Точные эффекты этого параметра определены для платформы и описаны позже в этой секции.

      Приоритетный уровень потока не может быть установлен для офлайнового создания индекса.

    thread_prio и эффекты. Реализация thread_prio разная в Linux/FreeBSD, Solaris и Windows. В следующем списке мы обсуждаем эффекты на каждой из этих платформ:

    • Linux и FreeBSD: Мы отображаем thread_prio к значениям, которые будут поставляться системному вызову nice. Так как более низкое значение для процесса указывает на более высокий приоритет процесса, увеличение thread_prio имеет эффект понижения nice.

      Таблица 5.152. Отображение thread_prio на значения nice в Linux и FreeBSD

      Значение thread_prio Значение nice
      019
      116
      212
      38
      44
      50
      6-4
      7-8
      8-12
      9-16
      10-20

      Некоторые операционные системы могут предусмотреть максимальный уровень nice процесса 20, но это не поддерживается всеми версиями, поэтому мы выбираем 19 как максимум значения nice.

    • Solaris: Установка thread_prio в Solaris устанавливает приоритет Solaris FX, с отображениями как показано в следующей таблице:

      Таблица 5.153. Отображение thread_prio к приоритету FX в Solaris

      Значение thread_prio Приоритет Solaris FX
      015
      120
      225
      330
      435
      540
      645
      750
      855
      959
      1060

      Установка thread_prio = 9 отображается в Solaris на значение FX 59, что означает, что операционная система также пытается вынудить поток работать в одиночестве на его собственном ядре процессора.

    • Windows: thread_prio отображается на приоритетное значение потока Windows, переданное функции Windows API SetThreadPriority(). Это отображение показывают в следующей таблице:

      Таблица 5.154. Отображение thread_prio на приоритет Windows

      Значение thread_prio Приоритет Windows
      0 - 1 THREAD_PRIORITY_LOWEST
      2 - 3 THREAD_PRIORITY_BELOW_NORMAL
      4 - 5 THREAD_PRIORITY_NORMAL
      6 - 7 THREAD_PRIORITY_ABOVE_NORMAL
      8 - 10 THREAD_PRIORITY_HIGHEST

    Признак type представляет тип потока NDB. Типы потоков и диапазон разрешенных значений count для каждого, обеспечиваются в следующем списке:

    • ldm: обработчик локального запроса (ядерный блок DBLQH ), который обведомоготывает данные. Чем больше потоков LDM, которые используются, тем более разделенными становятся данные. Каждый поток LDM поддерживает свои собственные наборы данных и разделения индекса, а также собственный журнал отката. Набор значений для ldm должен быть одним из 1, 2, 4, 6, 8, 12, 16, 24 или 32.

      Изменение количества потоков LDM обычно требует, чтобы начальный системный перезапуск был эффективным и безопасным для операций по кластеру. Это требование смягчено в NDB 7.6, как объяснено позже в этой секции. Это также верно, когда это сделано, используя MaxNoOfExecutionThreads. NDB 7.5 и ранее: если использование IndexMemory сверх 50%, начальный перезапуск требуется, максимум 30-35% использования IndexMemory рекомендуется в таких случаях. Иначе распределение памяти и потоков LDM не может быть уравновешено между узлами, что может в конечном счете привести к неудачам узла данных.

      Добавление больших табличных пространств (сотни гигабайтов или больше) для таблиц Disk Data, используя больше, чем количество по умолчанию LDM, может вызвать проблемы с ресурсом и использованием CPU, если DiskPageBufferMemory недостаточно большое.

    • tc: Операционный координатор (ядерный блок DBTC) содержащий статус продолжающейся транзакции. Максимальное количество потоков TC 32.

      Оптимально, каждая новая транзакция может быть назначена на новый поток TC. В большинстве случаев 1 поток TC на 2 потоки LDM достаточно, чтобы гарантировать, что это может работать. В случаях, где количество записей относительно маленькое по сравнению с количеством чтений, возможно, что только 1 поток TC на 4 потока LQH требуется, чтобы поддерживать операционные статусы. С другой стороны, в запросах, которые выполняют очень много обновлений, может быть необходимо для отношения потоков TC к LDM приблизиться к 1 (например, 3 потока TC к 4 LDM).

      Установка tc = 0 предписывает обработку TC главным потоком. В большинстве случаев это то же самое, как установить его в 1.

      Диапазон: 0 - 32.

    • main: Словарь данных и операционный координатор (ядерные блоки DBDIH и DBTC) обеспечивают управление схемами. Это всегда обрбатывается одним потоком.

      Диапазон: только 1.

    • recv: Поток получения (ядерный блок CMVMI). Каждый поток получения обрабатывает один или несколько сокетов для связи с другими узлами в NDB Cluster с одним сокетом на узел. NDB Cluster поддерживает многократные потоки получения, максимум 16 таких потоков.

      Диапазон: 1 - 16.

    • send: Поток передачи (ядерный блок CMVMI). Чтобы увеличить пропускную способность, возможно использование одного или более отдельных специальных потоков (максимум 8).

      Ранее все потоки обращались со своей собственной отправкой непосредственно, это все еще может быть сделано, определив число потоков 0 (это также происходит, когда MaxNoOfExecutionThreads меньше 10). В то время как выполнение этого может оказать влияние на пропускную способность, оно может также в некоторых случаях обеспечить уменьшенное время ожидания.

      Диапазон: 0 - 16.

    • rep: Поток репликации (ядерный блок SUMA). Операции по асинхронной репликации всегда обрабатываются единственным потоком.

      Диапазон: только 1.

    • io: Файловая система и другие разные операции. Они не требуют задачи и всегда обрабатываются единственным специальным потоком I/O.

      Диапазон: только 1.

    • watchdog: Параметры настройки, связанные с этим типом, на самом деле применяются к нескольким потокам, каждый имеющий определенное использование. Эти потоки включают поток SocketServer, который получает установки связи от других узлов, SocketClient, который пытается настроить связи с другими узлами, и контрольный поток, который проверяет, что потоки работают.

      Диапазон: только 1.

    • idxbld: Офлайновое создание индексов. В отличие от других типов потока, перечисленных ранее, которые являются постоянными, это временные потоки, которые создаются и используются только во время перезапусков узла или выполнения ndb_restore --rebuild-indexes. Они могут быть связаны с наборами CPU.

      Значения thread_prio, realtime и spintime не могут быть установлены для офлайнового индекса. Кроме того, count проигнорирован для этого типа потоков.

      Если idxbld не определяется, поведение по умолчанию следующее:

      • Поток офлайнового индекса не связан, если поток I/O также не связан, и эти потоки используют любые доступные ядра.

      • Если поток I/O связан, то поток офлайнового индекса связан со всем набором связанных потоков, вследствие того, что не должно быть никаких других задач для этих потоков.

      Диапазон: 0 - 1.

      Этот тип потоки был добавлен в NDB 7.6.4 Bug #25835748, Bug #26928111).

До NDB 7.6 изменение ThreadCOnfig требует системного начального перезапуска. В NDB 7.6 и позже это требование может быть смягчено при определенных обстоятельствах:

  • Если после изменения количество потоков LDM остается тем же самым, как прежде, простой перезапуск узла (катящийся перезапуск или N) требуются, чтобы осуществить изменение.

  • Иначе (то есть, если количество потоков LDM поменялось), все еще возможно вызвать изменение, используя начальный перезапуск узла (NI), если следующие два условия соблюдаются:

    1. Каждый поток LDM обращается максимум с 8 фрагментами и

    2. Общее количество фрагментов таблицы это целое число, кратное количеству потоков LDM.

В любом другом случае системный начальный перезапуск необходим, чтобы изменить этот параметр.

NDB 7.6.4 и позже может различать типы потоков по обоим из следующих критериев:

  • Является ли поток потоком выполнения. Потоки типа main, ldm, recv, rep, tc и send это потоки выполнения, io, watchdog и idxbld не считаются потоками выполнения.

  • Постоянное ли распределение потоков к данной задаче или временное. В настоящее время все типы потоков кроме idxbld считаются постоянными, idxbld рассматриваются как временные потоки.

Простые примеры:

# Example 1.
ThreadConfig=ldm={count=2,cpubind=1,2},main={cpubind=12},rep={cpubind=11}
# Example 2.
Threadconfig=main={cpubind=0},ldm={count=4,cpubind=1,2,5,6},io={cpubind=3}

Это обычно желательно, формируя использование потока для хоста узла данных, чтобы зарезервировать один или более CPU для операционной системы и других задач. Таким образом, для хост-машины с 24 CPU вы могли бы хотеть использовать 20 потоков ЦП (оставляя 4 для другого использования) с 8 потоками LDM, 4 потоками TC (половина от количества потоков LDM), 3 потоками передачи, 3 потоками получения и по 1 потоку для управления схемами, асинхронной репликацией и операциями I/O. Это почти то же самое распределение потоков используемое, когда MaxNoOfExecutionThreads = 20. Следующая настройка ThreadConfig выполняет эти назначения, дополнительно привязывая все эти потоки к определенным CPU

ThreadConfig=ldm{count=8,cpubind=1,2,3,4,5,6,7,8},main={cpubind=9}, \
             io={cpubind=9}, rep={cpubind=10},tc{count=4, \
             cpubind=11,12,13,14},recv={count=3,cpubind=15,16,17}, \
             send{count=3,cpubind=18,19,20}

Должно быть возможно в большинстве случаев привязать основной (управление схемами) поток и поток I/O к тому же самому CPU, как мы сделали в этом примере.

Следующий пример включает группы CPU, определенные, используя cpuset и cpubind, а также использование установления приоритетов потока.

ThreadConfig=ldm={count=4,cpuset=0-3,thread_prio=8,spintime=200}, \
             ldm={count=4,cpubind=4-7,thread_prio=8,spintime=200}, \
             tc={count=4,cpuset=8-9,thread_prio=6},send={count=2, \
             thread_prio=10,cpubind=10-11}, \
             main={count=1,cpubind=10},rep={count=1,cpubind=11}

В этом случае мы создаем две группы LDM, первая использует cpubind, вторая cpuset. thread_prio и spintime установлены в те же самые значения для каждой группы. Это означает, что всего есть восемь потоков LDM. Необходимо гарантировать, что NoOfFragmentLogParts тоже 8. Четыре потока TC используют только два CPU, это возможно, используя cpuset, чтобы определить меньше CPU, чем потоков в группе. Это неверно для cpubind. Потоки передачи используют два потока через cpubind , чтобы связывать эти потоки с CPU 10 и 11. Главные потоки и потоки репликации тоже могут использовать эти CPU.

Этот пример показывает, как ThreadConfig и NoOfFragmentLogParts могли бы быть настроены для хоста с 24 CPU с гипертрейдингом, оставив CPU 10, 11, 22 и 23 доступными для функций операционной системы и прерываний:

NoOfFragmentLogParts=10
ThreadConfig=ldm={count=10,cpubind=0-4,12-16,thread_prio=9,spintime=200}, \
             tc={count=4,cpuset=6-7,18-19,thread_prio=8},send={count=1, \
             cpuset=8}, recv={count=1,cpuset=20},main={count=1, \
             cpuset=9,21}, rep={count=1,cpuset=9,21}, \
             io={count=1,cpuset=9,21,thread_prio=8},watchdog={count=1, \
             cpuset=9,21,thread_prio=9}

Следующие несколько примеров включают параметры настройки для idxbld. Первые два демонстрируют, как CPU, установленный для idxbld, может наложиться на определенные для других (постоянных) типов потоков, первый применяет cpuset, второй использует cpubind:

ThreadConfig=main,ldm={count=4,cpuset=1-4},tc={count=4,cpuset=5,6,7}, \
             io={cpubind=8},idxbld={cpuset=1-8}
ThreadConfig=main,ldm={count=1,cpubind=1},idxbld={count=1,cpubind=1}

Следующий пример определяет CPU для потока I/O, но не для построения индекса:

ThreadConfig=main,ldm={count=4,cpuset=1-4},tc={count=4,cpuset=5,6,7}, \
             io={cpubind=8}

Начиная с ThreadConfig, пример показывает привязку потоков к восьми ядрам с 1 по 8, это эквивалентно урегулированию, показанному здесь:

ThreadConfig=main,ldm={count=4,cpuset=1-4},tc={count=4,cpuset=5,6,7}, \
             io={cpubind=8},idxbld={cpuset=1,2,3,4,5,6,7,8}

Чтобы использовать в своих интересах расширенную стабильность, что делает ThreadConfig, необходимо гарантировать, что CPU изолированы, и что они не подвергаются прерываниям или не намечены для других задач операционной системой. На многих системах Linux можно сделать это, установив IRQBALANCE_BANNED_CPUS в /etc/sysconfig/irqbalance = 0xFFFFF0 и применив опцию загрузки isolcpus в grub.conf. Для определенной информации см. свою документацию по операционной системе.

Параметры конфигурации Disk Data. Параметры конфигурации, затрагивающие Disk Data, включают следующее:

  • DiskPageBufferEntries

    Таблица 5.155. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации узла данных DiskPageBufferEntries

    Свойство Значение
    Версия (или позже) NDB 7.5.0
    Тип или единица измерения Страницы по 32K
    Умолчание 10
    Диапазон 1 - 1000
    Тип перезапуска N

    Это количество записей страницы (постраничные ссылки), чтобы ассигновать. Это определяется как много 32K страниц в DiskPageBufferMemory. Умолчание достаточно для большинства случаев, но вы, возможно, должны увеличить значение этого параметра, если вы сталкиваетесь с проблемами с очень большими транзакциями на таблицах Disk Data. Каждый вход страницы требует приблизительно 100 байтов.

  • DiskPageBufferMemory

    Таблица 5.156. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации узла данных DiskPageBufferMemory

    Свойство Значение
    Версия (или позже) NDB 7.5.0
    Тип или единица измерения Байты
    Умолчание 64M
    Диапазон 4M - 1T
    Тип перезапуска N

    Это определяет сумму пространства, использованного для кэширования страниц на диске, и установлено в разделе [ndbd] или [ndbd default] файла config.ini. Это измерено в байтах. Каждая страница занимает 32 KB. Это означает, что хранение данных NDB Cluster Disk Data всегда использует N * 32 KB памяти, где N некоторое неотрицательное целое число.

    Значение по умолчанию для этого параметра 64M (2000 страниц по 32 KB).

    Если значение для DiskPageBufferMemory установлено слишком низким вместе с использованием больше, чем количество по умолчанию потоков LDM в ThreadConfig (например, {ldm=6...}), проблемы могут возникнуть, пытаясь добавить большой (например, 500G) файл данных к находящейся на диске таблице NDB, в ходе чего процесс занимает неопределенно долгое время, занимая одно из ядер процессора.

    Это вследствие того, что, как часть добавления файла данных к табличному пространству, страницы экстента заблокированы в памяти в дополнительном рабочем потоке PGMAN для быстрого доступа метаданных. Добавляя большой файл, у этого рабочего недостаточно памяти для всех метаданных файла данных. В таких случаях необходимо увеличить DiskPageBufferMemory или добавить меньшие файлы табличного пространства. Вы, возможно, также должны приспособить DiskPageBufferEntries.

    Можно запросить таблицу ndbinfo.diskpagebuffer, чтобы помочь определить, должно ли значение для этого параметра быть увеличена, чтобы минимизировать ненужный поиск на диске. Посмотрите раздел 7.10.20.

  • SharedGlobalMemory

    Таблица 5.157. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации узла данных SharedGlobalMemory

    Свойство Значение
    Версия (или позже) NDB 7.5.0
    Тип или единица измерения Байты
    Умолчание 128M
    Диапазон 0 - 64T
    Тип перезапуска N

    Этот параметр определяет объем памяти, который используется для буферов регистрации, дисковых операций (таких как запросы страницы и очереди) и метаданные для табличных пространств, групп файла журнала, файлы UNDO и файлы данных. Пул общей глобальной памяти также обеспечивает память, используемую для удовлетворения требований к памяти опции UNDO_BUFFER_SIZE, используемой с CREATE LOGFILE GROUP и ALTER LOGFILE GROUP, включая любое значение по умолчанию, подразумеваемое для этой опции через параметр конфигурации узла данных InitialLogFileGroup. SharedGlobalMemory может быть установлен в разделе [ndbd] или [ndbd default] конфигурационного файла config.ini и измерен в байтах.

    Значение по умолчанию 128M.

  • DiskIOThreadPool

    Таблица 5.158. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации узла данных DiskIOThreadPool

    Свойство Значение
    Версия (или позже) NDB 7.5.0
    Тип или единица измерения Потоки
    Умолчание 2
    Диапазон 0 - 4294967039 (0xFFFFFEFF)
    Тип перезапуска N

    Этот параметр определяет количество несвязанных потоков, используемых для доступа к файлам дисковых данных. До ввода DiskIOThreadPool точно один поток был порожден для каждого файла дисковых данных, что могло привести к исполнительным проблемам, особенно используя очень большие файлы данных. С DiskIOThreadPool можно, например, получить доступ к единственному большому файлу данных, используя несколько потоков, работающих параллельно.

    Этот параметр относится только к потокам Disk Data I/O.

    Оптимальное значение для этого параметра зависит от ваших аппаратных средств и конфигурации и включает эти факторы:

    • Физическое распределение дисковых файлов данных. Можно получить лучшую работу, поместив файлы данных, файлы журнала отмены и файловую систему узла данных на отдельных физических дисках. Если вы делаете это с некоторыми или всеми этими наборами файлов, то можно установить DiskIOThreadPool выше, чтобы позволить отдельным потокам обращаться с файлами на каждом диске.

    • Производительность и тип диска. Количество потоков, которые могут быть приспособлены для обработки файла данных, также зависит от скорости и пропускной способности дисков. Более быстрые диски и более высокая пропускная способность допускают больше потокоа I/O. Наши результаты испытаний указывают, что ssd могут обращаться с большим числом потоков I/O, чем обычные диски, таким образом рекомендуются более высокие значения для DiskIOThreadPool.

    Значение по умолчанию для этого параметра 2.

  • Дисковые системные параметры файла данных. Параметры в следующем списке позволяют поместить файлы данных кластерного диска NDB в определенные каталоги без потребности в использовании символьных ссылок.

    • FileSystemPathDD

      Таблица 5.159. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации узла данных FileSystemPathDD

      Свойство Значение
      Версия (или позже) NDB 7.5.0
      Тип или единица измерения Имя файла
      Умолчание [see text]
      Диапазон ...
      Тип перезапуска IN

      Если этот параметр определяется, то файлы данных NDB Cluster и файлы журнала отмен помещаются в обозначенный каталог. Это может быть отвергнуто для файлов данных, файлов журнала отмен или обоих, определив значения для FileSystemPathDataFiles, FileSystemPathUndoFiles или оба, как объяснено для этих параметров. Это может также быть отвергнуто для файлов данных, определив путь в ADD DATAFILE в CREATE TABLESPACE или ALTER TABLESPACE и для файлов журнала отмен, определяя путь в ADD UNDOFILE в CREATE LOGFILE GROUP или ALTER LOGFILE GROUP. Если FileSystemPathDD не определяется, тогда используется FileSystemPath.

      Если каталог FileSystemPathDD определяется для узла определенных данных (включая случай, где параметр определяется в разделе [ndbd default] файла config.ini), затем запуская этот узел данных с --initial все файлы в каталоге будут удалены.

    • FileSystemPathDataFiles

      Таблица 5.160. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации узла данных FileSystemPathDataFiles

      Свойство Значение
      Версия (или позже) NDB 7.5.0
      Тип или единица измерения Имя файла
      Умолчание [see text]
      Диапазон ...
      Тип перезапуска IN

      Если этот параметр определяется, то файлы данных NDB Cluster помещаются в обозначенный каталог. Это отвергает любой набор значений для FileSystemPathDD. Этот параметр может быть отвергнут для файла определенных данных, определив путь в ADD DATAFILE в CREATE TABLESPACE или ALTER TABLESPACE при создании того файла данных. Если FileSystemPathDataFiles не определяется, тогда используется FileSystemPathDD (или FileSystemPath, если if FileSystemPathDD также не был установлен).

      Если каталог FileSystemPathDataFiles определяется для узла определенных данных (включая случай, где параметр определяется в разделе [ndbd default] файла config.ini), запуск этого узла данных с опцией --initial удалит все файлы в каталоге.

    • FileSystemPathUndoFiles

      Таблица 5.161. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации узла данных FileSystemPathUndoFiles

      Свойство Значение
      Версия (или позже) NDB 7.5.0
      Тип или единица измерения Имя файла
      Умолчание [see text]
      Диапазон ...
      Тип перезапуска IN

      Если этот параметр определяется, то данные NDB Cluster файла журнала отмен помещаются в обозначенный каталог. Это отвергает любой набор значений для FileSystemPathDD. Этот параметр может быть отвергнут для файла определенных данных, определив путь в ADD UNDO в CREATE LOGFILE GROUP или ALTER LOGFILE GROUP при создании этого файла данных. Если FileSystemPathUndoFiles не определяется, тогда используется FileSystemPathDD (или FileSystemPath, если FileSystemPathDD также не был установлен).

      Если каталог FileSystemPathUndoFiles определяется для узла определенных данных (включая случай, где параметр определяется в разделе [ndbd default] файла config.ini), запуск этого узла данных с опцией --initial удалит все файлы в каталоге.

    См. раздел 7.13.1.

  • Дисковые параметры создания объекта данных. Следующие два параметра позволяют вам, запуская кластер впервые, создать группу файла журнала данных, табличное пространство или оба объекта без использования SQL-операторов.

    • InitialLogFileGroup

      Таблица 5.162. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации узла данных InitialLogFileGroup

      Свойство Значение
      Версия (или позже) NDB 7.5.0
      Тип или единица измерения string
      Умолчание [see text]
      Диапазон ...
      Тип перезапуска S

      Этот параметр может использоваться, чтобы определить группу файла журнала, которая создается, выполняя начальный запуск. InitialLogFileGroup определяется как показано здесь:

      InitialLogFileGroup = [name=name;] [undo_buffer_size=size;] file-specification-list
      file-specification-list:
         file-specification[; file-specification[; ...]]
      file-specification:
         filename:size
      

      name из файла журнала группы дополнительно и по умолчанию DEFAULT-LG. undo_buffer_size также дополнительное, если опущено, это по умолчанию 64M. Каждая file-specification соответствует файлу журнала отмены и по крайней мере одна должна быть определена в file-specification-list. Файлы журнала помещаются согласно любым значениям, которые были установлены для FileSystemPath, FileSystemPathDD и FileSystemPathUndoFiles, как если бы они были созданы как результат CREATE LOGFILE GROUP или ALTER LOGFILE GROUP.

      Рассмотрите следующее:

      InitialLogFileGroup = name=LG1; undo_buffer_size=128M; undo1.log:250M; undo2.log:150M
      

      Это эквивалентно следующим SQL-операторам:

      CREATE LOGFILE GROUP LG1 ADD UNDOFILE 'undo1.log' INITIAL_SIZE 250M
             UNDO_BUFFER_SIZE 128M ENGINE NDBCLUSTER;
      ALTER LOGFILE GROUP LG1 ADD UNDOFILE 'undo2.log'
            INITIAL_SIZE 150M ENGINE NDBCLUSTER;
      

      Эта группа файла журнала создается, когда узлы данных запущены с --initial.

      Ресурсы для начальной группы файла журнала добавляются к пулу глобальной памяти наряду с обозначенными SharedGlobalMemory.

      Этот параметр, если используется, должен всегда устанавливаться в разделе [ndbd default] файла config.ini. Поведение NDB Cluster, когда различные значения установлены на различных узлах данных, не определяется.

    • InitialTablespace

      Таблица 5.163. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации узла данных InitialTablespace

      Свойство Значение
      Версия (или позже) NDB 7.5.0
      Тип или единица измерения string
      Умолчание [see text]
      Диапазон ...
      Тип перезапуска S

      Этот параметр может использоваться, чтобы определить табличное пространство NDB Cluster Disk Data, которое создается, выполняя начальный запуск. InitialTablespace определяется как показано здесь:

      InitialTablespace = [name=name;] [extent_size=size;] file-specification-list
      

      name табличного пространства дополнительное и по умолчанию DEFAULT-TS. extent_size также дополнительное, по умолчанию 1M. file-specification-list использует тот же самый синтаксис, как показан для InitialLogfileGroup, единственная разница в том, что file-specification в InitialTablespace соответствует файлу данных. По крайней мере одна должна быть определена в file-specification-list. Файлы данных помещаются согласно любым значениям, которые были установлены для FileSystemPath, FileSystemPathDD и FileSystemPathDataFiles, как если бы они были созданы как результат CREATE TABLESPACE или ALTER TABLESPACE.

      Например, рассмотрите следующее определение InitialTablespace в разделе [ndbd default] файла config.ini (как с InitialLogfileGroup, этот параметр должен всегда устанавливаться в разделе [ndbd default], поскольку поведение NDB Cluster, когда различные значения установлены на различных узлах данных, не определяется):

      InitialTablespace = name=TS1; extent_size=8M; data1.dat:2G; data2.dat:4G
      

      Это эквивалентно следующим SQL-операторам:

      CREATE TABLESPACE TS1 ADD DATAFILE 'data1.dat' EXTENT_SIZE 8M
             INITIAL_SIZE 2G ENGINE NDBCLUSTER;
      ALTER TABLESPACE TS1 ADD DATAFILE 'data2.dat'
            INITIAL_SIZE 4G ENGINE NDBCLUSTER;
      

      Это табличное пространство создается, когда узлы данных запущены с --initial, и может использоваться, создавая таблицы NDB Cluster Disk Data.

Дисковые данные и ошибки остановки GCP. Ошибки, с которыми сталкиваются, используя дисковые таблицы данных, такие как Node nodeid killed this node because GCP stop was detected (error 2303), часто упоминаются как GCP stop errors. Такие ошибки происходят, когда журнал отката не сбрасывается на диск достаточно быстро, это обычно связано с медленным диском и недостаточной дисковой пропускной способностью.

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

В дополнение к вниманию, уделенному DiskPageBufferMemory как объяснено ранее, также очень важно установить корректно параметр DiskIOThreadPool, наличие слишком большого DiskIOThreadPool очень вероятно вызовет ошибки остановки GCP (Bug #37227).

Остановки GCP могут быть вызваны тайм-аутами сохранения или передачи, параметр конфигурации узла данных TimeBetweenEpochsTimeout определяет тайм-аут передачи. Однако, возможно отключить оба типа тайм-аутов, устанавливая этот параметр в 0.

Параметры для формирования распределения буферной памяти. Буферная память ассигнуется динамично из пула памяти, разделенного между всеми транспортерами, это означает, что размер буфера передачи может быть приспособлен по мере необходимости. Ранее ядро NDB использовало фиксированный размер буфера для каждого узла, который был ассигнован при старте узла и не мог быть изменен в то время, когда узел работал. Параметры конфигурации узла данных TotalSendBufferMemory и OverLoadLimit позволяют урегулирование ограничений на это выделение памяти. Для получения дополнительной информации об использовании этих параметров (а также SendBufferMemory) см. раздел 5.3.13.

  • ExtraSendBufferMemory

    Этот параметр определяет сумму буферной памяти транспортера передачи, чтобы ассигновать в дополнение к любому значению, заданному TotalSendBufferMemory и/или SendBufferMemory.

  • TotalSendBufferMemory

    Этот параметр используется, чтобы указать общую сумму памяти, чтобы ассигновать на этом узле для общего буфера передачи среди всех формируемых транспортеров.

    Если этот параметр устанавливается, его минимально разрешенное значение составляет 256 КБ, 0 указывает, что параметр не был установлен. Для более подробной информации посмотрите раздел 5.3.13.

См. также раздел 7.15.

Журнал отката превышает возможности обработки. Возможно управлять обработкой операций узла данных, когда слишком много времени потрачено, сбрасывая журналы отката на диск. Это происходит, когда данный поток журнала отката занимает больше времени, чем RedoOverCommitLimit секунд, больше чем RedoOverCommitCounter раз подряд, заставляя любые отложенные транзакции быть прерванными. Когда это происходит, узел API, который послал транзакцию, может обращаться с операциями, которые должны были быть переданы: либо стоять в очереди операций и повторять их, либо прервать их, как определено DefaultOperationRedoProblemAction. Параметры конфигурации узла данных для урегулирования тайм-аута и числа раз, которое это может быть превышено узлом API, описаны в следующем списке:

  • RedoOverCommitCounter

    Таблица 5.164. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации узла данных RedoOverCommitCounter

    Свойство Значение
    Версия (или позже) NDB 7.5.0
    Тип или единица измерения numeric
    Умолчание 3
    Диапазон 0 - 4294967039 (0xFFFFFEFF)
    Тип перезапуска N
    Версия (или позже) NDB 7.5.17
    Тип или единица измерения numeric
    Умолчание 3
    Диапазон 1 - 4294967039 (0xFFFFFEFF)
    Тип перезапуска N
    Версия (или позже) NDB 7.6.13
    Тип или единица измерения numeric
    Умолчание 3
    Диапазон 1 - 4294967039 (0xFFFFFEFF)
    Тип перезапуска N

    Когда RedoOverCommitLimit превышен, пытаясь писать данный журнал отката на диск, это число раз или больше, любые транзакции, которые не были переданы в результате, прерываются, а узел API, где любая из этих транзакций произошла, обращается с операциями, составляющими те транзакции согласно его значению для DefaultOperationRedoProblemAction (организация очереди операций, которые будут повторены, или их прерывание).

  • RedoOverCommitLimit

    Таблица 5.165. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации узла данных RedoOverCommitLimit

    Свойство Значение
    Версия (или позже) NDB 7.5.0
    Тип или единица измерения Секунды
    Умолчание 20
    Диапазон 0 - 4294967039 (0xFFFFFEFF)
    Тип перезапуска N
    Версия (или позже) NDB 7.5.17
    Тип или единица измерения Секунды
    Умолчание 20
    Диапазон 1 - 4294967039 (0xFFFFFEFF)
    Тип перезапуска N
    Версия (или позже) NDB 7.6.13
    Тип или единица измерения Секунды
    Умолчание 20
    Диапазон 1 - 4294967039 (0xFFFFFEFF)
    Тип перезапуска N

    Этот параметр устанавливает верхний предел в секундах для попытки написать данный журнал отката на диск прежде, чем произойдет тайм-аут. Число раз, которое узел данных пытается сбросить этот журнал отката, но занимает больше времени, чем RedoOverCommitLimit, сохранено и по сравнению с RedoOverCommitCounter, и когда сброс занимает слишком много времени больше раз, чем значение этого параметра, прерываются любые транзакции, которые не были переданы в результате тайм-аута потока. Когда это происходит, узел API, где любая из этих транзакций произошла, обращается с операциями, составляющими те транзакции, согласно DefaultOperationRedoProblemAction (организация очереди операций, которые будут повторены, или их прерывание).

Управление попытками перезапуска. Возможно осуществить точный контроль над попытками перезапуска узлов данных, когда они падают, с использованием параметров It is possible to exercise finely-grained control over restart attempts by data nodes when they fail to start using the MaxStartFailRetries и StartFailRetryDelay.

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

  • StartFailRetryDelay

    Таблица 5.166. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации узла данных StartFailRetryDelay

    Свойство Значение
    Версия (или позже) NDB 7.5.0
    Тип или единица измерения unsigned
    Умолчание 0
    Диапазон 0 - 4294967039 (0xFFFFFEFF)
    Тип перезапуска N

    Используйте этот параметр, чтобы определить число секунд между попытками перезапуска узла при неудаче запуска. Умолчание 0 (никакой задержки).

    Этот параметр и MaxStartFailRetries проигнорированы, если StopOnError = 0.

  • MaxStartFailRetries

    Таблица 5.167. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации узла данных MaxStartFailRetries

    Свойство Значение
    Версия (или позже) NDB 7.5.0
    Тип или единица измерения unsigned
    Умолчание 3
    Диапазон 0 - 4294967039 (0xFFFFFEFF)
    Тип перезапуска N

    Используйте этот параметр, чтобы ограничить число попыток перезапуска, если это терпит неудачу на запуске. Умолчание 3 попытки.

    Этот параметр и StartFailRetryDelay проигнорированы, если StopOnError = 0.

Параметры статистики индекса NDB. Параметры в следующем списке касаются создания статистики индекса NDB.

  • IndexStatAutoCreate

    Таблица 5.168. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации узла данных IndexStatAutoCreate

    Свойство Значение
    Версия (или позже) NDB 7.5.0
    Тип или единица измерения integer
    Умолчание 0
    Диапазон 0, 1
    Тип перезапуска S

    Позвольте (установите в 1) или запретите (установите в 0) автоматический сбор статистики, когда индексы будут созданы. Отключен по умолчанию.

  • IndexStatAutoUpdate

    Таблица 5.169. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации узла данных IndexStatAutoUpdate

    Свойство Значение
    Версия (или позже) NDB 7.5.0
    Тип или единица измерения integer
    Умолчание 0
    Диапазон 0, 1
    Тип перезапуска S

    Позвольте (установите в 1) или запретите (установите в 0) контроль изменений индексов и вызов автоматического обновления статистики, когда они обнаружены. Сумма и степень изменения для вызова обновления определяются параметрами настройки IndexStatTriggerPct и IndexStatTriggerScale.

  • IndexStatSaveSize

    Таблица 5.170. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации узла данных IndexStatSaveSize

    Свойство Значение
    Версия (или позже) NDB 7.5.0
    Тип или единица измерения Байты
    Умолчание 32768
    Диапазон 0 - 4294967039 (0xFFFFFEFF)
    Тип перезапуска IN

    Максимальное пространство в байтах для хранения статистики любого индекса в системных таблицах NDB и в кэш-памяти mysqld. В NDB 7.5 и ранее это потребляет IndexMemory.

    По крайней мере один образец всегда производится, независимо от любого предела размера. Этот размер масштабируется по IndexStatSaveScale.

    Размер, определенный IndexStatSaveSize, масштабируется по IndexStatTriggerPct для большого индекса с шагом 0.01. Это далее умножается на двоичный логарифм размера индекса. IndexStatTriggerPct = 0 отключает масштабирование.

  • IndexStatSaveScale

    Таблица 5.171. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации узла данных IndexStatSaveScale

    Свойство Значение
    Версия (или позже) NDB 7.5.0
    Тип или единица измерения Проценты
    Умолчание 100
    Диапазон 0 - 4294967039 (0xFFFFFEFF)
    Тип перезапуска IN

    Размер, определенный IndexStatSaveSize это значение масштабирования IndexStatTriggerPct для большого индекса с шагом 0.01. Это далее умножается на двоичный логарифм размера индекса. IndexStatTriggerPct = 0 отключает масштабирование.

  • IndexStatTriggerPct

    Таблица 5.172. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации узла данных IndexStatTriggerPct

    Свойство Значение
    Версия (или позже) NDB 7.5.0
    Тип или единица измерения Проценты
    Умолчание 100
    Диапазон 0 - 4294967039 (0xFFFFFEFF)
    Тип перезапуска IN

    Процентное изменение в обновлениях, которое вызывает обновление статистики индекса. Значение масштабируется IndexStatTriggerScale. Можно отключить этот механизм в целом, установив IndexStatTriggerPct = 0.

  • IndexStatTriggerScale

    Таблица 5.173. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации узла данных IndexStatTriggerScale

    Свойство Значение
    Версия (или позже) NDB 7.5.0
    Тип или единица измерения Проценты
    Умолчание 100
    Диапазон 0 - 4294967039 (0xFFFFFEFF)
    Тип перезапуска IN

    Масштабирует IndexStatTriggerPct с шагом 0.01 для большого индекса. Значение 0 отключает вычисление.

  • IndexStatUpdateDelay

    Таблица 5.174. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации узла данных IndexStatUpdateDelay

    Свойство Значение
    Версия (или позже) NDB 7.5.0
    Тип или единица измерения Секунды
    Умолчание 60
    Диапазон 0 - 4294967039 (0xFFFFFEFF)
    Тип перезапуска IN

    Минимальная задержка в секундах между автоматическим обновлением статистики для данного индекса. Урегулирование этой переменной в 0 отключает любую задержку. Умолчание составляет 60 секунд.

5.3.7. Определение SQL и других узлов API в NDB Cluster

Разделы [mysqld] и [api] в файле config.ini определяет поведение серверов MySQL (узлов SQL) и других приложений (узлов API) для доступа к данным. Ни один из показанных параметров не требуется обязательно. Если никакой компьютер или имя хоста не обеспечиваются, любой хост может использовать этот узел SQL или API.

Вообще говоря, секция [mysqld] используется, чтобы указать на сервер MySQL, предоставляющий интерфейс SQL, а раздел [api] используется для приложений кроме mysqld для доступа к данным, но эти два обозначения на самом деле синонимичны: можно, например, перечислить параметры для сервера MySQL, действующего как узел SQL, в разделе [api].

Для обсуждения возможностей сервера MySQL для NDB Cluster см. раздел 5.3.9.1. Для получения информации о системных переменных сервера MySQL, касающихся NDB Cluster, см. раздел 5.3.9.2.

Типы перезапуска. Информацию о типах перезапуска, используемых описаниями параметра в этой секции, показывают в следующей таблице:

Таблица 5.175. Типы перезапуска NDB Cluster

Символ Тип перезапуска Описание
N Node Параметр может быть обновлен, используя катящийся перезапуск (см. раздел 7.5 ).
S System Все узлы должны быть закрыты полностью, затем перезапущены, чтобы вызвать изменение в этом параметре.
I Initial Узлы данных должны быть перезапущены, используя опцию --initial .
  • Id

    Таблица 5.176. Эта таблица обеспечивает тип и информацию о значении для параметра Id

    Свойство Значение
    Версия (или позже) NDB 7.5.0
    Тип или единица измерения unsigned
    Умолчание [none]
    Диапазон 1 - 255
    Тип перезапуска IS

    Id это целочисленное значение, используемое, чтобы определить узел во всем кластере для внутренних сообщений. Разрешенный диапазон от 1 до 255 включительно. Это значение должно быть уникально для каждого узла, независимо от типа узла.

    ID узлов данных должны быть меньше 49, независимо от используемой версии NDB Cluster. Если вы планируете развернуть большое количество узлов данных, хорошая идея ограничить ID для узлов API (и узлов управления) значениями больше 48.

    NodeId это предпочтительное название параметра, чтобы использовать, определяя узлы API. Id продолжает поддерживаться для обратной совместимости, но теперь устарел и производит предупреждение, когда используется. Это также подвергается будущему удалению.

  • ConnectionMap

    Таблица 5.177. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации ConnectionMap

    Свойство Значение
    Версия (или позже) NDB 7.5.0
    Тип или единица измерения string
    Умолчание [none]
    Диапазон ...
    Тип перезапуска N

    Определяет, с которыми узлами данных надо соединиться.

  • NodeId

    Таблица 5.178. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации NodeId

    Свойство Значение
    Версия (или позже) NDB 7.5.0
    Тип или единица измерения unsigned
    Умолчание [none]
    Диапазон 1 - 255
    Тип перезапуска IS

    NodeId это целочисленное значение, используемое, чтобы определить узел во всем кластере для внутренних сообщений. Разрешенный диапазон от 1 до 255 включительно. Это значение должно быть уникально для каждого узла, независимо от типа узла.

    ID узлов данных должны быть меньше 49, независимо от используемой версии NDB Cluster. Если вы планируете развернуть большое количество узлов данных, хорошая идея ограничить ID для узлов API (и узлов управления) значениями больше 48.

    NodeId это предпочтительное название параметра, чтобы использовать, определяя узлы API. Id продолжает поддерживаться для обратной совместимости, но теперь устарел и производит предупреждение, когда используется. Это также подвергается будущему удалению.

  • ExecuteOnComputer

    Таблица 5.179. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации ExecuteOnComputer

    Свойство Значение
    Версия (или позже) NDB 7.5.0
    Тип или единица измерения Имя
    Умолчание [none]
    Диапазон ...
    Тип перезапуска S

    Это относится к Id для одного из компьютеров (хостов) в разделе [computer] конфигурационного файла.

    Этот параметр устарел с NDB 7.5.0 и подвергается удалению в будущем выпуске. Используйте вместо этого параметр HostName.

  • HostName

    Таблица 5.180. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации HostName

    Свойство Значение
    Версия (или позже) NDB 7.5.0
    Тип или единица измерения Имя или IP-адрес
    Умолчание [none]
    Диапазон ...
    Тип перезапуска N

    Определение этого параметра определяет имя хоста на котором должен находиться узел SQL (узел API). Чтобы определить имя хоста, нужен этот параметр или ExecuteOnComputer.

    Если не задан HostName или ExecuteOnComputer в разделе [mysql] или [api] файла config.ini, то узел SQL или API могут соединиться с использованием соответствующего слота с любого хоста, который может установить сетевое соединение с хост-машиной сервера управления. Это отличается от поведения по умолчанию для узлов данных, где localhost принят для HostName, если иное не определено .

  • LocationDomainId

    Таблица 5.181. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации LocationDomainId

    Свойство Значение
    Версия (или позже) NDB 7.6.4
    Тип или единица измерения integer
    Умолчание 0
    Диапазон 0 - 16
    Тип перезапуска S

    Назначает SQL или другой узел API определенной области доступности (также известной как зона доступности) в облаке. Сообщая NDB какие узлы в которых областях доступности находятся, работа может быть улучшена в облачной среде следующими способами:

    • Если запрошенные данные не найдены на том же самом узле, чтение может быть направлено к другому узлу в той же самой области доступности.

    • Связь между узлами в различных областях доступности, как гарантируют, будет использовать NDB-транспортер WAN без дальнейшего ручного вмешательства.

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

    • Арбитр может быть отобран из области доступности, в которой никакие узлы данных не присутствуют, или, если никакая такая область доступности не может быть найдена, из третьей области доступности.

    LocationDomainId берет целочисленное значение между 0 и 16 включительно, по умолчанию 0. Применение 0 аналогично сбросу параметра.

  • ArbitrationRank

    Таблица 5.182. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации ArbitrationRank

    Свойство Значение
    Версия (или позже) NDB 7.5.0
    Тип или единица измерения 0-2
    Умолчание 0
    Диапазон 0 - 2
    Тип перезапуска N

    Этот параметр определяет, какие узлы могут действовать как арбитры. Узлы управления и узлы SQL могут быть арбитрами. Значение 0 указывает, что данный узел никогда не используется в качестве арбитра, значение 1 дает высокий приоритет узла как арбитра, а значение 2 дает ему низкий приоритет. Нормальная конфигурация использует сервер управления в качестве арбитра, устанавливая ArbitrationRank = 1 (умолчание для узлов управления) и 0 для всех узлов SQL (умолчание для узлов SQL).

    Установка ArbitrationRank = 0 на всех узлах управления и SQL, можно выключить арбитраж полностью. Можно также управлять арбитражем, отвергая этот параметр, чтобы сделать так, установите Arbitration в разделе [ndbd default] файла config.ini.

  • ArbitrationDelay

    Таблица 5.183. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации ArbitrationDelay

    Свойство Значение
    Версия (или позже) NDB 7.5.0
    Тип или единица измерения Миллисекунды
    Умолчание 0
    Диапазон 0 - 4294967039 (0xFFFFFEFF)
    Тип перезапуска N

    Установка этого параметра в любое значение кроме 0 (умолчание) означает, что ответы арбитра на арбитражные запросы будут отложены на установленное количество миллисекунд. Обычно не надо изменять это значение.

  • BatchByteSize

    Таблица 5.184. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации BatchByteSize

    Свойство Значение
    Версия (или позже) NDB 7.5.0
    Тип или единица измерения Байты
    Умолчание 16K
    Диапазон 1K - 1M
    Тип перезапуска N

    Для запросов, которые переведены на полное сканирование таблицы или просмотры диапазона на индексах, для лучшей работы важно принести отчеты в пакетах правильного размера. Возможно установить надлежащий размер с точки зрения количества отчетов (BatchSize ) и с точки зрения байтов (BatchByteSize). Фактический пакетный размер ограничивается обоими параметрами.

    Скорость, с которой выполняются запросы, может измениться больше, чем на 40% в зависимости от того, как этот параметр устанавливается.

    Этот параметр измерен в байтах. Значение по умолчанию 16K.

  • BatchSize

    Таблица 5.185. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации BatchSize

    Свойство Значение
    Версия (или позже) NDB 7.5.0
    Тип или единица измерения Записи
    Умолчание 256
    Диапазон 1 - 992
    Тип перезапуска N

    Этот параметр измерен в количестве отчетов и по умолчанию 256. Максимальный размер 992.

  • ExtraSendBufferMemory

    Таблица 5.186. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации ExtraSendBufferMemory

    Свойство Значение
    Версия (или позже) NDB 7.5.0
    Тип или единица измерения Байты
    Умолчание 0
    Диапазон 0 - 4294967039 (0xFFFFFEFF)
    Тип перезапуска N

    Этот параметр определяет сумму буферной памяти передачи транспортера, чтобы ассигновать в дополнение к выеделенной, используя TotalSendBufferMemory и/или SendBufferMemory.

  • HeartbeatThreadPriority

    Таблица 5.187. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации HeartbeatThreadPriority

    Свойство Значение
    Версия (или позже) NDB 7.5.0
    Тип или единица измерения string
    Умолчание [none]
    Диапазон ...
    Тип перезапуска S

    Используйте этот параметр, чтобы установить политику планирования и приоритет потоков синхронизации для узлов API и управления. Синтаксис для установки этого параметра показывают здесь:

    HeartbeatThreadPriority = policy[, priority]
    policy:
    {FIFO | RR}
    

    Устанавливая этот параметр, необходимо определить политику. Это одно из FIFO (first in, first in) или RR (циклический алгоритм). Сопровождается произвольно приоритетом (целое число).

  • MaxScanBatchSize

    Таблица 5.188. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации MaxScanBatchSize

    Свойство Значение
    Версия (или позже) NDB 7.5.0
    Тип или единица измерения Байты
    Умолчание 256K
    Диапазон 32K - 16M
    Тип перезапуска N

    Пакетный размер это размер каждого пакета, посланного из каждого узла данных. Большинство просмотров выполняется параллельно, чтобы защитить MySQL Server от получения слишком большого количества данных от многих узлов параллельно, этот параметр устанавливает предел полного пакетного размера по всем узлам.

    Значение по умолчанию этого параметра установлено в 256 КБ. Его максимальный размер составляет 16 МБ.

  • TotalSendBufferMemory

    Таблица 5.189. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации TotalSendBufferMemory

    Свойство Значение
    Версия (или позже) NDB 7.5.0
    Тип или единица измерения Байты
    Умолчание 0
    Диапазон 256K - 4294967039 (0xFFFFFEFF)
    Тип перезапуска N

    Этот параметр используется, чтобы определить общую сумму памяти, чтобы ассигновать на этом узле для общего буфера передачи для всех формируемых транспортеров.

    Если этот параметр устанавливается, его минимальное значение составляет 256 КБ. 0 указывает, что параметр не был установлен. Для более подробной информации посмотрите раздел 5.3.13.

  • AutoReconnect

    Таблица 5.190. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации AutoReconnect

    Свойство Значение
    Версия (или позже) NDB 7.5.0
    Тип или единица измерения boolean
    Умолчание false
    Диапазон true, false
    Тип перезапуска N

    Этот параметр false по умолчанию. Это вызывает отключение узлов API (включая MySQL Servers, действующие как узлы SQL), чтобы использовать новую связь с кластером вместо того, чтобы пытаться снова использовать существующую, поскольку повторное использование связей может вызвать проблемы, используя динамично ассигнованный ID узла (Bug #45921).

    Этот параметр может быть отвергнут, используя API NDB. Для получения дополнительной информации см. Ndb_cluster_connection::set_auto_reconnect() и Ndb_cluster_connection::get_auto_reconnect().

  • DefaultOperationRedoProblemAction

    Таблица 5.191. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации DefaultOperationRedoProblemAction

    Свойство Значение
    Версия (или позже) NDB 7.5.0
    Тип или единица измерения enumeration
    Умолчание QUEUE
    Диапазон ABORT, QUEUE
    Тип перезапуска S

    Этот параметр (наряду с RedoOverCommitLimit и RedoOverCommitCounter) управляет обработкой операций узла данных, когда слишком много времени потрачено, сбрасывая журналы отката на диск. Это происходит, когда данный поток журнала отката занимает больше времени, чем RedoOverCommitLimit секунд больше, чем RedoOverCommitCounter раз, заставляя любые отложенные транзакции быть прерванными.

    Когда это происходит, узел может ответить любым из двух способов, согласно значению DefaultOperationRedoProblemAction:

    • ABORT: Любые ждущие операции от прерванных транзакций также прерываются.

    • QUEUE: Ждущие операции от транзакций, которые были прерваны, стоят в очереди, чтобы быть повторенными. Это умолчание. Операции все еще прерываются, когда журнал отката исчерпывает пространство то есть, когда происходят ошибки P_TAIL_PROBLEM.

  • DefaultHashMapSize

    Таблица 5.192. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации DefaultHashMapSize

    Свойство Значение
    Версия (или позже) NDB 7.5.0
    Тип или единица измерения buckets
    Умолчание 3840
    Диапазон 0 - 3840
    Тип перезапуска N

    Размер таблицы хэш-карт, используемой NDB, конфигурируется через использование этого параметра. DefaultHashMapSize может взять любое из трех возможных значений (0, 240, 3840). Эти значения и их эффекты описаны в следующей таблице.

    Таблица 5.193. Смысл значений DefaultHashMapSize

    Значение Смысл
    0 Используйте самое низкое значение, если есть, для этого параметра среди всех узлов данных и узлов API в кластере, если это не установлено ни на каких узлах данных или API, используйте значение по умолчанию.
    240 Оригинальный размер хэш-карты (используемый по умолчанию до NDB 7.2.7.
    3840 Больший размер хэш-карты (используемый по умолчанию в NDB 7.2.7 и позже)

    Оригинальное надлежащее использование для этого параметра должно было облегчить модернизации до и от более старых версий NDB Cluster, где отличался размер хэш-карты, вследствие того, что это изменение не было в других отношениях обратно совместимо. Это не проблема, модернизируя от NDB Cluster 7.5.

  • Wan

    Таблица 5.194. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации wan

    Свойство Значение
    Версия (или позже) NDB 7.5.0
    Тип или единица измерения boolean
    Умолчание false
    Диапазон true, false
    Тип перезапуска N

    Использовать по умолчанию настройки WAN TCP.

  • ConnectBackoffMaxTime

    Таблица 5.195. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации ConnectBackoffMaxTime

    Свойство Значение
    Версия (или позже) NDB 7.5.0
    Тип или единица измерения integer
    Умолчание 0
    Диапазон 0 - 4294967039 (0xFFFFFEFF)
    Тип перезапуска N

    В NDB Cluster с многими незапущенными узлами данных значение этого параметра может быть поднято, чтобы обойти попытки подключения к узлам данных, которые еще не начали функционировать, а также смягчить интенсивный трафик к узлам управления. Пока узел API не связан ни с какими новыми узлами данных, значение StartConnectBackoffMaxTime применяется, иначе используется ConnectBackoffMaxTime, чтобы определить отрезок времени в миллисекундах, который ждать между попытками подключения.

    Время, истекшее во время попыток подключения узла, не принято во внимание, вычисляя прошедшее время для этого параметра. Тайм-аут применяется приблизительно с точностью в 100 ms, начиная с задержи в 100 мс, для каждой последующей попытки удвоена длина этого периода, пока это не достигает ConnectBackoffMaxTime миллисекунд, максимум до 100000 мс (100 с).

    Как только узел API связан с узлом данных, и тот узел сообщил (в сообщении синхронизации), что это соединилось с другими узлами данных, попытки подключения к тем узлам данных больше не затрагиваются этим параметром и сделаны каждые 100 мс после соединения. Как только узел данных стартует, он может поднять HeartbeatIntervalDbApi для узла API, который будет зарегистрирован.

  • StartConnectBackoffMaxTime

    Таблица 5.196. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации StartConnectBackoffMaxTime

    Свойство Значение
    Версия (или позже) NDB 7.5.0
    Тип или единица измерения integer
    Умолчание 0
    Диапазон 0 - 4294967039 (0xFFFFFEFF)
    Тип перезапуска N

    В NDB Cluster с многими незапущенными узлами данных значение этого параметра может быть поднято, чтобы обойти попытки подключения к узлам данных, которые еще не начали функционировать, а также смягчить интенсивный трафик к узлам управления. Пока узел API не связан ни с какими новыми узлами данных, значение StartConnectBackoffMaxTime применяется, иначе используется ConnectBackoffMaxTime, чтобы определить отрезок времени в миллисекундах, который ждать между попытками подключения.

    Время, истекшее во время попыток подключения узла, не принято во внимание, вычисляя прошедшее время для этого параметра. Тайм-аут применяется приблизительно с точностью в 100 ms, начиная с задержи в 100 мс, для каждой последующей попытки удвоена длина этого периода, пока это не достигает ConnectBackoffMaxTime миллисекунд, максимум до 100000 мс (100 с).

    Как только узел API связан с узлом данных, и тот узел сообщил (в сообщении синхронизации), что это соединилось с другими узлами данных, попытки подключения к тем узлам данных больше не затрагиваются этим параметром и сделаны каждые 100 мс после соединения. Как только узел данных стартует, он может поднять HeartbeatIntervalDbApi для узла API, который будет зарегистрирован.

Параметры отладки узла API. Начиная с NDB 7.5.2, можно использовать ApiVerbose, чтобы позволить отладочную информацию от данного узла API. Этот параметр берет целочисленное значение. 0 умолчание, отключает такую отладку, 1 позволяет отладочную информацию в журнале кластера, 2 добавляет отладочную информацию DBDICT (Bug #20638450). См. также DUMP 1229.

Можно также получить информацию из сервера MySQL, работающего как узел SQL в NDB Cluster, применив SHOW STATUS в клиенте mysql:

mysql> SHOW STATUS LIKE 'ndb%';
+-----------------------------+----------------+
| Variable_name               | Value          |
+-----------------------------+----------------+
| Ndb_cluster_node_id         | 5              |
| Ndb_config_from_host        | 198.51.100.112 |
| Ndb_config_from_port        | 1186           |
| Ndb_number_of_storage_nodes | 4              |
+-----------------------------+----------------+
4 rows in set (0.02 sec)

Для получения информации о переменных статуса, появляющихся в выводе этого запроса, посмотрите раздел 5.3.9.3.

Чтобы добавить новык узлы SQL или API к конфигурации управления NDB Cluster, необходимо выполнить катящийся перезапуск всех узлов после добавления новых разделов [mysqld] или [api] в файл config.ini (или файлы, если вы используете больше одного сервера управления). Это должно быть сделано прежде, чем новые узлы SQL или API смогут соединиться с кластером.

Не надо выполнять любой перезапуск кластера, если новые узлы SQL или API могут использовать ранее неиспользованные слоты API в кластерной конфигурации, чтобы соединиться.

5.3.8. Определение системы

Раздел [system] используется для параметров, относящихся к кластеру в целом. Параметр Name используется с MySQL Enterprise Monitor, ConfigGenerationNumber и PrimaryMGMNode не используются в производственных средах. Кроме тех случаев, когда NDB Cluster используется с MySQL Enterprise Monitor, не надо иметь раздел [system] в файле config.ini.

Типы перезапуска. Информацию о типах перезапуска, используемых описаниями параметра в этой секции, показывают в следующей таблице:

Таблица 5.197. Типы перезапуска NDB Cluster

Символ Тип перезапуска Описание
N Node Параметр может быть обновлен, используя катящийся перезапуск (см. раздел 7.5 )
S System Все узлы должны быть закрыты полностью, затем перезапущены, чтобы вызвать изменение в этом параметре
I Initial Узлы данных должны быть перезапущены, используя опцию --initial

Больше информации об этих параметрах может быть найдено в следующем списке:

  • ConfigGenerationNumber

    Таблица 5.198. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации системы ConfigGenerationNumber

    Свойство Значение
    Версия (или позже) NDB 7.5.0
    Тип или единица измерения unsigned
    Умолчание 0
    Диапазон 0 - 4294967039 (0xFFFFFEFF)
    Тип перезапуска N

    Номер поколения конфигурации. Этот параметр в настоящее время не использован.

  • Name

    Таблица 5.199. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации системы Name

    Свойство Значение
    Версия (или позже) NDB 7.5.0
    Тип или единица измерения string
    Умолчание [none]
    Диапазон ...
    Тип перезапуска N

    Определите имя для кластера. Этот параметр требуется для развертывания с MySQL Enterprise Monitor, в других отношениях не использовано.

    Можно получить значение этого параметра, проверив переменную статуса Ndb_system_name. В приложених NDB API можно также узнать его через использование get_system_name().

  • PrimaryMGMNode

    Таблица 5.200. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации системы PrimaryMGMNode

    Свойство Значение
    Версия (или позже) NDB 7.5.0
    Тип или единица измерения unsigned
    Умолчание 0
    Диапазон 0 - 4294967039 (0xFFFFFEFF)
    Тип перезапуска N

    ID узла основного узла управления. Этот параметр в настоящее время не использован.

5.3.9. Опции и переменные MySQL Server для NDB Cluster

Эта секция предоставляет информацию об опциях и переменных сервера MySQL, которые являются определенными для NDB Cluster. Для получения общей информации об их использовании и других опциях и переменных, не определенных для NDB Cluster, см. The MySQL Server.

Для параметров кластерной конфигурации NDB, используемых в файле кластерной конфигурации (обычно config.ini), см. главу 5.

5.3.9.1. Опции MySQL Server для NDB Cluster

Эта секция предоставляет описания вариантов сервера mysqld, касающихся NDB Cluster. Для получения информации об опциях mysqld, не определенных для NDB Cluster, и для получения общей информации об использовании mysqld, см. Server Command Options.

Для получения информации о параметрах командной строки, используемых с другими процессами NDB Cluster ( ndbd, ndb_mgmd и ndb_mgm) см. раздел 6.32. Для получения информации о параметрах командной строки, используемых с утилитами NDB (такими, как ndb_desc, ndb_size.pl и ndb_show_tables) см. главу 6.

  • --ndbcluster

    Таблица 5.201. Тип и информация о значении для ndbcluster

    Свойство Значение
    Имя ndbcluster
    Командная строка Да
    Системная? Нет
    Файл опций Да
    Область действия
    Динамическая? Нет
    Тип: умолчание, диапазон boolean: OFF (версия 5.7)
    Примечания

    Включает NDB Cluster (если эта версия MySQL поддерживает его)

    Отключена через --skip-ndbcluster.

    Механизм хранения NDBCLUSTER необходим для использования NDB Cluster. Если mysqld включает поддержку NDBCLUSTER, механизм отключен по умолчанию. Используйте опцию --ndbcluster для его включения. Примените --skip-ndbcluster, чтобы явно отключить механизм.

    Нет надобности применять эту опцию с --initialize. Начиная с NDB 7.5.4, --ndbcluster проигнорирована (и NDB выключен), если также используется (Bug #81689, Bug #23518923).

  • --ndb-allow-copying-alter-table=[ON|OFF]

    Таблица 5.202. Тип и информация о значении для ndb-allow-copying-alter-table

    Свойство Значение
    Имя ndb-allow-copying-alter-table
    Командная строка Да
    Системная? Да
    Файл опций Да
    Область действия Both
    Динамическая? Да
    Тип: умолчание, диапазон boolean: ON (версия 5.7)
    Примечания

    Установите в OFF, чтобы помешать ALTER TABLE использовать копирование операций на таблицах NDB

    Позволет ALTER TABLE и другие операции использовать копирование на таблицах NDB. Установите в OFF, чтобы помешать этому. Это может улучшить исполнение важных приложений.

  • --ndb-batch-size=#

    Таблица 5.203. Тип и информация о значении для ndb-batch-size

    Свойство Значение
    Имя ndb-batch-size
    Командная строка Да
    Системная? Да
    Файл опций Да
    Область действия Везде
    Динамическая? Нет
    Тип: умолчание, диапазон integer: 32768 / 0 - 31536000 (версия 5.7)
    Примечания

    Размер (в байтах), чтобы использовать для операционных пакетов NDB

    Это устанавливает размер в байтах, который используется для операционных пакетов NDB.

  • --ndb-cluster-connection-pool=#

    Таблица 5.204. Тип и информация о значении для ndb-cluster-connection-pool

    Свойство Значение
    Имя ndb-cluster-connection-pool
    Командная строка Да
    Системная? Да
    Статусная? Да
    Файл опций Да
    Область действия Везде
    Динамическая? Нет
    Тип
    Умолчание и диапазон 1 / 1 - 63 (версия NDB 7.5-7.6)
    Примечания

    Количество связей с кластером для MySQL

    Устанавливая этот параметр в значение больше 1 (умолчание), процесс mysqld может использовать многократные связи с кластером, эффективно подражая нескольким узлам SQL. Каждая связь требует своего собственного раздела [api] или [mysqld] в файле (config.ini) и учитывается в максимальном количестве связей API.

    Предположим, что у вас есть 2 хоста кластера, каждый управляющий узлом SQL, процесс mysqld которого был запущен с --ndb-cluster-connection-pool=4, это означает, что кластер должен иметь 8 слотов API в наличии для этих связей (вместо 2). Все эти связи настраиваются, когда узел SQL соединяется с кластером и ассигнует потоки циклическим способом.

    Этот выбор полезен только выполняя mysqld на хост-машинах, имеющих много CPU, многократные ядра или оба варианта. Для лучших результатов значение должно быть меньше, чем общее количество ядер, доступных на хост-машине. Урегулирование его к значениям больше, чем это, вероятно, сильно ухудшит работу.

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

    Урегулирование ID узла в строке подключения, используя --ndb-cluster-connection-pool вызывает ошибки распределения ID, когда узел SQL пытается соединиться с кластером.

  • --ndb-cluster-connection-pool-nodeids=list

    Таблица 5.205. Тип и информация о значении для ndb-cluster-connection-pool-nodeids

    Свойство Значение
    Имя ndb-cluster-connection-pool-nodeids
    Командная строкаДа
    Системная?Да
    Файл опцийДа
    Область действияВезде
    Динамическая?Нет
    Тип: умолчание, диапазонset: / (версия 5.7)
    Примечания

    Список разделенных запятой значений ID узла для связей с кластером, применяемых MySQL, количество узлов в списке должно совпасть с набором значений для --ndb-cluster-connection-pool

    Определяет список разделенных запятой значений ID узла для связи с кластером, используемых узлом SQL. Количество узлов в этом списке должно совпасть с набором значений для опции --ndb-cluster-connection-pool.

    Добавлено в NDB 7.5.0.

  • --ndb-blob-read-batch-bytes=bytes

    Таблица 5.206. Тип и информация о значении для ndb-blob-read-batch-bytes

    Свойство Значение
    Имя ndb-blob-read-batch-bytes
    Командная строка Да
    Системная? Да
    Файл опций Да
    Область действия Both
    Динамическая? Да
    Тип: умолчание, диапазон integer: 65536 / 0 - 4294967295 (версия 5.7)
    Примечания

    Определяет размер пакета в байтах для чтения большого BLOB. 0 = безлимитно.

    Этот выбор может использоваться, чтобы установить размер (в байтах) для пакета чтения BLOB в приложениях NDB Cluster. Когда этот пакетный размер превышен суммой данных BLOB, которые будут прочитаны в текущей транзакции, любые ждущие операции чтения BLOB немедленно выполняются.

    Максимальное значение для этого выбора равняется 4294967295, умолчание 65536. Установка в 0 имеет эффект выключения пакетного чтения BLOB.

    В приложениях NDB API можно управлять пакетной записью BLOB через методы setMaxPendingBlobReadBytes() и getMaxPendingBlobReadBytes() .

  • --ndb-blob-write-batch-bytes=bytes

    Таблица 5.207. Тип и информация о значении для ndb-blob-write-batch-bytes

    Свойство Значение
    Имя ndb-blob-write-batch-bytes
    Командная строка Да
    Системная? Да
    Файл опций Да
    Область действия Both
    Динамическая? Да
    Тип: умолчание, диапазон integer: 65536 / 0 - 4294967295 (версия 5.7)
    Примечания

    Определяет размер в байтах пакетов записи BLOB. 0 = безлимитно.

    Этот выбор может использоваться, чтобы установить размер (в байтах) для пакетной записи BLOB в NDB Cluster. Когда этот пакетный размер превышен суммой BLOB для записи в текущей транзакции, любые ждущие операции записи BLOB немедленно выполняются.

    Максимальное значение для этого выбора равняется 4294967295, умолчание 65536. Установка его в 0 имеет эффект выключения пакетной записи BLOB.

    В NDB API можно управлять пакетной записью через методы BLOB setMaxPendingBlobWriteBytes() и getMaxPendingBlobWriteBytes() .

  • --ndb-connectstring=connection_string

    Таблица 5.208. Тип и информация о значении для ndb-connectstring

    Свойство Значение
    Имя ndb-connectstring
    Командная строка Да
    Системная? Нет
    Файл опций Да
    Область действия
    Динамическая? Нет
    Тип: умолчание, диапазон string: (версия 5.7)
    Примечания

    Укажите на сервер управления, который распределяет кластерную конфигурацию

    Используя NDBCLUSTER, этот выбор определяет сервер управления, который распределяет данные о кластерной конфигурации. Посмотрите раздел 5.3.3.

  • --ndb-default-column-format=[FIXED|DYNAMIC]

    Таблица 5.209. Тип и информация о значении для ndb-default-column-format

    Свойство Значение
    Имя ndb-default-column-format
    Командная строка Да
    Системная? Да
    Файл опций Да
    Область действия Везде
    Динамическая? Да
    Тип: умолчание, диапазон enumeration: DYNAMIC / FIXED, DYNAMIC (версия 7.5.1)
    Тип: умолчание, диапазон enumeration: FIXED / FIXED, DYNAMIC (версия 7.5.4)
    Примечания

    Используйте это значение (FIXED или DYNAMIC) по умолчанию для COLUMN_FORMAT и вариантов ROW_FORMAT, создавая или добавляя колонки к таблице.

    В NDB 7.5.1 и позже устанавливает умолчание COLUMN_FORMAT и ROW_FORMAT для новых таблиц (см. CREATE TABLE Statement).

    В NDB 7.5.1 умолчание для этого выбора было DYNAMIC, в NDB 7.5.4 умолчание было изменено на FIXED, чтобы поддержать обратную совместимость с более старым рядом выпусков (Bug #24487363).

  • --ndb-deferred-constraints=[0|1]

    Таблица 5.210. Тип и информация о значении для ndb-deferred-constraints

    Свойство Значение
    Имя ndb-deferred-constraints
    Командная строка Да
    Системная? Да
    Файл опций Да
    Область действия Both
    Динамическая? Да
    Тип: умолчание, диапазон integer: 0 / 0 - 1 (версия 5.7)
    Примечания

    Определяет, что проверка ограничения уникальных индексов (где они поддерживаются), должна быть отсрочена до времени передачи. Обычно не надо, применяется только для целей тестирования.

    Управляет, отсрочены ли проверки ограничения уникальных индексов до времени передачи, где такие проверки поддерживаются. Умолчание 0.

    Этот выбор обычно не нужен для работы NDB Cluster или NDB Cluster Replication.

  • --ndb-distribution=[KEYHASH|LINHASH]

    Таблица 5.211. Тип и информация о значении для ndb-distribution

    Свойство Значение
    Имя ndb-distribution
    Командная строка Да
    Системная? Да
    Файл опций Да
    Область действия Везде
    Динамическая? Да
    Тип: умолчание, диапазон enumeration: KEYHASH / LINHASH, KEYHASH (версия 5.7)
    Примечания

    Распределение По умолчанию для новых таблиц в NDBCLUSTER (KEYHASH или LINHASH, по умолчанию KEYHASH)

    Управляет методом распределения по умолчанию для таблиц NDB. Может быть установлен в любое из KEYHASH (хеширование ключа) или LINHASH (линейное хеширование). Умолчание KEYHASH.

  • --ndb-log-apply-status

    Таблица 5.212. Тип и информация о значении для ndb-log-apply-status

    Свойство Значение
    Имя ndb-log-apply-status
    Командная строка Да
    Системная? Да
    Файл опций Да
    Область действия Везде
    Динамическая? Нет
    Тип: умолчание, диапазон boolean: OFF (версия 5.7)
    Примечания

    Заставьте сервер MySQL, действующий как ведомый, регистрировать обновления mysql.ndb_apply_status, полученные от его непосредственного ведущего, в его собственном двоичном журнале, используя собственный ID сервера. Эффективно только если сервер запущен с опцией --ndbcluster.

    Заставляет ведомый mysqld регистрировать любые обновления, полученные от его непосредственного ведущего, в таблице mysql.ndb_apply_status в его собственноом двоичном журнале, используя его собственный ID сервера, а не ID ведущего сервера. В кольцевой или цепной репликации это позволяет таким обновлениям размножаться по таблицам mysql.ndb_apply_status любых серверов MySQL, формируемых как ведомые текущего mysqld.

    В установке цепной репликации использование этого выбора позволяет ведомому кластеру знать об их положениях относительно всех их ведущих.

    В кольцевой репликации этот выбор вызывает изменения таблиц ndb_apply_status, чтобы закончить всю схему, в конечном счете размножая назад к исходному NDB Cluster. Это также позволяет кластеру, действующему как ведущий, видеть, когда ее изменения (эпохи) были применены к другим кластерам кольца.

    Этот выбор не имеет никакого эффекта, если сервер MySQL не запущен с опцией --ndbcluster.

  • --ndb-log-empty-epochs=[ON|OFF]

    Таблица 5.213. Тип и информация о значении для ndb-log-empty-epochs

    Свойство Значение
    Имя ndb-log-empty-epochs
    Командная строка Да
    Системная? Да
    Файл опций Да
    Область действия Везде
    Динамическая? Да
    Тип: умолчание, диапазон boolean: OFF (версия 5.7)
    Примечания

    Когда позволено, эпохи, в которые не было никаких изменений, будут написаны в таблицы ndb_apply_status и ndb_binlog_index, даже когда позволено --log-slave-updates.

    Эпохи, в течение которых не было никаких изменений, будут написаны в таблицы ndb_apply_status и ndb_binlog_index, даже когда включена опция log_slave_updates.

    По умолчанию этот выбор отключен. При выключении --ndb-log-empty-epochs транзакции эпохи без изменений не будут написаны в двоичный журнал, хотя строка все еще написана даже в течение пустой эпохи в ndb_binlog_index.

    Поскольку --ndb-log-empty-epochs=1 вызывает увеличение размера таблицы ndb_binlog_index независимо от размера двоичного журнала, пользователи должны быть готовы справиться с ростом этой таблицы, даже если они ожидают, что кластер будет неработающим значительную часть времени.

  • --ndb-log-empty-update=[ON|OFF]

    Таблица 5.214. Тип и информация о значении для ndb-log-empty-update

    Свойство Значение
    Имя ndb-log-empty-update
    Командная строка Да
    Системная? Да
    Файл опций Да
    Область действия Везде
    Динамическая? Да
    Тип: умолчание, диапазон boolean: OFF (версия 5.7)
    Примечания

    Когда позволено, обновления, которые не вызвали изменений, будут написаны в таблицы ndb_apply_status и ndb_binlog_index, даже при включении --log-slave-updates.

    Обновления, которые не вызвали изменений, будут написаны в таблицы ndb_apply_status и ndb_binlog_index даже при включении log_slave_updates.

    По умолчанию этот выбор отключен (OFF). Выключение --ndb-log-empty-update не пишет в двоичный журнал обновления без изменений.

  • --ndb-log-exclusive-reads=[0|1]

    Таблица 5.215. Тип и информация о значении для ndb-log-exclusive-reads

    Свойство Значение
    Имя ndb-log-exclusive-reads
    Командная строка Да
    Системная? Да
    Файл опций Да
    Область действия Both
    Динамическая? Да
    Тип: умолчание, диапазон boolean: 0 (версия 5.7)
    Примечания

    Журналировать чтение первичного ключа с монопольными блокировками, позволяет разрешение конфликтов на основе конфликтов чтения

    Старт сервера с этой опцией предписывает регистрировать чтения первичных ключей с монопольными блокировками, что допускает обнаружение конфликта NDB Cluster Replication и решение на основе конфликтов чтения. Можно также позволить и отключить эти блокировки во время выполнения, установив значение ndb_log_exclusive_reads соответственно в 1 или 0. 0 (выключено) является умолчанием.

    Для получения дополнительной информации посмотрите здесь.

  • --ndb-log-orig

    Таблица 5.216. Тип и информация о значении для ndb-log-orig

    Свойство Значение
    Имя ndb-log-orig
    Командная строка Да
    Системная? Да
    Файл опций Да
    Область действия Везде
    Динамическая? Нет
    Тип: умолчание, диапазон boolean: OFF (версия 5.7)
    Примечания

    Писать оригинальный id сервера и эпоху в таблицу mysql.ndb_binlog_index

    Это позволяет в течение данной эпохи иметь многократные строки в ndb_binlog_index, одну в течение каждой эпохи возникновения.

    См. раздел 8.4.

  • --ndb-log-transaction-id

    Таблица 5.217. Тип и информация о значении для ndb-log-transaction-id

    Свойство Значение
    Имя ndb-log-transaction-id
    Командная строка Да
    Системная? Да
    Файл опций Да
    Область действия Везде
    Динамическая? Нет
    Тип: умолчание, диапазон boolean: OFF (версия 5.7)
    Примечания

    Писать ID транзакции NDB в двоичный журнал. Требует --log-bin-v1-events=OFF.

    Заставляет ведомого mysqld писать ID транзакции NDB в каждой строке двоичного журнала. Такая регистрация требует использования формата событий Version 2 для двоичной регистрации, таким образом, системная переменная log_bin_use_v1_row_events должна быть отключена, чтобы использовать этот выбор.

    Этот выбор не поддерживается в MySQL Server 5.7. Это требуется, чтобы позволять обнаружение конфликта репликации NDB Cluster и решение, используя функцию NDB$EPOCH_TRANS() (см. NDB$EPOCH_TRANS()).

    Значение по умолчанию FALSE.

    См. раздел 8.11.

  • --ndb-log-update-minimal

    Таблица 5.218. Тип и информация о значении для ndb-log-update-minimal

    Свойство Значение
    Имя ndb-log-update-minimal
    Командная строка Да
    Системная? Да
    Файл опций Да
    Область действия Везде
    Динамическая? Да
    Тип: умолчание, диапазон boolean: OFF (версия NDB 7.5-7.6)
    Тип: умолчание, диапазон boolean: OFF (версия 7.5.7)
    Тип: умолчание, диапазон boolean: OFF (версия 7.6.3)
    Примечания

    Регистрация обновлений в минимальном формате.

    Регистрация обновлений минимальным способом, записывая только значения первичного ключа в исходном виде и только измененные колонки. Это может вызвать проблемы совместимости, копируя к механизмам хранения кроме NDB.

  • --ndb-mgmd-host=host[:port]

    Таблица 5.219. Тип и информация о значении для ndb-mgmd-host

    Свойство Значение
    Имя ndb-mgmd-host
    Командная строка Да
    Системная? Нет
    Файл опций Да
    Область действия
    Динамическая? Нет
    Тип: умолчание, диапазон string: localhost:1186 (версия 5.7)
    Примечания

    Установите хост (и порт при желании) для соединения с сервером управления

    Может использоваться, чтобы установить хост и номер порта единственного сервера управления. Если программа требует ID узла или ссылки на многократные серверы управления, в информации о связи, используйте опцию --ndb-connectstring.

  • --ndb-nodeid=#

    Таблица 5.220. Тип и информация о значении для ndb-nodeid

    Свойство Значение
    Имя ndb-nodeid
    Командная строка Да
    Системная? Нет
    Статусная? Да
    Файл опций Да
    Область действия Везде
    Динамическая? Нет
    Тип
    Умолчание и диапазон / 1 - 63 (версия 5.0.45)
    Умолчание и диапазон / 1 - 255 (версия 5.1.5)
    Примечания

    ID узла NDB Cluster для этого сервера MySQL

    Установите ID этого узла сервера MySQL в NDB Cluster.

    --ndb-nodeid отвергает любой ID узла в --ndb-connectstring, независимо от порядка, в котором используются эти два варианта.

    Кроме того, если используется --ndb-nodeid, любой соответствующий ID узла, который должен быть найден в разделах [mysqld] or [api] config.ini, или должна быть открытая секция [mysqld] или [api] в файле (то есть, секция без параметра NodeId или Id). Это также верно, если ID узла определяется как часть строки подключения.

    Независимо от того, как узел определяется, ID показан как значение глобальной переменной статуса Ndb_cluster_node_id в выводе SHOW STATUS и как cluster_node_id в строке connection вывода SHOW ENGINE NDBCLUSTER STATUS .

    Для получения дополнительной информации об ID узла для узлов SQL в NDB Cluster см. раздел 5.3.7.

  • --ndb-optimization-delay= milliseconds

    Таблица 5.221. Тип и информация о значении для ndb-optimization-delay

    Свойство Значение
    Имя ndb-optimization-delay
    Командная строка Да
    Системная? Да
    Файл опций Да
    Область действия Везде
    Динамическая? Да
    Тип: умолчание, диапазон integer: 10 / 0 - 100000 (версия NDB 7.5-7.6)
    Примечания

    Определите номер миллисекунд, чтобы ждать между обработкой наборов строк в OPTIMIZE TABLE на таблицах NDB

    Определите номер миллисекунд, чтобы ждать между обработкой наборов строк на таблицах NDB в OPTIMIZE TABLE. Умолчание 10.

  • ndb-transid-mysql-connection-map=state

    Таблица 5.222. Тип и информация о значении для ndb-transid-mysql-connection-map

    Свойство Значение
    Имя ndb-transid-mysql-connection-map
    Командная строка Да
    Системная? Нет
    Файл опций Нет
    Область действия
    Динамическая? Нет
    Тип: умолчание, диапазон enumeration: ON / ON, OFF, FORCE (версия 5.7)
    Примечания

    Включите или отключите плагин ndb_transid_mysql_connection_map, то есть, позвольте или отключите таблицу INFORMATION_SCHEMA, имеющую это имя

    Позволяет или отключает плагин, который обращается к таблице Enables or disables the plugin that handles the ndb_transid_mysql_connection_map в базе данных INFORMATION_SCHEMA. Принимает одно из значений ON, OFF или FORCE. ON (умолчание) позволяет плагин. OFF отключает плагин, что делает недоступной ndb_transid_mysql_connection_map. FORCE мешает MySQL Server запускаться, если плагин не загружается.

    Вы видите работает ли плагин ndb_transid_mysql_connection_map , проверяя вывод SHOW PLUGINS.

  • --ndb-wait-connected=seconds

    Таблица 5.223. Тип и информация о значении для ndb-wait-connected

    Свойство Значение
    Имя ndb-wait-connected
    Командная строка Да
    Системная? Да
    Файл опций Да
    Область действия Везде
    Динамическая? Нет
    Тип: умолчание, диапазон integer: 0 / 0 - 31536000 (версия 5.7)
    Тип: умолчание, диапазон integer: 30 / 0 - 31536000 (версия NDB 7.5-7.6)
    Тип: умолчание, диапазон integer: 0 / 0 - 31536000 (версия 5.7)
    Тип: умолчание, диапазон integer: 30 / 0 - 31536000 (версия NDB 7.5-7.6)
    Примечания

    Время (в секундах) для сервера MySQL, чтобы ждать связи с управлением кластером и узлами данных прежде, чем принять связи от клиента MySQL

    Этот выбор устанавливает промежуток времени, которое сервер MySQL ждет связей с управлением NDB Cluster и узлами данных, которые будут установлены прежде, чем принять связи от клиента MySQL. Время определяется в секундах. Значение по умолчанию 30.

  • --ndb-wait-setup=seconds

    Таблица 5.224. Тип и информация о значении для ndb-wait-setup

    Свойство Значение
    Имя ndb-wait-setup
    Командная строка Да
    Системная? Да
    Файл опций Да
    Область действия Везде
    Динамическая? Нет
    Тип: умолчание, диапазон integer: 15 / 0 - 31536000 (версия NDB 7.5-7.6)
    Тип: умолчание, диапазон integer: 15 / 0 - 31536000 (версия NDB 7.5-7.6)
    Тип: умолчание, диапазон integer: 15 / 0 - 31536000 (версия NDB 7.5-7.6)
    Тип: умолчание, диапазон integer: 30 / 0 - 31536000 (версия NDB 7.5-7.6)
    Тип: умолчание, диапазон integer: 15 / 0 - 31536000 (версия NDB 7.5-7.6)
    Тип: умолчание, диапазон integer: 30 / 0 - 31536000 (версия NDB 7.5-7.6)
    Примечания

    Время (в секундах) для сервера MySQL, чтобы ждать установки механизма NDB

    Эта переменная показывает промежуток времени, который сервер MySQL ждет инициализации NDB прежде тайм-аута и признания недоступным NDB. Время определяется в секундах. Значение по умолчанию 30.

  • --skip-ndbcluster

    Таблица 5.225. Тип и информация о значении дляskip-ndbcluster

    Свойство Значение
    Имя skip-ndbcluster
    Командная строкаДа
    Системная?Нет
    Файл опцийДа
    Область действия
    Динамическая?Нет
    Примечания

    Выключает NDB Cluster.

    Выключает NDBCLUSTER. Это умолчание для исполняемых модулей, которые были построены с поддержкой NDBCLUSTER, сервер ассигнует память и другие ресурсы для этого механизма хранения только, если явно дана опция --ndbcluster. См. раздел 5.1.

5.3.9.2. Переменные NDB Cluster

Эта секция предоставляет подробную информацию о системных переменных сервера MySQL, которые являются определенными для NDB Cluster и NDB. Для системных переменных, не определенных для NDB Cluster, см. Server System Variables. Для получения общей информации об использовании системных переменных посмотрите Using System Variables.

  • ndb_autoincrement_prefetch_sz

    Свойство Значение
    Командная строка --ndb-autoincrement-prefetch-sz=#
    Системная? ndb_autoincrement_prefetch_sz
    Область действия Global, Session
    Динамическая? Да
    Тип Integer
    Умолчание 1
    Минимум 1
    Максимум 65536

    Определяет вероятность промежутков в столбце autoincrement. Установите в 1, чтобы минимизировать это. Урегулирование к высокому значению для оптимизации делает вставки быстрее, но уменьшает вероятность, что последовательные числа автоприращения будут использоваться в пакете вставок.

    Эта переменная затрагивает только количество AUTO_INCREMENT ID, которые получены между запросами, в рамках данного запроса по крайней мере 32 ID получены за один раз.

    Эта переменная не затрагивает вставки через INSERT ... SELECT.

  • ndb_cache_check_time

    Свойство Значение
    Командная строка --ndb-cache-check-time=#
    Deprecated 5.7.20
    Системная? ndb_cache_check_time
    Область действия Везде
    Динамическая? Да
    Тип Integer
    Умолчание 0

    Количество миллисекунд, которые протекают между проверками узлов SQL NDB Cluster кэша запроса MySQL. Урегулирование этого к 0 (значение по умолчанию и минимальное значение) означает, что кэш запроса проверяется на каждом запросе.

    Рекомендуемое максимальное значение для этой переменной 1000, что означает, что проверка выполнена однажды в секунду. Большое значение означает, что проверка выполнена из-за обновлений на различных узлах SQL менее часто. Обычно нежелательно установить это в значение, больше 2000.

    Кэш запроса устарел с MySQL 5.7.20 и снесен в MySQL 8.0. Устаревание включает ndb_cache_check_time.

  • ndb_clear_apply_status

    Свойство Значение
    Командная строка --ndb-clear-apply-status[={OFF|ON}]
    Системная? ndb_clear_apply_status
    Область действия Везде
    Динамическая? Да
    Тип Boolean
    Умолчание ON

    По умолчанию, выполнение RESET SLAVE заставляет ведомого репликации NDB Cluster производить чистку всех строк таблицы ndb_apply_status. Можно отключить это, установив ndb_clear_apply_status=OFF.

  • ndb_data_node_neighbour

    Свойство Значение
    Командная строка --ndb-data-node-neighbour=#
    Добавлено в 5.7.12-ndb-7.5.2
    Системная? ndb_data_node_neighbour
    Область действия Везде
    Динамическая? Да
    Тип Integer
    Умолчание 0
    Минимум 0
    Максимум 255

    Устанавливает ID самого близкого узла данных, то есть, предпочтительный нелокальный узел данных выбран, чтобы выполнить транзакцию, а не работа на том же самом хосте, где узел API или SQL. Это раньше гарантировало, чтобы, когда к полностью копируемой таблице получают доступ, мы получили доступ к ней на этом узле данных, чтобы гарантировать, что местная копия таблицы всегда используется, когда это возможно. Это может также использоваться для обеспечения подсказок для транзакций.

    Это может улучшить времена доступа к данным в случае узла, который физически ближе, и таким образом имеет более высокую сетевую пропускную способность, чем другие на том же самом хосте.

    См. Setting NDB_TABLE Options.

    Добавлено в NDB 7.5.2.

    Эквивалентный метод set_data_node_neighbour() обеспечивается для использования в приложениях API NDB.

  • ndb_default_column_format

    Свойство Значение
    Командная строка --ndb-default-column-format={FIXED|DYNAMIC}
    Добавлено в 5.7.11-ndb-7.5.1
    Системная? ndb_default_column_format
    Область действия Везде
    Динамическая? Да
    Тип Enumeration
    Умолчание (>= 5.7.16-ndb-7.5.4) FIXED
    Умолчание (>= 5.7.11-ndb-7.5.1, <= 5.7.13-ndb-7.5.3) DYNAMIC
    Допустимые значения

    FIXED

    DYNAMIC

    В NDB 7.5.1 и позже устанавливает умолчание COLUMN_FORMAT и ROW_FORMAT для новых таблиц (см. CREATE TABLE Statement).

    В NDB 7.5.1 умолчание для этой переменной было DYNAMIC. В NDB 7.5.4 умолчание было изменено на FIXED, чтобы поддержать совместимость с более старым рядом выпусков (Bug #24487363).

  • ndb_deferred_constraints

    Свойство Значение
    Командная строка --ndb-deferred-constraints=#
    Системная? ndb_deferred_constraints
    Область действия Global, Session
    Динамическая? Да
    Тип Integer
    Умолчание 0
    Минимум 0
    Максимум 1

    Управляет, отсрочены ли ограничительные проверки, где они поддерживаются. По умолчанию 0.

    Эта переменная обычно не нужна для NDB Cluster или NDB Cluster Replication и предназначается, прежде всего, для использования в тестировании.

  • ndb_distribution

    Свойство Значение
    Командная строка --ndb-distribution={KEYHASH|LINHASH}
    Системная? ndb_distribution
    Область действия Везде
    Динамическая? Да
    Тип Enumeration
    Умолчание KEYHASH
    Допустимые значения

    LINHASH

    KEYHASH

    Управляет методом распределения по умолчанию для таблиц NDB. Может быть установлен в любое из значений KEYHASH (хеширование ключа) или LINHASH (линейное хеширование). Умолчание KEYHASH.

  • ndb_eventbuffer_free_percent

    Свойство Значение
    Командная строка --ndb-eventbuffer-free-percent=#
    Системная? ndb_eventbuffer_free_percent
    Область действия Везде
    Динамическая? Да
    Тип Integer
    Умолчание 20
    Минимум 1
    Максимум 99

    Устанавливает процент максимальной памяти, ассигнованной буферу событий (ndb_eventbuffer_max_alloc), который должен быть доступным в буфере событий после достижения максимума, прежде, чем начать буферизовать снова.

  • ndb_eventbuffer_max_alloc

    Свойство Значение
    Командная строка --ndb-eventbuffer-max-alloc=#
    Системная? ndb_eventbuffer_max_alloc
    Область действия Везде
    Динамическая? Да
    Тип Integer
    Умолчание 0
    Минимум 0
    Максимум 4294967295

    Устанавливает максимальную память (в байтах), которая может быть ассигнована для того, чтобы буферизовать события API NDB. 0 значит, что никакое ограничение не наложено и является умолчанием.

  • ndb_extra_logging

    Свойство Значение
    Командная строка ndb_extra_logging=#
    Системная? ndb_extra_logging
    Область действия Везде
    Динамическая? Да
    Тип Integer
    Умолчание 1

    Эта переменная позволяет делать запись в журнале ошибок MySQL информации, определенной для NDB.

    Когда эта переменная установлена в 0, единственная информация, определенная для NDB, которая написана в журнал ошибок MySQL, касается операционной обработки. Если это установило в значение больше 0, но меньше 10, схема таблицы NDB и события связи также зарегистрированы, а также используется ли разрешение конфликтов и другая информация и ошибки NDB. Если значение установлено в 10 или больше, информация о внутренностях NDB, таких как прогресс распределения данных среди узлов, также написаны в журнал ошибок MySQL. Умолчание 1.

  • ndb_force_send

    Свойство Значение
    Командная строка --ndb-force-send[={OFF|ON}]
    Системная? ndb_force_send
    Область действия Global, Session
    Динамическая? Да
    Тип Boolean
    Умолчание ON

    Принудительно послать буферы в NDB немедленно, не ожидая других потоков. Умолчание ON.

  • ndb_fully_replicated

    Свойство Значение
    Командная строка --ndb-fully-replicated[={OFF|ON}]
    Добавлено в 5.7.12-ndb-7-5-2
    Системная? ndb_fully_replicated
    Область действия Global, Session
    Динамическая? Да
    Тип Boolean
    Умолчание OFF

    Определяет, копируются ли полностью новые таблицы NDB. Это может быть отвергнуто для отдельной таблицы через COMMENT="NDB_TABLE=FULLY_REPLICATED=..." в CREATE TABLE или ALTER TABLE, см. Setting NDB_TABLE Options.

    Добавлено в NDB 7.5.2.

  • ndb_index_stat_enable

    Свойство Значение
    Командная строка --ndb-index-stat-enable[={OFF|ON}]
    Системная? ndb_index_stat_enable
    Область действия Global, Session
    Динамическая? Да
    Тип Boolean
    Умолчание ON

    Использовать статистику индекса в оптимизации запросов NDB. Умолчание ON.

  • ndb_index_stat_option

    Свойство Значение
    Командная строка --ndb-index-stat-option=value
    Системная? ndb_index_stat_option
    Область действия Global, Session
    Динамическая? Да
    Тип String
    Умолчание loop_checkon=1000ms,loop_idle=1000ms, loop_busy=100ms,update_batch=1,read_batch=4,idle_batch=32,check_batch=32, check_delay=1m,delete_batch=8,clean_delay=0,error_batch=4,error_delay=1m, evict_batch=8,evict_delay=1m,cache_limit=32M,cache_lowpct=90

    Эта переменная используется для того, чтобы предоставить возможности настройки статистики индекса NDB. Список состоит из отделенных запятой пар имя=значение, и этот список не должен содержать пробелы.

    Варианты, не используемые, устанавливая ndb_index_stat_option, не изменяются от их значений по умолчанию. Например, можно установить ndb_index_stat_option = 'loop_idle=1000ms,cache_limit=32M'.

    Временные значения могут быть произвольно оснащены суффиксами h (часы), m (минуты) или s (секунды). Значения миллисекунд могут произвольно быть определены, используя ms, значения миллисекунд не могут быть определены, используя h, m или s. Целочисленные значения могут быть оснащены суффиксом K, M или G.

    Названия опций, которые могут быть установлены, используя эту переменную, показывают в таблице ниже. Таблица также предоставляет краткие описания, значения по умолчанию и (где применимо) минимальные и максимальные значения.

    Таблица 5.226. Опции и значения ndb_index_stat_option

    Имя Описание Умолчание Минимум и максимум
    loop_enable 1000 ms0/4G
    loop_idle Время, чтобы спать при простое1000 ms0/4G
    loop_busy Время, чтобы спать, когда ждет задачу100 ms 0/4G
    update_batch 10/4G
    read_batch 41/4G
    idle_batch 321/4G
    check_batch 81/4G
    check_delay Как часто проверять на новую статистику 10 m1/4G
    delete_batch 80/4G
    clean_delay 1 m0/4G
    error_batch 41/4G
    error_delay 1 m1/4G
    evict_batch 81/4G
    evict_delay Очистить кэш LRU со времени чтения 1 m0/4G
    cache_limit Максимальный объем памяти в байтах для кэширования статистики индекса этим mysqld, кэш очищается, когда это будет превышено 32 M0/4G
    cache_lowpct 900/100
    zero_total Установка в 1 сбрасывает все аккумулирующие счетчики в ndb_index_stat_status в 0. Это значение также сбрасывает в 0, когда это сделано 00/1
  • ndb_join_pushdown

    Свойство Значение
    Системная? ndb_join_pushdown
    Область действия Global, Session
    Динамическая? Да
    Тип Boolean
    Умолчание ON

    Это управляет спущены ли соединения на таблицах NDB ядру NDB (узлы данных). Ранее соединение было обработано, используя многократные доступы NDB к узлам SQL, однако, когда ndb_join_pushdown включен, соединение посылают в целом в узлы данных, где оно может быть распределено среди узлов данных и выполнено параллельно на многочисленных копиях данных с единственным, слитым результатом, возвращаемым mysqld. Это может значительно сократить количество циклов обработки между узлом SQL и узлами данных, требуемыми, чтобы обращаться с таким соединением.

    По умолчанию ndb_join_pushdown включено.

    Условия для спуска соединения NDB. Для соединения, чтобы быть спущенным, это должно отвечать следующим условиям:

    1. Только колонки могут быть сравнены, и все колонки, к которым присоединятся, должны использовать точно тот же самый тип данных.

      Это означает, что такие выражения, как t1.a = t2.a + constant не могут быть спущены, и что (например), соединения на столбце INT и столбце BIGINT тоже не могут быть спущены.

    2. Запросы, ссылающиеся на столбцы BLOB или TEXT, не поддерживаются.

    3. Явные блокировки не поддерживаются, однако, особенность NDB неявной блокировки строки проведена в жизнь.

      Это означает что использование соединения FOR UPDATE не может быть спущено.

    4. Для соединения, которое будет спущено, к дочерним таблицам в соединении нужно получить доступ, используя один из методов ref, eq_ref или const или некоторую комбинацию этих методов.

      Внешние дочерние таблицы, к которым присоединяются, могут быть спущены, используя только eq_ref.

      Если корень соединения eq_ref или const, только дочерние таблицы, к которым присоединяются eq_ref могут быть добавлены. Таблица, к которой присоединяются через ref вероятно, станет корнем другого спускаемого соединения.

      Если оптимизатор запросов выбирает Using join cache для кандидата дочерней таблицы, эта таблица не может быть спущена как наследник. Однако, это может быть корнем другого набора спускаемых таблиц.

    5. Соединения, ссылающиеся на таблицы, явно разделенные [LINEAR] HASH, LIST или RANGE, в настоящее время не могут спускаться.

    Вы видите, может ли данное соединение быть спущено, проверив его через EXPLAIN, когда соединение может быть спущено, вы видите ссылки на pushed join в столбце Extra вывода:

    mysql> EXPLAIN SELECT e.first_name, e.last_name, t.title, d.dept_name \
                      FROM employees e JOIN dept_emp de ON e.emp_no=de.emp_no \
                      JOIN departments d ON d.dept_no=de.dept_no \
                      JOIN titles t ON e.emp_no=t.emp_no\G
    *************************** 1. row ***************************
     id: 1
    select_type: SIMPLE
    table: d
     type: ALL
    possible_keys: PRIMARY
    key: NULL
    key_len: NULL
    ref: NULL
     rows: 9
    Extra: Parent of 4 pushed join@1
    *************************** 2. row ***************************
     id: 1
    select_type: SIMPLE
    table: de
     type: ref
    possible_keys: PRIMARY,emp_no,dept_no
    key: dept_no
    key_len: 4
    ref: employees.d.dept_no
     rows: 5305
    Extra: Child of 'd' in pushed join@1
    *************************** 3. row ***************************
     id: 1
    select_type: SIMPLE
    table: e
     type: eq_ref
    possible_keys: PRIMARY
    key: PRIMARY
    key_len: 4
    ref: employees.de.emp_no
     rows: 1
    Extra: Child of 'de' in pushed join@1
    *************************** 4. row ***************************
     id: 1
    select_type: SIMPLE
    table: t
     type: ref
    possible_keys: PRIMARY,emp_no
    key: emp_no
    key_len: 4
    ref: employees.de.emp_no
     rows: 19
    Extra: Child of 'e' in pushed join@1
    4 rows in set (0.00 sec)
    

    Если внутренние дочерними таблицами, к которым присоединяются, ref, и результат отсортирован или сгруппирован сортированным индексом, этот индекс не может обеспечить сортированные строки, что вызывает запись сортированного временного файла.

    Два дополнительных источника информации о работе соединения доступны:

    1. Переменные статуса Ndb_pushed_queries_defined, Ndb_pushed_queries_dropped, Ndb_pushed_queries_executed и Ndb_pushed_reads.

    2. Счетчики в таблице ndbinfo.counters, которые принадлежат ядерному блоку DBSPJ, см. раздел 7.10.10 для получения информации об этих счетчиках. См. также The DBSPJ Block в NDB Cluster API Developer Guide.

  • ndb_log_apply_status

    Свойство Значение
    Командная строка --ndb-log-apply-status[={OFF|ON}]
    Системная? ndb_log_apply_status
    Область действия Везде
    Динамическая? Нет
    Тип Boolean
    Умолчание OFF

    Переменная только для чтения, которая показывает, был ли сервер запущен с опцией --ndb-log-apply-status.

  • ndb_log_bin

    Свойство Значение
    Командная строка --ndb-log-bin[={OFF|ON}]
    Системная? ndb_log_bin
    Область действия Global, Session
    Динамическая? Да
    Тип Boolean
    Умолчание ON

    Писать ли обновления таблиц NDB в двоичный журнал. Установка этой переменной не имеет никакого эффекта, если двоичная регистрация не позволена для использования сервером с помощью log_bin. ndb_log_bin по умолчанию 1 (ON), обычно никогда нет никакой потребности изменить это значение в производственной среде.

  • ndb_log_binlog_index

    Свойство Значение
    Командная строка --ndb-log-binlog-index[={OFF|ON}]
    Системная? ndb_log_binlog_index
    Область действия Везде
    Динамическая? Да
    Тип Boolean
    Умолчание ON

    Заставляет вставить отображение эпох к положениям в двоичном журнале в таблицу ndb_binlog_index. Установка этой переменной не имеет никакого эффекта, если двоичная регистрация не позволена для использования сервером с помощью log_bin. Кроме того ndb_log_bin не должна быть отключена. ndb_log_binlog_index по умолчанию 1 (ON), обычно никогда нет никакой потребности изменить это значение в производственной среде.

  • ndb_log_empty_epochs

    Свойство Значение
    Командная строка --ndb-log-empty-epochs[={OFF|ON}]
    Системная? ndb_log_empty_epochs
    Область действия Везде
    Динамическая? Да
    Тип Boolean
    Умолчание OFF

    Когда эта переменная установлена в 0, транзакции эпохи без изменений не написаны в двоичный журнал, хотя строка все еще написана даже в течение пустой эпохи в ndb_binlog_index.

  • ndb_log_empty_update

    Свойство Значение
    Командная строка --ndb-log-empty-update[={OFF|ON}]
    Системная? ndb_log_empty_update
    Область действия Везде
    Динамическая? Да
    Тип Boolean
    Умолчание OFF

    Когда эта переменная установлена в ON (1), транзакции обновления без изменений написаны в двоичный журнал даже когда включена log_slave_updates.

  • ndb_log_exclusive_reads

    Свойство Значение
    Командная строка --ndb-log-exclusive-reads[={OFF|ON}]
    Системная? ndb_log_exclusive_reads
    Область действия Global, Session
    Динамическая? Да
    Тип Boolean
    Умолчание 0

    Эта переменная определяет, зарегистрированы ли чтения первичного ключа с монопольными блокировками, что допускает обнаружение конфликта репликации NDB Cluster и решение на основе прочитанных конфликтов. Чтобы позволить эти блокировки, установите значение ndb_log_exclusive_reads = 1. 0 отключает такой режим и является умолчанием.

    См. подробности здесь.

  • ndb_log_orig

    Свойство Значение
    Командная строка --ndb-log-orig[={OFF|ON}]
    Системная? ndb_log_orig
    Область действия Везде
    Динамическая? Нет
    Тип Boolean
    Умолчание OFF

    Показывает, записаны ли ID сервера и эпоха в таблицу ndb_binlog_index. Устанавливается, используя опцию сервера --ndb-log-orig.

  • ndb_log_transaction_id

    Свойство Значение
    Системная? ndb_log_transaction_id
    Область действия Везде
    Динамическая? Нет
    Тип Boolean
    Умолчание OFF

    Только read-only, переменная Boolean показывает, пишет ли ведомый mysqld ID транзакций NDB в двоичную регистрацию (надо для применения active-active NDB Cluster Replication с обнаружением конфликта NDB$EPOCH_TRANS()). Чтобы изменить настройки, используйте опцию --ndb-log-transaction-id.

    ndb_log_transaction_id не поддерживается в MySQL Server 5.7.

    См. раздел 8.11.

  • ndb_optimized_node_selection

    Свойство Значение
    Командная строка --ndb-optimized-node-selection=#
    Системная? ndb_optimized_node_selection
    Область действия Везде
    Динамическая? Нет
    Тип Integer
    Умолчание 3
    Минимум 0
    Максимум 3

    Есть две формы оптимизированного выбора узла, описанного здесь:

    1. Узел SQL использует promixity, чтобы определить операционного координатора, то есть, самый близкий узел данных к узлу SQL выбран в качестве операционного координатора. С этой целью узел данных, имеющий сопряжение с общей памятью с узлом SQL, считается ближайшим к узлу SQL, следующие самые близкие (в порядке уменьшающейся близости): соединение по протоколу TCP с localhost, соединения по протоколу TCP от хостов кроме localhost.

    2. Поток SQL использует осведомленность распределения, чтобы выбрать узел данных. Таким образом, место узла данных раздела кластера, к которому получает доступ первый запрос данной транзакции, используется в качестве операционного координатора для всей транзакции. Это эффективно только если первый запрос задействует не больше, чем один раздел.

    Этот выбор берет одно из целочисленных значений 0, 1, 2 или 3. Умолчание 3. Эти значения затрагивают выбор узла следующим образом:

    • 0: Выбор узла не оптимизирован. Каждый узел данных используется как операционный координатор 8 раз, прежде чем поток SQL перейдет к следующему узлу данных.

    • 1: Близость к узлу SQL используется, чтобы определить операционного координатора.

    • 2: Осведомленность распределения используется, чтобы выбрать операционного координатора. Однако, если первый запрос использует больше, чем одии раздел кластера, узел SQL возвращается к циклическому поведению, применяемому когда этот выбор установлен в 0.

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

    Близость определяется следующим образом:

    1. Начните с набора значений для параметра Group (умолчание 55).

    2. Для узла API, делящего тот же самый хост с другими узлами API, уменьшите значение на 1. Исходя из значения по умолчанию для Group, действующее значение для узлов данных на том же самом хосте, где узел API, равняется 54, а для удаленных узлов данных 55.

    3. (NDB 7.5.2 и позже:) Установка ndb_data_node_neighbour уменьшает эффективное значение Group до 50, заставляя этот узел рассматриваться как самый близкий узел. Это необходимо только, когда все узлы данных находятся на хостах кроме этого и желательно выделить один из них узлу API. В нормальных случаях регулирование по умолчанию, описанное ранее, достаточно.

    Частые изменения ndb_data_node_neighbour нежелательны, так как это изменяет состояние связи кластера и таким образом может разрушить алгоритм выбора для новых транзакций от каждого потока.

  • ndb_read_backup

    Свойство Значение
    Командная строка --ndb-read-backup[={OFF|ON}]
    Добавлено в 5.7.12-ndb-7.5.2
    Системная? ndb_read_backup
    Область действия Везде
    Динамическая? Да
    Тип Boolean
    Умолчание OFF

    Позвольте чтение из любой точной копии для любой таблицы NDB, которая впоследствии составлена. Это сильно улучшает производительность чтения таблицы, незначительно влияя на запись.

    Чтобы позволить или отключить чтение из любой точной копии для отдельной таблицы, можно установить опцию NDB_TABLE = READ_BACKUP для соответствующей таблицы CREATE TABLE или ALTER TABLE, см. Setting NDB_TABLE Options.

    Добавлено в NDB 7.5.2.

  • ndb_recv_thread_activation_threshold

    Свойство Значение
    Командная строка --ndb-recv-thread-activation-threshold=#
    Системная? ndb_recv_thread_activation_threshold
    Область действия Везде
    Динамическая? Да
    Тип Integer
    Умолчание 8
    Минимум 0 (MIN_ACTIVATION_THRESHOLD)
    Максимум 16 (MAX_ACTIVATION_THRESHOLD)

    Когда это количество одновременно активных потоков достигнуто, поток получения принимает опрос связи кластера.

    Эта переменная глобальна. Это может также быть установлено при запуске.

  • ndb_recv_thread_cpu_mask

    Свойство Значение
    Командная строка --ndb-recv-thread-cpu-mask=mask
    Системная? ndb_recv_thread_cpu_mask
    Область действия Везде
    Динамическая? Да
    Тип Bitmap
    Умолчание [empty]

    Маска CPU для привязки принимающего потока к конкретному CPU. Это определяется как шестнадцатеричная битовая маска. Например, 0x33 значит, что один CPU используется на поток приемника. Пустая строка это умолчание, установка к ней ndb_recv_thread_cpu_mask удаляет любые привязки потока приемника.

    Эта переменная глобальна. Это может также быть установлено при запуске.

  • ndb_report_thresh_binlog_epoch_slip

    Свойство Значение
    Командная строка --ndb-report-thresh-binlog-epoch-slip=#
    Системная? ndb_report_thresh_binlog_epoch_slip
    Область действия Везде
    Динамическая? Да
    Тип Integer
    Умолчание (>= 5.7.16-ndb-7.5.4) 10
    Умолчание (<= 5.7.13-ndb-7.5.3) 3
    Минимум 0
    Максимум 256

    В NDB 7.5.4 и позже это представляет порог для числа эпох полностью буферизованных в буфере событий, но еще не потребляемых потоком двоичного журнала. Когда эта степень уменьшения (задержка) превышена, передается сообщение о состоянии буфера событий с BUFFERED_EPOCHS_OVER_THRESHOLD как причина (см. раздел 7.7.3). Задержка увеличен, когда эпоха получена от узлов данных и буферизована полностью в буфере событий, это уменьшено, когда эпоха потребляется потоком двоичного журнала. Пустые эпохи буферизованы, стоят в очереди и включены в это вычисление только, когда это позволено, используя метод Ndb::setEventBufferQueueEmptyEpoch() из NDB API.

    До NDB 7.5.4 значение этой переменной служило порогом для числа эпох позади прежде, чем сообщить о статусе двоичной регистрации. В этих предыдущих выпусках значение по умолчанию 3 означает, что если различие, между эпохой, которая была получена от узлов хранения, и эпохой, которая была применена к двоичному журналу, равняется 3 или больше, сообщение о состоянии посылают в журнал кластера.

  • ndb_report_thresh_binlog_mem_usage

    Свойство Значение
    Командная строка --ndb-report-thresh-binlog-mem-usage=#
    Системная? ndb_report_thresh_binlog_mem_usage
    Область действия Везде
    Динамическая? Да
    Тип Integer
    Умолчание 10
    Минимум 0
    Максимум 10

    Это порог процента свободной памяти, остающейся прежде, чем сообщить о статусе двоичного журнала. Например, значение 10 (умолчание) означает, что если сумма доступной памяти для получения данных двоичного журнала от узлов данных упала ниже 10%, сообщение о состоянии посылают в журнал кластера.

  • ndb_row_checksum

    Свойство Значение
    Добавлено в 5.7.23-ndb-7.6.8
    Системная? ndb_row_checksum
    Область действия Global, Session
    Динамическая? Да
    Тип Integer
    Умолчание 1
    Минимум 0
    Максимум 1

    Традиционно NDB составляет таблицы с контрольными суммами строки, которую проверяет на аппаратные проблемы за счет производительности. Урегулирование ndb_row_checksum = 0 значит, что контрольные суммы строки не используются для новых или измененных таблиц, что оказывает значительное влияние на работу для всех типов запросов. Эта переменная установлена в 1 по умолчанию, чтобы обеспечить обратно совместимое поведение.

  • ndb_show_foreign_key_mock_tables

    Свойство Значение
    Командная строка --ndb-show-foreign-key-mock-tables[={OFF|ON}]
    Системная? ndb_show_foreign_key_mock_tables
    Область действия Везде
    Динамическая? Да
    Тип Boolean
    Умолчание OFF

    Показать ложные таблицы, используемые NDB, чтобы поддерживать foreign_key_checks=0. Когда это позволено, дополнительные предупреждения показывают, создавая и удаляя таблицы. Реальное (внутреннее) название таблицы может быть замечено в выводе SHOW CREATE TABLE.

  • ndb_slave_conflict_role

    Свойство Значение
    Командная строка --ndb-slave-conflict-role=value
    Системная? ndb_slave_conflict_role
    Область действия Везде
    Динамическая? Да
    Тип Enumeration
    Умолчание NONE
    Допустимые значения

    NONE

    PRIMARY

    SECONDARY

    PASS

    Определите роль этого узла SQL (и NDB Cluster) в кольцевой репликации (active-active). ndb_slave_conflict_role может взять любое из значений PRIMARY, SECONDARY, PASS или NULL (умолчание). Ведомый поток SQL должен быть остановлен прежде, чем можно будет изменить ndb_slave_conflict_role. Кроме того, невозможно изменить непосредственно между PASS и любым из PRIMARY или SECONDARY, в таких случаях необходимо гарантировать, что поток SQL остановлен, затем сначала выполнить SET @@GLOBAL.ndb_slave_conflict_role = 'NONE'.

    См. раздел 8.11.

  • ndb_table_no_logging

    Свойство Значение
    Системная? ndb_table_no_logging
    Область действия Session
    Динамическая? Да
    Тип Boolean
    Умолчание OFF

    Когда эта переменная установлена в ON или 1, таблицы NDB не сбрасывают контрольную точку на диск. Более определенно это урегулирование относится к таблицам, которые составлены или изменены с использованием ENGINE NDB, когда включена ndb_table_no_logging и продолжает использоваться всю жизнь таблицы, даже если позже задано ndb_table_no_logging. Предположим, что A, B, C и D это таблицы, которые мы составляем (и, возможно, также изменим), и что мы также изменяем настройки для ndb_table_no_logging:

    SET @@ndb_table_no_logging = 1;
    CREATE TABLE A ... ENGINE NDB;
    CREATE TABLE B ... ENGINE MYISAM;
    CREATE TABLE C ... ENGINE MYISAM;
    ALTER TABLE B ENGINE NDB;
    SET @@ndb_table_no_logging = 0;
    CREATE TABLE D ... ENGINE NDB;
    ALTER TABLE C ENGINE NDB;
    SET @@ndb_table_no_logging = 1;
    

    После предыдущей последовательности событий, таблицы A и B не имеют контрольных точек, A создана с ENGINE NDB, B была изменена, чтобы использовать NDB, обе в то время, как включена ndb_table_no_logging. Однако, таблицы C и D зарегистрированы, C была изменена, чтобы использовать NDB и D создана с применением ENGINE NDB, обе при выключенной ndb_table_no_logging. Установка ndb_table_no_logging назад в 1 или ON не вызывает контрольные точки у таблиц C или D.

    ndb_table_no_logging не имеет никакого эффекта на создание файлов схемы таблицы NDB , чтобы подавить их, надо использовать ndb_table_temporary.

  • ndb_table_temporary

    Свойство Значение
    Системная? ndb_table_temporary
    Область действия Session
    Динамическая? Да
    Тип Boolean
    Умолчание OFF

    Когда установлено в ON или 1, эта переменная предписывает не сохранять таблицы NDB на диск: это означает, что никакие файлы схемы таблицы не создаются, и что таблицы не зарегистрированы.

    Урегулирование этой переменной в настоящее время не имеет никакого эффекта. Это известная проблема, посмотрите Bug #34036.

  • ndb_use_copying_alter_table

    Свойство Значение
    Системная? ndb_use_copying_alter_table
    Область действия Global, Session
    Динамическая? Нет

    Предписывает NDB использовать копирование таблиц в случае проблем с онлайн ALTER TABLE. Значение по умолчанию OFF.

  • ndb_use_exact_count

    Свойство Значение
    Системная? ndb_use_exact_count
    Область действия Global, Session
    Динамическая? Да
    Тип Boolean
    Умолчание OFF

    Предписывает NDB использовать количество отчетов во время планирования запроса SELECT COUNT(*), чтобы ускорять этот тип запроса. Значение по умолчанию OFF, что допускает более быстрые запросы в целом.

  • ndb_use_transactions

    Свойство Значение
    Командная строка --ndb-use-transactions[={OFF|ON}]
    Системная? ndb_use_transactions
    Область действия Global, Session
    Динамическая? Да
    Тип Boolean
    Умолчание ON

    Можно отключить операционную поддержку NDB, устанавливая значения этой переменной в OFF ((не рекомендуется). Умолчание ON.

  • ndb_version

    Свойство Значение
    Системная? ndb_version
    Область действия Везде
    Динамическая? Нет
    Тип String
    Умолчание

    Версия NDB как сложное целое число.

  • ndb_version_string

    Свойство Значение
    Системная? ndb_version_string
    Область действия Везде
    Динамическая? Нет
    Тип String
    Умолчание

    Версия NDB в формате ndb-x.y.z.

  • server_id_bits

    Таблица 5.227. Тип и информация о значении для server_id_bits

    Свойство Значение
    Имя server_id_bits
    Командная строка Да
    Системная? Да
    Файл опций Да
    Область действия Везде
    Динамическая? Нет
    Тип: умолчание, диапазон integer: 32 / 7 - 32 (версия 5.7)
    Примечания

    Определяет число младших значащих битов в server_id, на самом деле используемом для идентификации сервера, разрешая запросам NDB API сохранить данные приложения в старших значащих битах. server_id должен быть меньше 2 в степени этого значения.

    Эта переменная указывает на число младших значащих битов в 32 битах server_id, которые на самом деле определяют сервер. Указание, что сервер на самом деле определяется меньше, чем 32 битами, позволяет некоторым остающимся битам использоваться для других целей, таких как то, чтобы хранить пользовательские данные, произведенные запросами, используя NDB API's Event API в AnyValue структуры OperationOptions (NDB Cluster использует AnyValue для хранения ID сервера).

    Извлекая эффективный ID сервера из server_id в таких целях, как обнаружение петель репликации, сервер игнорирует остающиеся биты. Переменная server_id_bits используется, чтобы маскировать любые несоответствующие части server_id в потоках IO и SQL решая, должно ли событие быть проигнорировано на основе ID сервера.

    Эти данные могут быть прочитаны из двоичного журнала mysqlbinlog, при условии, что этим управляют с его собственной переменной server_id_bits = 32 (по умолчанию).

    Если значение переменной server_id больше или равно 2 в степени server_id_bits, иначе otherwise, mysqld отказывается запускаться.

    Эта системная переменная поддерживается только NDB Cluster. Это не поддерживается в стандартном сервере MySQL 5.7 Server.

  • slave_allow_batching

    Таблица 5.228. Тип и информация о значении для slave_allow_batching

    Свойство Значение
    Имя slave_allow_batching
    Командная строка Да
    Системная? Да
    Файл опций Да
    Область действия Везде
    Динамическая? Да
    Тип: умолчание, диапазон boolean: OFF (версия 5.7)
    Примечания

    Включает группирование обновления для ведомого репликации

    Позволены ли пакетные обновления на ведомых NDB Cluster replication.

    Установка этой переменной имеет эффект только используя репликацию с механизмом хранения NDB, в MySQL Server 5.7 это присутствует, но ничего не делает. Для получения дополнительной информации посмотрите раздел 8.6.

  • transaction_allow_batching

    Таблица 5.229. Тип и информация о значении для transaction_allow_batching

    Свойство Значение
    Имя transaction_allow_batching
    Командная строка Нет
    Системная? Да
    Файл опций Нет
    Область действия Session
    Динамическая? Да
    Тип: умолчание, диапазон boolean: OFF (версия 5.7)
    Примечания

    Позволяет комплектовать запросы в транзакции. Отключите AUTOCOMMIT, чтобы использовать.

    При установке в 1 или ON переменная позволяет комплектовать запросы в той же самой транзакции. Чтобы использовать эту переменную, autocommit должен сначала быть отключен, установив его в 0 или OFF, иначе transaction_allow_batching не имеет никакого эффекта.

    Безопасно использовать эту переменную с транзакциями, которые только пишут, как предоставление возможности, читать из исходного вида записи. Необходимо гарантировать, что любые отложенные транзакции передаются (использованием явного COMMIT при желании) прежде, чем скомандовать SELECT.

    transaction_allow_batching не должен использоваться каждый раз, когда есть возможность, так как эффекты данного запроса зависят от результата предыдущего запроса в той же самой транзакции.

    Эта переменная в настоящее время поддерживается только для NDB Cluster.

Системные переменные в следующем списке все касаются информационной базы данных ndbinfo.

  • ndbinfo_database

    Таблица 5.230. Тип и информация о значении для ndbinfo_database

    Свойство Значение
    Имя ndbinfo_database
    Командная строка Нет
    Системная? Да
    Файл опций Нет
    Область действия Везде
    Динамическая? Нет
    Тип: умолчание, диапазон string: ndbinfo (версия 5.7)
    Примечания

    Имя используется для информационной базы данных NDB, read only

    Показывает имя, используемое для информационной базы данных NDB, умолчание ndbinfo. Это переменная только для чтения, значение которой определяется во время компиляции, можно установить его, начав использование сервера с опцией --ndbinfo-database=name, которое устанавливает значение, показанное для этой переменной, но на самом деле не изменяет название, используемое для информационной базы данных NDB.

  • ndbinfo_max_bytes

    Таблица 5.231. Тип и информация о значении для ndbinfo_max_bytes

    Свойство Значение
    Имя ndbinfo_max_bytes
    Командная строка Да
    Системная? Да
    Файл опций Нет
    Область действия Both
    Динамическая? Да
    Тип: умолчание, диапазон integer: 0 / - (версия 5.7)
    Примечания

    Используется только для отладки

  • ndbinfo_max_rows

    Таблица 5.232. Тип и информация о значении для ndbinfo_max_rows

    Свойство Значение
    Имя ndbinfo_max_rows
    Командная строка Да
    Системная? Да
    Файл опций Нет
    Область действия Both
    Динамическая? Да
    Тип: умолчание, диапазон integer: 10 / - (версия 5.7)
    Примечания

    Используется только для отладки

  • ndbinfo_offline

    Таблица 5.233. Тип и информация о значении для ndbinfo_offline

    Свойство Значение
    Имя ndbinfo_offline
    Командная строка Нет
    Системная? Да
    Файл опций Нет
    Область действия Везде
    Динамическая? Да
    Тип: умолчание, диапазон boolean: OFF (версия 5.7)
    Примечания

    Поместите базу данных ndbinfo в режим офлайн, в котором никакие строки не возвращены из таблиц или обзоров

    Поместите базу данных Place the ndbinfo в режим офлайн, в котором могут быть открыты таблицы и обзоры, даже когда они на самом деле не существуют, или когда они существуют, но имеют различные определения в NDB. Никакие строки не возвращены из таких таблиц (или обзоров).

  • ndbinfo_show_hidden

    Таблица 5.234. Тип и информация о значении для ndbinfo_show_hidden

    Свойство Значение
    Имя ndbinfo_show_hidden
    Командная строкаДа
    Системная?Да
    Файл опцийНет
    Область действияBoth
    Динамическая?Да
    Тип: умолчание, диапазон boolean: OFF (версия 5.7)
    Примечания

    Показать ли внутренние базовые таблицы ndbinfo в клиенте mysql. Умолчание OFF.

    Действительно ли основные внутренние таблицы базы данных ndbinfo показывают в клиенте mysql. По умолчанию OFF.

  • ndbinfo_table_prefix

    Таблица 5.235. Тип и информация о значении для ndbinfo_table_prefix

    Свойство Значение
    Имя ndbinfo_table_prefix
    Командная строкаДа
    Системная?Да
    Файл опцийНет
    Область действияBoth
    Динамическая?Да
    Тип: умолчание, диапазонstring: ndb$ (версия 5.7)
    Примечания

    Префикс, чтобы использовать для обозначения внутренних базовых таблиц ndbinfo

    Префикс, используемый в обозначении базовых таблиц базы данных ndbinfo (обычно скрыты, если не выставлены, устанавливая ndbinfo_show_hidden). Это переменная только для чтения, значение которой по умолчанию ndb$. Можно начать сервер с опцией --ndbinfo-table-prefix, но это просто устанавливает переменную и не изменяет фактический префикс, сам префикс определяется во время компиляции.

  • ndbinfo_version

    Таблица 5.236. Тип и информация о значении для ndbinfo_version

    Свойство Значение
    Имя ndbinfo_version
    Командная строка Нет
    Системная? Да
    Файл опций Нет
    Область действия Везде
    Динамическая? Нет
    Тип: умолчание, диапазон string: (версия 5.7)
    Примечания

    Версия ndbinfo, read only

5.3.9.3. Переменные статуса NDB Cluster

Эта секция предоставляет подробную информацию о переменных статуса сервера MySQL, которые касаются NDB Cluster и механизма хранения NDB. Для переменных статуса, не определенных для NDB Cluster, и для получения общей информации об использовании переменных статуса посмотрите Server Status Variables.

  • Handler_discover

    Сервер MySQL может спросить NDBCLUSTER, если это знает о таблице с именем. Это называют открытием. Handler_discoverуказывает на число раз, которое таблицы были обнаружены, используя этот механизм.

  • Ndb_api_bytes_sent_count_session

    Объем данных (в байтах) посланный в узлы данных в этой сессии клиента.

    Хотя эта переменная может быть прочитана, используя также SHOW GLOBAL STATUS или SHOW SESSION STATUS, это касается только текущей сессии и не затронуто никакими другими клиентами этого mysqld.

    Для получения дополнительной информации посмотрите раздел 7.17 .

  • Ndb_api_bytes_sent_count_slave

    Объем данных (в байтах) посланный в узлы данных этим ведомым.

    Хотя эта переменная может быть прочитана, используя также SHOW GLOBAL STATUS или SHOW SESSION STATUS, это эффективно глобально. Если этот сервер MySQL не действует как ведомый репликации или не использует таблицы NDB, это значение всегда 0.

    Для получения дополнительной информации посмотрите раздел 7.17 .

  • Ndb_api_bytes_sent_count

    Объем данных (в байтах) посланный в узлы данных этим MySQL Server (узел SQL).

    Хотя эта переменная может быть прочитана, используя также SHOW GLOBAL STATUS или SHOW SESSION STATUS, это эффективно глобально.

    Для получения дополнительной информации посмотрите раздел 7.17 .

  • Ndb_api_bytes_received_count_session

    Объем данных (в байтах) полученный от узлов данных в этой сессии клиента.

    Хотя эта переменная может быть прочитана, используя также SHOW GLOBAL STATUS или SHOW SESSION STATUS, это касается только текущей сессии и не затронуто никакими другими клиентами этого mysqld.

    Для получения дополнительной информации посмотрите раздел 7.17 .

  • Ndb_api_bytes_received_count_slave

    Объем данных (в байтах) полученный от узлов данных этим ведомым.

    Хотя эта переменная может быть прочитана, используя также SHOW GLOBAL STATUS или SHOW SESSION STATUS, это эффективно глобально. Если этот сервер MySQL не действует как ведомый репликации или не использует таблицы NDB, это значение всегда 0.

    Для получения дополнительной информации посмотрите раздел 7.17 .

  • Ndb_api_bytes_received_count

    Объем данных (в байтах) полученный от узлов данных этим MySQL Server (узлом SQL).

    Хотя эта переменная может быть прочитана, используя также SHOW GLOBAL STATUS или SHOW SESSION STATUS, это эффективно глобально.

    Для получения дополнительной информации посмотрите раздел 7.17 .

  • Ndb_api_event_data_count_injector

    Количество событий изменения строки, полученных потоком инжектора двоичного журнала NDB.

    Хотя эта переменная может быть прочитана, используя также SHOW GLOBAL STATUS или SHOW SESSION STATUS, это эффективно глобально.

    Для получения дополнительной информации посмотрите раздел 7.17 .

  • Ndb_api_event_data_count

    Количество событий изменения строки, полученных этим MySQL Server (узлом SQL).

    Хотя эта переменная может быть прочитана, используя также SHOW GLOBAL STATUS или SHOW SESSION STATUS, это эффективно глобально.

    Для получения дополнительной информации посмотрите раздел 7.17.

  • Ndb_api_event_nondata_count_injector

    Количество событий, кроме изменения строки, полученных потоком инжектора двоичного журнала NDB.

    Хотя эта переменная может быть прочитана, используя также SHOW GLOBAL STATUS или SHOW SESSION STATUS, это эффективно глобально.

    Для получения дополнительной информации посмотрите раздел 7.17 .

  • Ndb_api_event_nondata_count

    Количество событий, кроме изменения строки, полученных этим MySQL Server (узлом SQL).

    Хотя эта переменная может быть прочитана, используя также SHOW GLOBAL STATUS или SHOW SESSION STATUS, это эффективно глобально.

    Для получения дополнительной информации посмотрите раздел 7.17 .

  • Ndb_api_event_bytes_count_injector

    Число байтов событий, полученных потоком инжектора двоичного журнала NDB.

    Хотя эта переменная может быть прочитана, используя также SHOW GLOBAL STATUS или SHOW SESSION STATUS, это эффективно глобально.

    Для получения дополнительной информации посмотрите раздел 7.17 .

  • Ndb_api_event_bytes_count

    Число байтов событий, полученных этим MySQL Server (узлом SQL).

    Хотя эта переменная может быть прочитана, используя также SHOW GLOBAL STATUS или SHOW SESSION STATUS, это эффективно глобально.

    Для получения дополнительной информации посмотрите раздел 7.17 .

  • Ndb_api_pk_op_count_session

    Количество операций в этой сессии клиента на основе или использующих первичные ключи. Это включает операции на таблицах BLOB, неявные операции разблокировки и auto-increment, а также видимые пользователем операции по первичному ключу.

    Хотя эта переменная может быть прочитана, используя также SHOW GLOBAL STATUS или SHOW SESSION STATUS, это касается только текущей сессии и не затронуто никакими другими клиентами этого mysqld.

    Для получения дополнительной информации посмотрите раздел 7.17 .

  • Ndb_api_pk_op_count_slave

    Количество операций этим ведомым на основе или использующих первичные ключи. Это включает операции на таблицах BLOB, неявные операции разблокировки и auto-increment, а также видимые пользователем операции по первичному ключу.

    Хотя эта переменная может быть прочитана, используя также SHOW GLOBAL STATUS или SHOW SESSION STATUS, это эффективно глобально. Если этот сервер MySQL не действует как ведомый репликации или не использует таблицы NDB, это значение всегда 0.

    Для получения дополнительной информации посмотрите раздел 7.17 .

  • Ndb_api_pk_op_count

    Количество операций этим MySQL Server (узлом SQL) на основе или использующих первичные ключи. Это включает операции на таблицах BLOB, неявные операции разблокировки и auto-increment, а также видимые пользователем операции по первичному ключу.

    Хотя эта переменная может быть прочитана, используя также SHOW GLOBAL STATUS или SHOW SESSION STATUS, это эффективно глобально.

    Для получения дополнительной информации посмотрите раздел 7.17 .

  • Ndb_api_pruned_scan_count_session

    Количество просмотров в этой сессии клиента, которые были сокращены к единственному разделу.

    Хотя эта переменная может быть прочитана, используя также SHOW GLOBAL STATUS или SHOW SESSION STATUS, это касается только текущей сессии и не затронуто никакими другими клиентами этого mysqld.

    Для получения дополнительной информации посмотрите раздел 7.17 .

  • Ndb_api_pruned_scan_count_slave

    Количество просмотров этим ведомым, которые были сокращены к единственному разделу.

    Хотя эта переменная может быть прочитана, используя также SHOW GLOBAL STATUS или SHOW SESSION STATUS, это эффективно глобально. Если этот сервер MySQL не действует как ведомый репликации или не использует таблицы NDB, это значение всегда 0.

    Для получения дополнительной информации посмотрите раздел 7.17 .

  • Ndb_api_pruned_scan_count

    Количество просмотров этим MySQL Server (узлом SQL), которые были сокращены к единственному разделу.

    Хотя эта переменная может быть прочитана, используя также SHOW GLOBAL STATUS или SHOW SESSION STATUS, это эффективно глобально.

    Для получения дополнительной информации посмотрите раздел 7.17 .

  • Ndb_api_range_scan_count_session

    Количество просмотров диапазона, которые были начаты в этой сессии клиента.

    Хотя эта переменная может быть прочитана, используя также SHOW GLOBAL STATUS или SHOW SESSION STATUS, это касается только текущей сессии и не затронуто никакими другими клиентами этого mysqld.

    Для получения дополнительной информации посмотрите раздел 7.17 .

  • Ndb_api_range_scan_count_slave

    Количество просмотров диапазона, которые были начаты этим ведомым.

    Хотя эта переменная может быть прочитана, используя также SHOW GLOBAL STATUS или SHOW SESSION STATUS, это эффективно глобально. Если этот сервер MySQL не действует как ведомый репликации или не использует таблицы NDB, это значение всегда 0.

    Для получения дополнительной информации посмотрите раздел 7.17 .

  • Ndb_api_range_scan_count

    Количество просмотров диапазона, которые были начаты этим MySQL Server (узлом SQL).

    Хотя эта переменная может быть прочитана, используя также SHOW GLOBAL STATUS или SHOW SESSION STATUS, это эффективно глобально.

    Для получения дополнительной информации посмотрите раздел 7.17 .

  • Ndb_api_read_row_count_session

    Общее количество строк, которые были прочитаны в этой сессии клиента. Это включает все строки, прочитанные любым первичным ключом, уникальным ключом или операцией по просмотру, сделанной в этой сессии клиента.

    Хотя эта переменная может быть прочитана, используя также SHOW GLOBAL STATUS или SHOW SESSION STATUS, это касается только текущей сессии и не затронуто никакими другими клиентами этого mysqld.

    Для получения дополнительной информации посмотрите раздел 7.17 .

  • Ndb_api_read_row_count_slave

    Общее количество строк, которые были прочитаны этим ведомым. Это включает все строки, прочитанные любым первичным ключом, уникальным ключом или операцией по просмотру, сделанной этим ведомым.

    Хотя эта переменная может быть прочитана, используя также SHOW GLOBAL STATUS или SHOW SESSION STATUS, это эффективно глобально. Если этот сервер MySQL не действует как ведомый репликации или не использует таблицы NDB, это значение всегда 0.

    Для получения дополнительной информации посмотрите раздел 7.17 .

  • Ndb_api_read_row_count

    Общее количество строк, которые были прочитаны этим MySQL Server (узлом SQL). Это включает все строки, прочитанные любым первичным ключом, уникальным ключом или операцией по просмотру, сделанной этим MySQL Server (узлом SQL).

    Необходимо знать, что это значение может не быть абсолютно точным относительно строк, прочитанных SELECT COUNT(*) вследствие того, что в этом случае сервер MySQL на самом деле читает псевдостроки в форме [table fragment ID]:[number of rows in fragment] и суммирует строки во фрагментах для всех фрагментов в таблице, чтобы получить предполагаемое число всех строк. Ndb_api_read_row_count использует эту оценку, а не фактическое количество строк в таблице.

    Хотя эта переменная может быть прочитана, используя также SHOW GLOBAL STATUS или SHOW SESSION STATUS, это эффективно глобально.

    Для получения дополнительной информации посмотрите раздел 7.17 .

  • Ndb_api_scan_batch_count_session

    Количество партий строк, полученных в этой сессии клиента. 1 партия определяется как 1 набор просмотра результатов из единственного фрагмента.

    Хотя эта переменная может быть прочитана, используя также SHOW GLOBAL STATUS или SHOW SESSION STATUS, это касается только текущей сессии и не затронуто никакими другими клиентами этого mysqld.

    Для получения дополнительной информации посмотрите раздел 7.17 .

  • Ndb_api_scan_batch_count_slave

    Количество партий строк получено этим ведомым. 1 партия определяется как 1 набор просмотра результатов из единственного фрагмента.

    Хотя эта переменная может быть прочитана, используя также SHOW GLOBAL STATUS или SHOW SESSION STATUS, это эффективно глобально. Если этот сервер MySQL не действует как ведомый репликации или не использует таблицы NDB, это значение всегда 0.

    Для получения дополнительной информации посмотрите раздел 7.17 .

  • Ndb_api_scan_batch_count

    Количество партий строк, полученных этим MySQL Server (узлом SQL). 1 партия определяется как 1 набор просмотра результатов из единственного фрагмента.

    Хотя эта переменная может быть прочитана, используя также SHOW GLOBAL STATUS или SHOW SESSION STATUS, это эффективно глобально.

    Для получения дополнительной информации посмотрите раздел 7.17 .

  • Ndb_api_table_scan_count_session

    Количество сканирований таблицы, которые были начаты в этой сессии клиента, включая просмотры внутренних таблиц.

    Хотя эта переменная может быть прочитана, используя также SHOW GLOBAL STATUS или SHOW SESSION STATUS, это касается только текущей сессии и не затронуто никакими другими клиентами этого mysqld.

    Для получения дополнительной информации посмотрите раздел 7.17 .

  • Ndb_api_table_scan_count_slave

    Количество сканирований таблицы, которые были начаты этим ведомым, включая просмотры внутренних таблиц.

    Хотя эта переменная может быть прочитана, используя также SHOW GLOBAL STATUS или SHOW SESSION STATUS, это эффективно глобально. Если этот сервер MySQL не действует как ведомый репликации или не использует таблицы NDB, это значение всегда 0.

    Для получения дополнительной информации посмотрите раздел 7.17 .

  • Ndb_api_table_scan_count

    Количество сканирований таблицы, которое были начаты этим MySQL Server (узлом SQL), включая просмотры внутренних таблиц.

    Хотя эта переменная может быть прочитана, используя также SHOW GLOBAL STATUS или SHOW SESSION STATUS, это эффективно глобально.

    Для получения дополнительной информации посмотрите раздел 7.17 .

  • Ndb_api_trans_abort_count_session

    Количество транзакций, прерванных в этой сессии клиента.

    Хотя эта переменная может быть прочитана, используя также SHOW GLOBAL STATUS или SHOW SESSION STATUS, это касается только текущей сессии и не затронуто никакими другими клиентами этого mysqld.

    Для получения дополнительной информации посмотрите раздел 7.17 .

  • Ndb_api_trans_abort_count_slave

    Количество транзакций, прерванных этим ведомым.

    Хотя эта переменная может быть прочитана, используя также SHOW GLOBAL STATUS или SHOW SESSION STATUS, это эффективно глобально. Если этот сервер MySQL не действует как ведомый репликации или не использует таблицы NDB, это значение всегда 0.

    Для получения дополнительной информации посмотрите раздел 7.17 .

  • Ndb_api_trans_abort_count

    Количество транзакций, прерванных этим MySQL Server (узлом SQL).

    Хотя эта переменная может быть прочитана, используя также SHOW GLOBAL STATUS или SHOW SESSION STATUS, это эффективно глобально.

    Для получения дополнительной информации посмотрите раздел 7.17 .

  • Ndb_api_trans_close_count_session

    Количество транзакций, закрытых в этой сессии клиента. Это значение может быть больше, чем сумма Ndb_api_trans_commit_count_session и Ndb_api_trans_abort_count_session, так как некоторые транзакции, возможно, были отменены.

    Хотя эта переменная может быть прочитана, используя также SHOW GLOBAL STATUS или SHOW SESSION STATUS, это касается только текущей сессии и не затронуто никакими другими клиентами этого mysqld.

    Для получения дополнительной информации посмотрите раздел 7.17 .

  • Ndb_api_trans_close_count_slave

    Количество транзакций, закрытых этим ведомым. Это значение может быть больше, чем сумма Ndb_api_trans_commit_count_session и Ndb_api_trans_abort_count_session, так как некоторые транзакции, возможно, были отменены.

    Хотя эта переменная может быть прочитана, используя также SHOW GLOBAL STATUS или SHOW SESSION STATUS, это эффективно глобально. Если этот сервер MySQL не действует как ведомый репликации или не использует таблицы NDB, это значение всегда 0.

    Для получения дополнительной информации посмотрите раздел 7.17 .

  • Ndb_api_trans_close_count

    Количество транзакций, закрытых этим MySQL Server (узлом SQL). Это значение может быть больше, чем сумма Ndb_api_trans_commit_count_session и Ndb_api_trans_abort_count_session, так как некоторые транзакции, возможно, были отменены.

    Хотя эта переменная может быть прочитана, используя также SHOW GLOBAL STATUS или SHOW SESSION STATUS, это эффективно глобально.

    Для получения дополнительной информации посмотрите раздел 7.17 .

  • Ndb_api_trans_commit_count_session

    Количество транзакций, переданных в этой сессии клиента.

    Хотя эта переменная может быть прочитана, используя также SHOW GLOBAL STATUS или SHOW SESSION STATUS, это касается только текущей сессии и не затронуто никакими другими клиентами этого mysqld.

    Для получения дополнительной информации посмотрите раздел 7.17 .

  • Ndb_api_trans_commit_count_slave

    Количество транзакций, переданных этим ведомым.

    Хотя эта переменная может быть прочитана, используя также SHOW GLOBAL STATUS или SHOW SESSION STATUS, это эффективно глобально. Если этот сервер MySQL не действует как ведомый репликации или не использует таблицы NDB, это значение всегда 0.

    Для получения дополнительной информации посмотрите раздел 7.17 .

  • Ndb_api_trans_commit_count

    Количество транзакций, переданных этим MySQL Server (узлом SQL).

    Хотя эта переменная может быть прочитана, используя также SHOW GLOBAL STATUS или SHOW SESSION STATUS, это эффективно глобально.

    Для получения дополнительной информации посмотрите раздел 7.17 .

  • Ndb_api_trans_local_read_row_count_session

    Общее количество строк, которые были прочитаны в этой сессии клиента. Это включает все строки, прочитанные любым первичным ключом, уникальным ключом или операцией по просмотру, сделанной в этой сессии клиента.

    Хотя эта переменная может быть прочитана, используя также SHOW GLOBAL STATUS или SHOW SESSION STATUS, это касается только текущей сессии и не затронуто никакими другими клиентами этого mysqld.

    Для получения дополнительной информации посмотрите раздел 7.17 .

  • Ndb_api_trans_local_read_row_count_slave

    Общее количество строк, которые были прочитаны этим ведомым. Это включает все строки, прочитанные любым первичным ключом, уникальным ключом или операцией по просмотру, сделанной этим ведомым.

    Хотя эта переменная может быть прочитана, используя также SHOW GLOBAL STATUS или SHOW SESSION STATUS, это эффективно глобально. Если этот сервер MySQL не действует как ведомый репликации или не использует таблицы NDB, это значение всегда 0.

    Для получения дополнительной информации посмотрите раздел 7.17 .

  • Ndb_api_trans_local_read_row_count

    Общее количество строк, которые были прочитаны этим MySQL Server (узлом SQL). Это включает все строки, прочитанные любым первичным ключом, уникальным ключом или операцией по просмотру, сделанной этим MySQL Server (узлом SQL).

    Хотя эта переменная может быть прочитана, используя также SHOW GLOBAL STATUS или SHOW SESSION STATUS, это эффективно глобально.

    Для получения дополнительной информации посмотрите раздел 7.17 .

  • Ndb_api_trans_start_count_session

    Количество транзакций начатых в этой сессии клиента.

    Хотя эта переменная может быть прочитана, используя также SHOW GLOBAL STATUS или SHOW SESSION STATUS, это касается только текущей сессии и не затронуто никакими другими клиентами этого mysqld.

    Для получения дополнительной информации посмотрите раздел 7.17 .

  • Ndb_api_trans_start_count_slave

    Количество транзакций начатых этим ведомым.

    Хотя эта переменная может быть прочитана, используя также SHOW GLOBAL STATUS или SHOW SESSION STATUS, это эффективно глобально. Если этот сервер MySQL не действует как ведомый репликации или не использует таблицы NDB, это значение всегда 0.

    Для получения дополнительной информации посмотрите раздел 7.17 .

  • Ndb_api_trans_start_count

    Количество транзакций начатых этим MySQL Server (узлом SQL).

    Хотя эта переменная может быть прочитана, используя также SHOW GLOBAL STATUS или SHOW SESSION STATUS, это эффективно глобально.

    Для получения дополнительной информации посмотрите раздел 7.17 .

  • Ndb_api_uk_op_count_session

    Количество операций в этой сессии клиента на основе или использующих уникальные ключи.

    Хотя эта переменная может быть прочитана, используя также SHOW GLOBAL STATUS или SHOW SESSION STATUS, это касается только текущей сессии и не затронуто никакими другими клиентами этого mysqld.

    Для получения дополнительной информации посмотрите раздел 7.17 .

  • Ndb_api_uk_op_count_slave

    Количество операций этим ведомым на основе или использующих уникальные ключи.

    Хотя эта переменная может быть прочитана, используя также SHOW GLOBAL STATUS или SHOW SESSION STATUS, это эффективно глобально. Если этот сервер MySQL не действует как ведомый репликации или не использует таблицы NDB, это значение всегда 0.

    Для получения дополнительной информации посмотрите раздел 7.17 .

  • Ndb_api_uk_op_count

    Количество операций этим MySQL Server (узлом SQL) на основе или использующих уникальные ключи.

    Хотя эта переменная может быть прочитана, используя также SHOW GLOBAL STATUS или SHOW SESSION STATUS, это эффективно глобально.

    Для получения дополнительной информации посмотрите раздел 7.17 .

  • Ndb_api_wait_exec_complete_count_session

    Сколько раз поток был заблокирован в этой сессии клиента, ожидая выполнения операции. Это включает все execute(), а также неявное выполнение для blob auto-increment, невидимые клиентам.

    Хотя эта переменная может быть прочитана, используя также SHOW GLOBAL STATUS или SHOW SESSION STATUS, это касается только текущей сессии и не затронуто никакими другими клиентами этого mysqld.

    Для получения дополнительной информации посмотрите раздел 7.17 .

  • Ndb_api_wait_exec_complete_count_slave

    Сколько раз поток был заблокирован этим ведомым, ожидая выполнения операции. Это включает все execute(), а также неявное выполнение для blob auto-increment, невидимые клиентам.

    Хотя эта переменная может быть прочитана, используя также SHOW GLOBAL STATUS или SHOW SESSION STATUS, это эффективно глобально. Если этот сервер MySQL не действует как ведомый репликации или не использует таблицы NDB, это значение всегда 0.

    Для получения дополнительной информации посмотрите раздел 7.17 .

  • Ndb_api_wait_exec_complete_count

    Сколько раз поток был заблокирован этим MySQL Server (узлом SQL), ожидая выполнения операции. Это включает все execute(), а также неявное выполнение для blob auto-increment, невидимые клиентам.

    Хотя эта переменная может быть прочитана, используя также SHOW GLOBAL STATUS или SHOW SESSION STATUS, это эффективно глобально.

    Для получения дополнительной информации посмотрите раздел 7.17 .

  • Ndb_api_wait_meta_request_count_session

    Сколько раз поток был заблокирован в этой сессии клиента, ожидая основанного на метаданных сигнала, который ожидается для запросов DDL, новых эпохи и записей транзакции.

    Хотя эта переменная может быть прочитана, используя также SHOW GLOBAL STATUS или SHOW SESSION STATUS, это касается только текущей сессии и не затронуто никакими другими клиентами этого mysqld.

    Для получения дополнительной информации посмотрите раздел 7.17 .

  • Ndb_api_wait_meta_request_count_slave

    Сколько раз поток был заблокирован этим ведомым, ожидая основанного на метаданных сигнала, который ожидается для запросов DDL, новых эпохи и записей транзакции.

    Хотя эта переменная может быть прочитана, используя также SHOW GLOBAL STATUS или SHOW SESSION STATUS, это эффективно глобально. Если этот сервер MySQL не действует как ведомый репликации или не использует таблицы NDB, это значение всегда 0.

    Для получения дополнительной информации посмотрите раздел 7.17 .

  • Ndb_api_wait_meta_request_count

    Сколько раз поток был заблокирован этим MySQL Server (узлом SQL), ожидая основанного на метаданных сигнала, который ожидается для запросов DDL, новых эпохи и записей транзакции.

    Хотя эта переменная может быть прочитана, используя также SHOW GLOBAL STATUS или SHOW SESSION STATUS, это эффективно глобально.

    Для получения дополнительной информации посмотрите раздел 7.17 .

  • Ndb_api_wait_nanos_count_session

    Полное время (в наносекундах), потраченное в этой сессии клиента на ожидание любого типа сигнала от узлов данных.

    Хотя эта переменная может быть прочитана, используя также SHOW GLOBAL STATUS или SHOW SESSION STATUS, это касается только текущей сессии и не затронуто никакими другими клиентами этого mysqld.

    Для получения дополнительной информации посмотрите раздел 7.17 .

  • Ndb_api_wait_nanos_count_slave

    Полное время (в наносекундах), потраченное этим ведомым на ожидание любого типа сигнала от узлов данных.

    Хотя эта переменная может быть прочитана, используя также SHOW GLOBAL STATUS или SHOW SESSION STATUS, это эффективно глобально. Если этот сервер MySQL не действует как ведомый репликации или не использует таблицы NDB, это значение всегда 0.

    Для получения дополнительной информации посмотрите раздел 7.17 .

  • Ndb_api_wait_nanos_count

    Полное время (в наносекундах), потраченное этим MySQL Server (узлом SQL) на ожидание любого типа сигнала от узлов данных.

    Хотя эта переменная может быть прочитана, используя также SHOW GLOBAL STATUS или SHOW SESSION STATUS, это эффективно глобально.

    Для получения дополнительной информации посмотрите раздел 7.17 .

  • Ndb_api_wait_scan_result_count_session

    Сколько раз поток был заблокирован в этой сессии клиента, ожидая основанного на просмотре сигнала, например, ожидая большего количества результатов просмотра или закрытия просмотра.

    Хотя эта переменная может быть прочитана, используя также SHOW GLOBAL STATUS или SHOW SESSION STATUS, это касается только текущей сессии и не затронуто никакими другими клиентами этого mysqld.

    Для получения дополнительной информации посмотрите раздел 7.17 .

  • Ndb_api_wait_scan_result_count_slave

    Сколько раз поток был заблокирован этим ведомым, ожидая основанного на просмотре сигнала, например, ожидая большего количества результатов просмотра или закрытия просмотра.

    Хотя эта переменная может быть прочитана, используя также SHOW GLOBAL STATUS или SHOW SESSION STATUS, это эффективно глобально. Если этот сервер MySQL не действует как ведомый репликации или не использует таблицы NDB, это значение всегда 0.

    Для получения дополнительной информации посмотрите раздел 7.17 .

  • Ndb_api_wait_scan_result_count

    Сколько раз поток был заблокирован этим MySQL Server (узлом SQL), ожидая основанного на просмотре сигнала, например, ожидая большего количества результатов просмотра или закрытия просмотра.

    Хотя эта переменная может быть прочитана, используя также SHOW GLOBAL STATUS или SHOW SESSION STATUS, это эффективно глобально.

    Для получения дополнительной информации посмотрите раздел 7.17 .

  • Ndb_cluster_node_id

    Если сервер действует как узел NDB Cluster, значение этой переменной ID узла в кластере.

    Если сервер не часть NDB Cluster, значение этой переменной 0.

  • Ndb_config_from_host

    Если сервер часть NDB Cluster, значение этой переменной это имя хоста или IP-адрес сервера управления кластера, от которого это получает свои данные конфигурации.

    Если сервер не часть NDB Cluster, значение этой переменной пустая строка.

  • Ndb_config_from_port

    Если сервер часть NDB Cluster, значение этой переменной это номер порта, через который это связано с сервером управления кластера, от которого получает свои данные конфигурации.

    Если сервер не часть NDB Cluster, то значение этой переменной 0.

  • Ndb_conflict_fn_max_del_win

    Показывает число раз, которое строка была отклонена на текущем узле SQL из-за использования разрешения конфликтов репликации NDB Cluster NDB$MAX_DELETE_WIN() с момент запуска этого mysqld.

    Для получения дополнительной информации посмотрите раздел 8.11.

  • Ndb_conflict_fn_max

    Используется в разрешении конфликтов репликации NDB Cluster, эта переменная показывает сколько раз строка не была применена на текущем узле SQL из-за разрешения конфликтов greatest timestamp wins с последнего запуска mysqld.

    Для получения дополнительной информации посмотрите раздел 8.11.

  • Ndb_conflict_fn_old

    Используется в разрешении конфликтов репликации NDB Cluster, эта переменная показывает сколько раз строка не была применена как результат разрешения конфликтов same timestamp wins с момента запуска mysqld.

    Для получения дополнительной информации посмотрите раздел 8.11.

  • Ndb_conflict_fn_epoch

    Используется в разрешении конфликтов репликации NDB Cluster, эта переменная показывает количество строк, которые были в разрешении конфликтов NDB$EPOCH() с момента запуска mysqld.

    Для получения дополнительной информации посмотрите раздел 8.11.

  • Ndb_conflict_fn_epoch2

    Показывает количество строк, которые были в разрешении конфликтов репликации NDB Cluster при использовании NDB$EPOCH2(), на ведущем, назначенном как первичный, после последнего перезапуска.

    Для получения дополнительной информации посмотрите NDB$EPOCH2().

  • Ndb_conflict_fn_epoch_trans

    Используется в разрешении конфликтов репликации, эта переменная показывает количество строк, которые были в использовании при решении конфликте NDB$EPOCH_TRANS() на mysqld после последнего перезапуска.

    Для получения дополнительной информации посмотрите раздел 8.11.

  • Ndb_conflict_fn_epoch2_trans

    Используется в разрешении конфликтов репликации, эта переменная показывает количество строк, которые были в использовании при решении конфликте NDB$EPOCH_TRANS2() на mysqld после последнего перезапуска.

    Для получения дополнительной информации посмотрите NDB$EPOCH2_TRANS().

  • Ndb_conflict_last_conflict_epoch

    Новая эпоха, в которую конфликт был обнаружен на этом ведомом. Можно сравнить это значение с Ndb_slave_max_replicated_epoch; если Ndb_slave_max_replicated_epoch больше Ndb_conflict_last_conflict_epoch, никакие конфликты еще не были обнаружены.

    См. раздел 8.11.

  • Ndb_conflict_reflected_op_discard_count

    Используя разрешение конфликтов репликации NDB Cluster, это количество операций, которые не были применены из-за ошибки во время выполнения.

    См. раздел 8.11.

  • Ndb_conflict_reflected_op_prepare_count

    Используя разрешение конфликтов репликации NDB Cluster, эта переменная статуса содержит количество отклоненных операций, которые были определены (то есть, подготовлены к выполнению на вторичном).

    См. раздел 8.11.

  • Ndb_conflict_refresh_op_count

    Используя разрешение конфликтов репликации NDB Cluster, это дает количество операций обновления, которые были подготовлены к выполнению на вторичном.

    См. раздел 8.11.

  • Ndb_conflict_last_stable_epoch

    Количество строк, которые были в конфликте транзакционной функцией конфликта.

    См. раздел 8.11.

  • Ndb_conflict_trans_row_conflict_count

    Используется в разрешении конфликтов репликации, эта переменная статуса показывает количество строк, которые были непосредственно в конфликте транзакционной функцией конфликта на данном mysqld после последнего перезапуска.

    В настоящее время единственная транзакционная функция обнаружения конфликта, поддержанная NDB Cluster, это NDB$EPOCH_TRANS(), таким образом, эта переменная статуса эффективно то же самое, как Ndb_conflict_fn_epoch_trans.

    Для получения дополнительной информации посмотрите раздел 8.11.

  • Ndb_conflict_trans_row_reject_count

    Используется в разрешении конфликтов репликации, эта переменная статуса показывает общее количество строк, перестроенных из-за того, чтобы быть определенным как конфликт транзакционной функцией обнаружения конфликта. Это включает не только Ndb_conflict_trans_row_conflict_count, но любые строки в или зависящие от противоречивых транзакций.

    Для получения дополнительной информации посмотрите раздел 8.11.

  • Ndb_conflict_trans_reject_count

    Используется в разрешении конфликтов репликации, эта переменная статуса показывает количество транзакций, которые были в конфликте транзакционной функцией обнаружения конфликта.

    Для получения дополнительной информации посмотрите раздел 8.11.

  • Ndb_conflict_trans_detect_iter_count

    Используется в разрешении конфликтов репликации, это показывает количество внутренних повторений, требуемых, чтобы передать транзакцию эпохи. Должно быть (немного) больше или равным Ndb_conflict_trans_conflict_commit_count.

    Для получения дополнительной информации посмотрите раздел 8.11.

  • Ndb_conflict_trans_conflict_commit_count

    Используется в разрешении конфликтов репликации, это показывает количество транзакций эпохи, переданных после того, как они потребовали транзакционной обработки конфликта.

    Для получения дополнительной информации посмотрите раздел 8.11.

  • Ndb_epoch_delete_delete_count

    Когда использовано обнаружение конфликта delete-delete, это количество обнаруженных конфликтов delete-delete, где delete применяется, но обозначенная строка не существует.

  • Ndb_execute_count

    Обеспечивает количество циклов обработки ядра NDB, сделанных операциями.

  • Ndb_last_commit_epoch_server

    Эпоха, последний раз переданная NDB.

  • Ndb_last_commit_epoch_session

    Эпоха последний раз переданная этим клиентом NDB.

  • Ndb_number_of_data_nodes

    Если сервер часть NDB Cluster, значение этой переменной количество узлов данных в кластере.

    Если сервер не часть NDB Cluster, значение этой переменной 0.

  • Ndb_pushed_queries_defined

    Общее количество соединений, спущенных к ядру NDB для распределенной обработки на узлах данных.

    Соединения проверены с использованием EXPLAIN на возможность спуска, увеличивают это число.

  • Ndb_pushed_queries_dropped

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

  • Ndb_pushed_queries_executed

    Количество соединений, успешно спущенных и выполненных NDB.

  • Ndb_pushed_reads

    Количество строк, возвращенных mysqld из ядра NDB соединениями, которые были спущены.

    Выполнение EXPLAIN на соединениях, которые могут быть спущены NDB не добавляет ничего к этому числу.

  • Ndb_pruned_scan_count

    Эта переменная считает количество просмотров, выполненных NDBCLUSTER с послднего запуска кластера, где NDBCLUSTER смог использовать сокращение разделения.

    Использование этой переменной вместе с Ndb_scan_count может быть полезным в дизайне схемы, чтобы максимизировать способность сервера сократить просмотры к единственному разделу таблицы, таким образом включив только единственный узел данных.

  • Ndb_scan_count

    Эта переменная считает общее количество просмотров NDBCLUSTER с последнего запуска NDB Cluster.

  • Ndb_slave_max_replicated_epoch

    Последняя переданная эпоха на этом ведомом. Можно сравнить это значение с Ndb_conflict_last_conflict_epoch; если Ndb_slave_max_replicated_epoch большее из этих двух, никакие конфликты еще не были обнаружены.

    Для получения дополнительной информации посмотрите раздел 8.11.

  • Ndb_system_name

    Если этот MySQL Server связан с NDB cluster, эта переменная только для чтения показывает имя кластерной системы. Иначе значение пустая строка.

5.3.10. Соединения TCP/IP в NDB Cluster

TCP/IP это транспортный механизм по умолчанию для всех связей между узлами в NDB Cluster. Обычно не надо определять связи TCP/IP, кластер автоматически настраивает такие связи для всех узлов данных, узлов управления и узлов API или SQL.

Для исключения к этому правилу посмотрите раздел 5.3.11.

Чтобы отвергнуть параметры связи по умолчанию, необходимо определить связь, используя один или больше разделов [tcp] в файле config.ini. Каждый раздел [tcp] явно определяет связь TCP/IP между двумя узлами NDB Cluster и должен содержать как минимум параметры NodeId1 и NodeId2, а также любые перекрываемые параметры связи.

Также возможно изменить значения по умолчанию для этих параметров, устанавливая их в разделе [tcp default].

Любые Any разделы [tcp] в файле config.ini должны быть после после всех других секций в файле. Однако, это не требуется для раздела [tcp default]. Это требование известная проблема с путем, которым NDB Cluster читает файл config.ini.

Параметры связи, которые могут быть установлены в [tcp] и [tcp default]:

Типы перезапуска. Информацию о типах перезапуска, используемых описаниями параметров в этой секции:

Таблица 5.237. Типы перезапуска NDB Cluster

Символ Тип перезапуска Описание
N Node Параметр может быть обновлен, используя катящийся перезапуск (см. раздел 7.5 )
S System Все узлы кластера должны быть закрыты полностью, затем перезапущены, чтобы вызвать изменение в этом параметре
I Initial Узлы данных должны быть перезапущены, используя опцию --initial
  • NodeId1

    Таблица 5.238. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации NodeId1

    Свойство Значение
    Версия (или позже) NDB 7.5.0
    Тип или единица измерения numeric
    Умолчание [none]
    Диапазон 1 - 255
    Тип перезапуска N

    Чтобы определить связь между двумя узлами, необходимо предоставить их ID разделе в [tcp] как значения NodeId1 и NodeId2. Это уникальные Id для каждого из этих узлов, как описано в разделе 5.3.7.

  • NodeId2

    Таблица 5.239. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации NodeId2

    Свойство Значение
    Версия (или позже) NDB 7.5.0
    Тип или единица измерения numeric
    Умолчание [none]
    Диапазон 1 - 255
    Тип перезапуска N

    Чтобы определить связь между двумя узлами, необходимо предоставить их ID разделе в [tcp] как значения NodeId1 и NodeId2. Это уникальные Id для каждого из этих узлов, как описано в разделе 5.3.7.

  • HostName1

    Таблица 5.240. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации HostName1

    Свойство Значение
    Версия (или позже) NDB 7.5.0
    Тип или единица измерения Имя или IP-адрес
    Умолчание [none]
    Диапазон ...
    Тип перезапуска N

    HostName1 и HostName2 могут использоваться, чтобы определить определенные сетевые интерфейсы, которые будут использоваться для данного соединения по протоколу TCP между двумя узлами. Значения, используемые для этих параметров, могут быть именами хоста или IP-адресами.

  • HostName2

    Таблица 5.241. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации HostName1

    Свойство Значение
    Версия (или позже) NDB 7.5.0
    Тип или единица измерения Имя или IP-адрес
    Умолчание [none]
    Диапазон ...
    Тип перезапуска N

    HostName1 и HostName2 могут использоваться, чтобы определить определенные сетевые интерфейсы, которые будут использоваться для данного соединения по протоколу TCP между двумя узлами. Значения, используемые для этих параметров, могут быть именами хоста или IP-адресами.

  • OverloadLimit

    Таблица 5.242. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации OverloadLimit

    Свойство Значение
    Версия (или позже) NDB 7.5.0
    Тип или единица измерения Байты
    Умолчание 0
    Диапазон 0 - 4294967039 (0xFFFFFEFF)
    Тип перезапуска N

    Когда больше, чем это чмсло непосланных байтов находятся в буфере передачи, связь считают перегруженной.

    Этот параметр может использоваться, чтобы определить сумму непосланных данных, которые должны присутствовать в буфере передачи прежде, чем связь будут считать перегруженной. См. раздел 5.3.13 .

  • SendBufferMemory

    Таблица 5.243. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации SendBufferMemory

    Свойство Значение
    Версия (или позже) NDB 7.5.0
    Тип или единица измерения unsigned
    Умолчание 2M
    Диапазон 256K - 4294967039 (0xFFFFFEFF)
    Тип перезапуска N

    Транспортеры TCP используют буфер, чтобы хранить все сообщения прежде, чем послать к операционной системе. Когда этот буфер достигает 64 КБ, его содержание посылают, их также посылают, когда раунд сообщений был выполнен. Чтобы обращаться с временными ситуациями с перегрузкой, также возможно определить буфер большего размера.

    Если этот параметр устанавливается явно, то память не выделена каждому транспортеру, вместо этого используемое значение обозначает жесткий предел памяти (из полной доступной памяти то есть, TotalSendBufferMemory), который может использоваться единственным транспортером. Для получения дополнительной информации о формировании динамического буфера памяти транспортера в NDB Cluster см. раздел 5.3.13.

    Размер по умолчанию буфера передачи составляет 2 МБ, который является размером, рекомендуемым в большинстве ситуаций. Минимальный размер составляет 64 КБ, теоретический максимум составляет 4 ГБ.

  • SendSignalId

    Таблица 5.244. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации SendSignalId

    Свойство Значение
    Версия (или позже) NDB 7.5.0
    Тип или единица измерения boolean
    Умолчание [see text]
    Диапазон true, false
    Тип перезапуска N

    Чтобы быть в состоянии восстановить распределенную дейтаграмму сообщения, необходимо определить каждое сообщение. Когда этот параметр устанавливается в Y, идентификаторы сообщений транспортируются по сети. Эта опция отключена по умолчанию в производстве, но включена в версиях -debug.

  • Checksum

    Таблица 5.245. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации Checksum

    Свойство Значение
    Версия (или позже) NDB 7.5.0
    Тип или единица измерения boolean
    Умолчание false
    Диапазон true, false
    Тип перезапуска N

    Это булев параметр. Это отключено по умолчанию. Когда это позволено, контрольные суммы для всех сообщений вычисляются прежде, чем они попадут в буфер передачи. Эта особенность гарантирует, что сообщения не испорчены, ожидая в буфере, или транспортным механизмом.

  • PortNumber (OBSOLETE)

    Этот параметр раньше определял номер порта, который будет использоваться для того, чтобы слушать связи от других узлов. Это теперь устарело (и удалено в NDB Cluster 7.5), используйте параметр конфигурации узла данных ServerPort (Bug #77405, Bug #21280456).

  • PreSendChecksum

    Таблица 5.246. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации PreSendChecksum

    Свойство Значение
    Версия (или позже)NDB 7.6.6
    Тип или единица измеренияboolean
    Умолчание false
    Диапазон true, false
    Тип перезапускаS

    Если этот параметр и Checksum включены, выполняется предварительная проверка контрольной суммы и проверяются все сигналы TCP между узлами на ошибки. Не имеет никакого эффекта, если Checksum выключен.

  • ReceiveBufferMemory

    Таблица 5.247. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации ReceiveBufferMemory

    Свойство Значение
    Версия (или позже) NDB 7.5.0
    Тип или единица измерения Байты
    Умолчание 2M
    Диапазон 16K - 4294967039 (0xFFFFFEFF)
    Тип перезапуска N

    Определяет размер буфера, используемого, получая данные из сокета TCP/IP.

    Значение по умолчанию этого параметра составляет 2 МБ. Минимально возможное значение составляет 16 КБ, Теоретический максимум составляет 4 ГБ.

  • TCP_RCV_BUF_SIZE

    Таблица 5.248. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации TCP_RCV_BUF_SIZE

    Свойство Значение
    Версия (или позже)NDB 7.5.0
    Тип или единица измеренияunsigned
    Умолчание 0
    Диапазон 0 - 2G
    Тип перезапускаN

    Определяет размер буфера получения во время инициализации транспортера TCP. Значение по умолчанию и минимальное значение 0, которое позволяет операционной системе или платформе устанавливать это значение. Умолчание рекомендуется для наиболее распространенных случаев использования.

  • TCP_SND_BUF_SIZE

    Таблица 5.249. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации TCP_SND_BUF_SIZE

    Свойство Значение
    Версия (или позже)NDB 7.5.0
    Тип или единица измеренияunsigned
    Умолчание 0
    Диапазон 0 - 2G
    Тип перезапускаN

    Определяет размер буфера передачи во время инициализации транспортера TCP. Значение по умолчанию и минимальное значение 0, которое позволяет операционной системе или платформе устанавливать это значение. Умолчание рекомендуется для наиболее распространенных случаев использования.

  • TCP_MAXSEG_SIZE

    Таблица 5.250. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации TCP_MAXSEG_SIZE

    Свойство Значение
    Версия (или позже)NDB 7.5.0
    Тип или единица измеренияunsigned
    Умолчание 0
    Диапазон 0 - 2G
    Тип перезапускаN

    Определяет размер памяти во время инициализации транспортера TCP. Умолчание рекомендуется для наиболее распространенных случаев использования.

  • TcpBind_INADDR_ANY

    Установка этого параметра в TRUE или 1 свяжет IP_ADDR_ANY, чтобы связи могли быть установлены отовсюду (для самозарожденных связей). Умолчание FALSE (0).

  • Group

    Когда ndb_optimized_node_selection позволен, близость узла используется в некоторых случаях, чтобы выбрать, с которым узлом соединиться. Этот параметр может использоваться, чтобы влиять на близость, устанавливая его в нижнее значение, которое интерпретируется как ближайший. См. описание системной переменной для получения дополнительной информации.

5.3.11. Соединения TCP/IP в NDB Cluster, используя прямые связи

Подготовка кластера, используя прямые связи между узлами данных требует определения явно пересекающихся IP-адресов узлов данных, связанных в разделе [tcp] файла config.ini.

В следующем примере мы предполагаем кластер по крайней мере с четырьмя хостами, один для сервера управления, узла SQL и двух узлов данных. Кластер в целом находится в подсети 172.23.72.* LAN. В дополнение к обычным сетевым соединениям два узла данных связаны непосредственно, используя стандартный пересекающийся кабель и сообщаются друг с другом непосредственно с использованим IP-адресов в диапазоне 1.1.0.*:

# Management Server
[ndb_mgmd]
Id=1
HostName=172.23.72.20
# SQL Node
[mysqld]
Id=2
HostName=172.23.72.21
# Data Nodes
[ndbd]
Id=3
HostName=172.23.72.22
[ndbd]
Id=4
HostName=172.23.72.23
# TCP/IP Connections
[tcp]
NodeId1=3
NodeId2=4
HostName1=1.1.0.1
HostName2=1.1.0.2

HostName1 и HostName2 используются только определяя прямые связи.

Использование прямых соединений по протоколу TCP между узлами данных может повысить полную эффективность, позволив узлам данных обойти устройство Ethernet, такое как коммутатор, концентратор или роутер, таким образом сократив время ожидания.

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

5.3.12. Сопряжения с общей памятью NDB Cluster

Связи между узлами NDB cluster обычно обрабатываются, используя TCP/IP. Общая память (SHM) отличается тем, что сигналы переданы с помощью записи в память, а не в сокет. Транспортер общей памяти (SHM) может улучшить работу, уменьшая до 20% издержек, требуемых соединением по протоколу TCP, управляя узлом API (обычно узел SQL) и узлом данных вместе на том же самом хосте. Можно позволить сопряжение с общей памятью любым из этих двух способов:

  • Устанавливая параметр конфигурации узла данных UseShm = 1 и HostName для узла данных и HostName для узла API к тому же самому значению.

  • При помощи секций [shm] в файле кластерной конфигурации, содержащих параметры настройки для NodeId1 и NodeId2. Этот метод описан более подробно позже в этой секции.

Предположим, что кластер управляет узлом данных, у которого есть ID 1 и узлом SQL, имеющим ID 51 на том же самом компьютере в 10.0.0.1. Чтобы позволить связь SHM между этими двумя узлами, необходимо гарантировать, что следующие записи включены в файл кластерной конфигурации:

[ndbd]
NodeId=1
HostName=10.0.0.1
UseShm=1
[mysqld]
NodeId=51
HostName=10.0.0.1

Эти два записи в дополнение к любым другим записям и установкам параметров, необходимым кластеру. Более полный пример показывают позже в этой секции.

Перед стартом узлов данных, которые используют связи SHM, также необходимо удостовериться, что в операционной системе на каждом компьютере, где есть такой узел данных, ассигновали достаточную память сегментам общей памяти. См. документацию для своей операционной платформы для получения информации относительно этого. В установках, где многократные хосты управляют узлом данных и узлом API, возможно позволить общую память на всех таких хостах, устанавливая UseShm в разделе [ndbd default] конфигурационного файла. Это показывают в примере позже в этой секции.

Хотя это не строго требуется, настраивая для всех связей SHM, может быть установлен один или больше следующих параметров в разделе [shm default] файла (config.ini):

  • ShmSize: Размер общей памяти.

  • ShmSpinTime: Время в микросекундах перед сном.

  • SendBufferMemory: Размер буфера для сигналов, посланных из этого узла, в байтах.

  • SendSignalId: Указывает, что ID сигнала включен в каждый сигнал, посланный через транспортер.

  • Checksum: Указывает, что контрольная сумма включена в каждый сигнал, посланный через транспортер.

  • PreSendChecksum: Проверки контрольной суммы осуществлены до отправки сигнала. Контрольная сумма должна также быть позволена для этого.

Этот пример показывает простую установку со связями SHM на многих хостах в NDB Cluster, используя 3 компьютера, перечисленные здесь именем хоста, принимая показанные типы узлов:

  1. 10.0.0.0: Сервер управления

  2. 10.0.0.1: Узел данных и узел SQL

  3. 10.0.0.2: Узел данных и узел SQL

В этом сценарии каждый узел данных общается с сервером управления и с другим узлом данных, используя транспортеры TCP, каждый узел SQL использует транспортер общей памяти, чтобы общаться с узлом данных, который является местным к нему, и транспортер TCP, чтобы общаться с узлом удаленных данных. Базовая конфигурация, отражающая эту установку, представлена файлом config.ini, содержание которого показывают здесь:

[ndbd default]
DataDir=/path/to/datadir
UseShm=1
[shm default]
ShmSize=8M
ShmSpintime=200
SendBufferMemory=4M
[tcp default]
SendBufferMemory=8M
[ndb_mgmd]
NodeId=49
Hostname=10.0.0.0
DataDir=/path/to/datadir
[ndbd]
NodeId=1
Hostname=10.0.0.1
DataDir=/path/to/datadir
[ndbd]
NodeId=2
Hostname=10.0.0.2
DataDir=/path/to/datadir
[mysqld]
NodeId=51
Hostname=10.0.0.1
[mysqld]
NodeId=52
Hostname=10.0.0.2
[api]
[api]

Параметры, затрагивающие все транспортеры общей памяти, устанавливаются в разделе [shm default], они могут быть отвергнуты для каждого подключения в одном или больше разделах [shm]. Каждая такая секция должна быть связана с данной связью SHM использованием NodeId1 и NodeId2, значения, требуемые для этих параметров, являются ID узла этих двух узлов, связанных транспортером. Можно также определить узлы с использованием имени хоста HostName1 и HostName2, но эти параметры не требуются.

Узлы API, для которых не установлены никакие имена хоста, используют транспортер TCP, чтобы общаться с узлами данных, независимыми от хостов, на которых они запущены, набор параметров и значений в разделе [tcp default] конфигурационного файла относится ко всем транспортерам TCP кластера.

Для оптимальной работы можно определить время ротации для транспортера SHM transporter ( ShmSpinTime), это затрагивает и поток приемника узла данных и владельца опроса (поток получения или пользовательский поток) в NDB.

Типы перезапуска. Информацию о типах перезапуска, используемых описаниями параметра в этой секции, показывают в следующей таблице:

Таблица 5.251. Типы перезапуска NDB Cluster

Символ Тип перезапуска Описание
N Node Параметр может быть обновлен, используя катящийся перезапуск (см. раздел 7.5 )
S System Все узлы должны быть закрыты полностью, затем перезапущены, чтобы вызвать изменение в этом параметре
I Initial Узлы данных должны быть перезапущены, используя опцию --initial
  • Checksum

    Таблица 5.252. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации общей памяти Checksum

    Свойство Значение
    Версия (или позже) NDB 7.5.0
    Тип или единица измеренияboolean
    Умолчание true
    Диапазон true, false
    Тип перезапускаN

    Этот параметр булев, который отключен по умолчанию. Когда это позволено, контрольные суммы для всех сообщений вычисляются прежде, чем быть помещенными в буфер передачи.

    Эта особенность препятствует тому, чтобы сообщения были испорчены, ожидая в буфере. Это также служит проверкой против данных, испорченных во время транспортировки.

  • Group

    Таблица 5.253. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации общей памяти Group

    Свойство Значение
    Версия (или позже)NDB 7.5.0
    Тип или единица измеренияunsigned
    Умолчание 35
    Диапазон 0 - 200
    Тип перезапускаN

    Определяет близость группы, меньшее значение интерпретируется как "ближе". Значение по умолчанию достаточно для большинства условий.

  • HostName1

    Таблица 5.254. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации общей памяти HostName1

    Свойство Значение
    Версия (или позже) NDB 7.5.0
    Тип или единица измерения Имя или IP-адрес
    Умолчание [none]
    Диапазон ...
    Тип перезапуска N

    HostName1 и HostName2 могут использоваться, чтобы указать определенные сетевые интерфейсы, которые будут использоваться для данной связи SHM между двумя узлами. Значения, используемые для этих параметров, могут быть именами хоста или IP-адресами.

  • HostName2

    Таблица 5.255. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации общей памяти HostName2

    Свойство Значение
    Версия (или позже) NDB 7.5.0
    Тип или единица измерения Имя или IP-адрес
    Умолчание [none]
    Диапазон ...
    Тип перезапуска N

    HostName1 и HostName2 могут использоваться, чтобы указать определенные сетевые интерфейсы, которые будут использоваться для данной связи SHM между двумя узлами. Значения, используемые для этих параметров, могут быть именами хоста или IP-адресами.

  • NodeId1

    Таблица 5.256. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации общей памяти NodeId1

    Свойство Значение
    Версия (или позже) NDB 7.5.0
    Тип или единица измерения numeric
    Умолчание [none]
    Диапазон 1 - 255
    Тип перезапуска N

    Чтобы определить связь между двумя узлами, необходимо предоставить идентификаторы узла каждому из них, как NodeId1 и NodeId2.

  • NodeId2

    Таблица 5.257. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации общей памяти NodeId2

    Свойство Значение
    Версия (или позже) NDB 7.5.0
    Тип или единица измерения numeric
    Умолчание [none]
    Диапазон 1 - 255
    Тип перезапуска N

    Чтобы определить связь между двумя узлами, необходимо предоставить идентификаторы узла каждому из них, как NodeId1 и NodeId2.

  • NodeIdServer

    Таблица 5.258. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации общей памяти NodeIdServer

    Свойство Значение
    Версия (или позже) NDB 7.5.0
    Тип или единица измерения numeric
    Умолчание [none]
    Диапазон 1 - 63
    Тип перезапуска N

    Определите сервер конца сопряжения с общей памятью. По умолчанию это ID узла данных.

  • OverloadLimit

    Таблица 5.259. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации общей памяти OverloadLimit

    Свойство Значение
    Версия (или позже) NDB 7.5.0
    Тип или единица измерения Байты
    Умолчание 0
    Диапазон 0 - 4294967039 (0xFFFFFEFF)
    Тип перезапуска N

    Когда больше, чем это число непосланных байтов находятся в буфере передачи связь считают перегруженной.

    Этот параметр может использоваться, чтобы определить сумму непосланных данных, которые должны присутствовать в буфере передачи прежде, чем связь будут считать перегруженной. Посмотрите разделы 5.3.13 и 7.10.44.

  • PreSendChecksum

    Таблица 5.260. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации общей памяти PreSendChecksum

    Свойство Значение
    Версия (или позже) NDB 7.6.6
    Тип или единица измерения boolean
    Умолчание false
    Диапазон true, false
    Тип перезапуска S

    Если этот параметр и Checksum включены, предварительно проверяются контрольные суммы перед отправкой и проверяются все сигналы SHM между узлами для поиска ошибок. Не имеет никакого эффекта, если выключен Checksum.

  • SendBufferMemory

    Таблица 5.261. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации общей памяти SendBufferMemory

    Свойство Значение
    Версия (или позже) NDB 7.6.6
    Тип или единица измерения integer
    Умолчание 2M
    Диапазон 256K - 4294967039 (0xFFFFFEFF)
    Тип перезапуска N

    Размер (в байтах) общего буфера памяти для сигналов, посланных из этого узла, используя сопряжение с общей памятью.

  • SendSignalId

    Таблица 5.262. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации общей памяти SendSignalId

    Свойство Значение
    Версия (или позже) NDB 7.5.0
    Тип или единица измерения boolean
    Умолчание false
    Диапазон true, false
    Тип перезапуска N

    Чтобы восстановить путь распределенного сообщения, необходимо предоставить каждому сообщению уникальный идентификатор. Установка этого параметра в Y предписывает включить эти идентификаторы сообщений, которые также будут транспортироваться по сети. Эта опция отключена по умолчанию в производстве и включена в версиях -debug.

  • ShmKey

    Таблица 5.263. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации общей памяти ShmKey

    Свойство Значение
    Версия (или позже)NDB 7.5.0
    Тип или единица измеренияunsigned
    Умолчание 0
    Диапазон 0 - 4294967039 (0xFFFFFEFF)
    Тип перезапускаN

    Настраивая сегменты общей памяти, узел ID, выраженный как целое число, используется, чтобы определить исключительно сегмент общей памяти, чтобы использовать для коммуникации. Нет никакого значения по умолчанию. Если UseShm включен, ключ общей памяти вычисляется автоматически NDB.

  • ShmSize

    Таблица 5.264. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации общей памяти ShmSize

    Свойство Значение
    Версия (или позже)NDB 7.5.0
    Тип или единица измерения Байты
    Умолчание 1M
    Диапазон 64K - 4294967039 (0xFFFFFEFF)
    Тип перезапускаN
    Версия (или позже) NDB 7.6.6
    Тип или единица измеренияБайты
    Умолчание 4M
    Диапазон 64K - 4294967039 (0xFFFFFEFF)
    Тип перезапускаN

    У каждой связи SHM есть сегмент общей памяти, куда сообщения между узлами помещаются отправителем и читаются получателем. Размер этого сегмента определяется ShmSize. Значение по умолчанию в NDB 7.6.6 и позже составляет 4 МБ.

  • ShmSpinTime

    Таблица 5.265. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации общей памяти ShmSpinTime

    Свойство Значение
    Версия (или позже) NDB 7.6.6
    Тип или единица измерения integer
    Умолчание 0
    Диапазон 0 - 2000
    Тип перезапускаS

    При получении время, чтобы ждать перед сном в микросекундах.

  • SigNum

    Таблица 5.266. Эта таблица обеспечивает тип и информацию о значении для параметра конфигурации общей памяти Signum

    Свойство Значение
    Версия (или позже) NDB 7.5.0
    Тип или единица измеренияunsigned
    Умолчание [none]
    Диапазон 0 - 4294967039 (0xFFFFFEFF)
    Тип перезапускаN

    Этот параметр больше не используется с NDB 7.6.6 и если установлен в этой и более поздних версиях проигнорирован.

    Следующее применяется только в NDB 7.6.5 и ранее:

    Используя транспортер общей памяти, процесс посылает сигнал операционной системы в другой процесс, когда есть новые доступные данные в общей памяти. Если тот сигнал конфликтует с существующим сигналом, этот параметр может использоваться, чтобы изменить его. Это возможность SHM вследствие того, что различные операционные системы используют различные номера сигнала.

    Значение по умолчанию SigNum = 0, поэтому это должно быть установлено, чтобы избежать ошибок в журнале кластера, используя транспортер общей памяти. Как правило, этот параметр устанавливается в 10 в разделе [shm default] файла config.ini.

5.3.13. Формирование буфера передачи NDB Cluster

Ядро NDB использует объединенный буфер передачи, память которого ассигнуется динамично из пула, разделенного всеми транспортерами. Это означает, что размер буфера может быть приспособлен по мере необходимости. Конфигурация объединенного буфера может быть задана, устанавливая следующие параметры:

  • TotalSendBufferMemory. Этот параметр может быть установлен для всех типов узлов NDB Cluster то есть, он может быть установлен в разделах [ndbd], [mgm] и [api] (или [mysql]) файла config.ini. Это представляет общую сумму памяти (в байтах), чтобы быть ассигнованной каждым узлом, для которого это установлено, для использования среди всех формируемых транспортеров. Если установлено, минимум составляет 256 КБ, максимум равняется 4294967039.

    Чтобы быть обратно совместимым с существующими конфигурациями, этот параметр берет в качестве значения по умолчанию сумму максимума размеров буферов передачи всех формируемых транспортеров плюс дополнительные 32KB (одну страницу) на транспортер. Максимум зависит от типа транспортера, как показано в следующей таблице:

    Таблица 5.267. Типы транспортера с максимумом размеров буфера передачи

    Транспортер Максимум размера буфера передачи (байты)
    TCP SendBufferMemory (умолчание = 2M)
    SHM20K

    Это позволяет существующим конфигурациям функционировать близко к тому же самому пути, как в NDB Cluster 6.3 и ранее, с тем же самым объемом памяти и пространством буфера передачи, доступным каждому транспортеру. Однако, память, которая не использована одним транспортером, недоступна другим транспортерам.

  • OverloadLimit. Этот параметр используется в разделе [tcp] файла config.ini и обозначает сумму непосланных данных (в байтах), которые должны присутствовать в буфере прежде, чем связь будут считать перегруженной. Когда такое условие перегрузки происходит, транзакции, которые затрагивают перегруженную связь, вылетают с ошибкой NDB API Error 1218 (Send Buffers overloaded in NDB kernel) до снятия статуса перегрузки. Значение по умолчанию 0, в этом случае эффективный предел перегрузки вычисляется как SendBufferMemory * 0.8 для данной связи. Максимальное значение для этого параметра 4G.

  • SendBufferMemory. Это значение обозначает жесткий предел для объема памяти, который может использоваться единственным транспортером из всего пула, определенного TotalSendBufferMemory. Однако, сумма SendBufferMemory для всех формируемых транспортеров может быть больше TotalSendBufferMemory, установленного для данного узла. Это способ сохранить память, когда много узлов используются, пока максимальный объем памяти никогда не требуется всеми транспортерами в то же время.

  • ReservedSendBufferMemory. Удалено в NDB 7.5.2.

    До NDB 7.5.2 этот параметр узла данных присутствовал, но на самом деле не использовался (Bug #77404, Bug #21280428).

Можно использовать таблицу ndbinfo.transporters, чтобы контролировать использование буферной памяти и обнаружить условия замедления и перегрузки, которые могут оказать негативное влияние на работу.

5.4. Применение High-Speed Interconnects в NDB Cluster

Даже перед дизайном NDBCLUSTER в 1996 было очевидно, что одной из основных проблем, с которыми столкнутся в строительстве параллельных баз данных, будет связь между узлами в сети. Поэтому NDBCLUSTER был разработан с самого начала, чтобы разрешить использование многих различных транспортных механизмов данных. В этом руководстве мы используем термин транспортер для них.

Кодовая база NDB Cluster предусматривает четыре различных транспортера:

  • TCP/IP на 100 Mbps или гигабитном Ethernet, как обсуждено в разделе 5.3.10 .

  • Прямой (от машины к машине) TCP/IP : хотя этот транспортер использует тот же самый протокол TCP/IP, как упомянуто в предыдущем пункте, это требует подготовки аппаратных средств по-другому и формируется иначе. Поэтому это считают отдельным транспортным механизмом для NDB Cluster. См. раздел 5.3.11.

  • Shared memory (SHM). Поддержано, начиная с NDB 7.6.6. См. раздел 5.3.12.

  • Scalable Coherent Interface (SCI).

    Использование транспортеров SCI в NDB Cluster требует специализированных аппаратных средств, программного обеспечения и исполняемым модулям MySQL недоступно его использование в NDB 7.5 или 7.6, см. SCI Transport Connections in NDB Cluster.

Большинство пользователей сегодня использует TCP/IP по Ethernet, потому что это повсеместно распространено. TCP/IP также безусловно лучше всего проверенный транспортер для использования в NDB Cluster.

Мы работаем, чтобы удостовериться, что связь с процессом ndbd сделана пакетами, которые как можно больше, потому что это приносит пользу всем типам передачи данных.

Поиск

 

Найди своих коллег!

Вы можете направить письмо администратору этой странички, Алексею Паутову. mailto:alexey.v.pautov@mail.ru