Системный неймспейс #config
В системном неймспейсе #config
хранятся настройки: сбора статистической информации, производительности, репликации и шардинга.
Имя | Тип данных | Описание |
---|---|---|
profiling | object | Параметры профилирования. Поля объекта:queriesperfstats — флаг, включающий запись статистики производительности запросов к базе данных в неймспейс #queriesperfstats .queries_threshold_us — минимальное время выполнения запроса для его записи в неймспейс #queriesperfstats .perfstats — флаг, включающий запись статистики производительности неймспейсов базы данных в неймспейс #perfstats .memstats — флаг, включающий запись информации о потреблении памяти каждым неймспейсом базы данных в неймспейс #memstats .activitystats — Флаг, включающий запись информации о текущих активностях пользователей базы данных в неймспейс #activitystats . long_queries_logging — блок с настройками для логирования долгих запросов и транзакций. Состоит из трех секций - select , update_delete , transaction . В секциях select и update_delete определяются параметры threshold_us (минимальный порог, устанавливающий время выполнения запроса в микросекундах, при превышении которого происходит логирование данного запроса с уровнем Warning, при отрицательном значении параметра логирование отключено) и normalized (флаг, включающий логирование запросов в нормализованном виде). В секции transaction устанавливаются 2 параметра threshold_us и avg_step_threshold_us , устанавливающие пороги для логирования на выполнение транзакции целиком и на длительность одного шага в среднем соответственно. Также измеряются в микросекундах и при отрицательных значениях отключают соответствующие записи в лог. |
namespaces | array | Массив объектов с параметрами неймспейсов базы данных. Поля объектов — элементов массива:namespace — имя неймспейса, для которого применяются настройки. Если значение поля * , настройки применяются для всех неймспейсов базы данных.log_level — уровень логирования запросов к неймспейсу. Возможные варианты в порядке возрастания количества логируемых событий: none , error , warning , info , trace .lazyload — (deprecated-параметр) флаг, включающий режим lazy load для неймспейса (оно будет загружено с диска при первом вызове, а не при запуске Reindexer).unload_idle_threshold — (deprecated-параметр) таймаут для выгрузки данных неймспейса из оперативной памяти. Если значение поля 0 , данные выгружаться не будут.join_cache_mode — режим join-кэша. Возможные значения: on , off , aggressive .start_copy_policy_tx_size — включает копирование неймспейса для транзакции с числом шагов, превышающим заданное значение (при условии, что параметр copy_politics_multiplier также разрешает это). Значение по умолчанию — 10000 .copy_policy_multiplier — отключает копирование, если размер неймспейса больше, чем copy_policy_multiplier * start_copy_tx_size . Значение по умолчанию 5 .tx_size_to_always_copy — включает принудительное копирование неймспейсов для транзакций с количеством шагов больше указанного значения. Значение по умолчанию — 100000 .optimization_timeout_ms — таймаут перед началом фоновой оптимизации индексов после последнего обновления. При значении 0 оптимизация отключается.optimization_sort_workers — Максимальное количество фоновых потоков оптимизации индексов. При значении 0 оптимизация сортировки отключается.wal_size — максимальное количество записей в WAL неймспейса.min_preselect_size — минимальный размер предварительной выборки для оптимизации запросов с INNER JOIN путем введения фильтров. Параметр применяется, если произведение MaxPreselectPart * ns.size (размер неймспейса) меньше установленного для него значения.max_preselect_size — максимальный размер предварительной выборки для оптимизации запросов с INNER JOIN путем введения фильтров.max_preselect_part — максимальная часть неймспейса для предварительной выборки записей из него для оптимизации запросов с INNER JOIN путем введения фильтров.index_updates_counting_mode — флаг, включающий «режим подсчета» для отслеживания обновлений индекса вместо сохранения этих обновлений при модификации документов. Это увеличит время оптимизации индекса, однако может сократить время вставки.strict_mode — уровень строгости проверки запроса при выполнении. Добавляет дополнительную проверку существования в целевом неймспейсе указанных в запросе полей (при значении names ) или индексов (при значении indexes ). Существование полей/индексов проверяется в условиях сортировки и фильтрации. Возможные значения: none , names (значение по умолчанию) или indexes .sync_storage_flush_limit — количество обновлений в буфере памяти, при превышении которого все его содержимое принудительно отправляется в дисковый сторадж (в дополнение к записи в фоновом потоке). Если значение 0 , очистка буфера и запись его содержимого в дисковый сторадж происходит только в фоновом потоке. |
replication | object | Общие настройки репликации. Поля объекта:cluster_id — id кластера, в состав которого входит сервер.server_id — id сервера. Должен быть уникальным для каждого узла. Диапазон допустимых значений — от 0 до 999 |
async_replication | object | Специальные параметры для асинхронной репликации. Поля объекта:role — роль экземпляра сервера в репликации. Возможные значения:none — репликация отключена,follower — сервер участвует в репликации как Follower ,leader — сервер участвует в репликации как Leader .sync_threads — количество потоков репликации.syncs_per_thread — максимальное количество одновременных синхронизаций для каждого потока репликации.online_updates_timeout_sec — время ожидания ответа от Follower для режима онлайн-репликации. Задается в секундах.sync_timeout_sec — время на запись чанка из снэпшота. Если запись не произошла за это время, то соединение разрывается и происходит повторная синхронизация. Задается в секундах.retry_sync_interval_msec — таймаут повторной попытки синхронизации при возникновении сетевых ошибок.enable_compression — флаг для включения/отключения сжатия сетевого трафика.batching_routines_count — количество корутин, одновременно занимающихся отправкой данных при онлайн-репликации для каждого Follower -а. Увеличение числа корутин снизит задержки, связанные с сетью, за счёт большей асинхронности, но увеличит потребление памяти.max_wal_depth_on_force_sync — максимальное количество записей WAL , которые будут скопированы после запуска полной синхронизации. Увеличение значения этого параметра может помочь избежать force-sync синхронизации после переключения Leader , а также увеличивает расход оперативной памяти во время синхронизации.namespaces — список неймспейсов для репликации. Если он пустой, будет выполняться репликация всех неймспейсов из базы данных. Все реплицируемые неймспейсы на Follower -ах будут иметь режим read-only .nodes — список Follower -ов и их настройки:dsn — DSN ноды—Follower -а. Должен задаваться в cproto-формате. Содержит адрес и порт для доступа к Follower по протоколу RPC и имя БД Follower , в которую будут реплицироваться данные;namespaces — необязательный список неймспейсов для репликации на данную ноду-Follower . Если он не задан, будет использоваться значение из общей конфигурации репликации. |
action | object | Команды для управления сервером Reindexer (подробнее — в разделе «Интерактивное управление репликацией»). Команды добавляются сюда с помощью UPSERT и сразу выполняются. Состав объекта:command — команда для выполнения. |
sharding | object | Настройки шардинга. В данный момент изменять эти настройки через неймспейс #config нельзя, они доступны только для чтения.Поля объекта: version — версия формата файла конфигурации.namespaces — список (массив) неймспейсов для шардинга. Элементы массива:namespace — имя неймспейса,default_shard — id шарда по умолчанию. На нем будут храниться все записи со значениями ключа шардинга, которые не заданы в условиях для шардинга на другие шарды,index — индекс, по которому будет производиться распределение записей по шардам,keys — массив ключе шардинга. Включает элементы: shard_id — id шарда, на котором будут храниться записи с заданным значением ключа; values — значение ключа шардинга для распределения записей на шард с указанным выше id.shards — массив со сведениями об узлах, участвующих в шардинге. Элементы массива:shard_id — id узла, dsns — адрес узла (или несколько адресов, если шардирование используется совместно с кластеризацией).this_shard_id — id данного шарда.reconnect_timeout_msec — таймаут для переподключения для одного узла (лимит времени для запроса статуса).shards_awaiting_timeout_sec — время ожидания подключения шардов при выполнении распределённых операций (например, OpenNamespace или AddIndex). Параметр необходим, т.к. некоторые операции требуют, чтобы все шарды были онлайн и при этом они могут запускаться не одновременно. Значение 0 для этого параметра отключает механизм ожидания, -1 — устанавливает неограниченное время ожидания,proxy_conn_count — количество прокси-соединений между шардами. Диапазон возможных значений — от 1 до 64.proxy_conn_concurrency — количество одновременных запросов для каждого прокси-соединения. Диапазон возможных значений — от 1 до 1024.proxy_conn_threads — количество потоков для прокси-соединений. |
Пример JSON-представления неймспейса:
{
"items": [
{
"type": "profiling",
"profiling": {
"queriesperfstats": false,
"queries_threshold_us": 10,
"perfstats": false,
"memstats": true,
"activitystats": false,
"long_queries_logging": {
"select": {
"threshold_us": 1000,
"normalized": false
},
"update_delete": {
"threshold_us": -1,
"normalized": false
},
"transaction": {
"threshold_us": 1000,
"avg_step_threshold_us": 30
}
}
}
},
{
"type": "namespaces",
"namespaces": [
{
"namespace": "*",
"log_level": "none",
"lazyload": false,
"unload_idle_threshold": 0,
"join_cache_mode": "off",
"start_copy_policy_tx_size": 10000,
"copy_policy_multiplier": 5,
"tx_size_to_always_copy": 100000,
"optimization_timeout_ms": 800,
"optimization_sort_workers": 4,
"wal_size": 4000000,
"min_preselect_size": 1000,
"max_preselect_size": 1000,
"max_preselect_part": 0.1,
"index_updates_counting_mode": false
}
]
},
{
"type": "replication",
"replication": {
"cluster_id": 2,
"server_id": 0
}
},
{
"type": "async_replication",
"async_replication": {
"role": "none",
"sync_threads": 4,
"syncs_per_thread": 2,
"online_updates_timeout_sec": 20,
"sync_timeout_sec": 60,
"retry_sync_interval_msec": 30000,
"enable_compression": true,
"batching_routines_count": 100,
"force_sync_on_logic_error": false,
"force_sync_on_wrong_data_hash": false,
"max_wal_depth_on_force_sync": 1000,
"namespaces": [],
"nodes": []
}
},
{
"type": "action",
"action": {
"command": ""
}
},
{
"type": "sharding",
"sharding": {
"version": 1,
"namespaces": [
{
"namespace": "ns",
"default_shard": 0,
"index": "location",
"keys": [
{
"shard_id": 1,
"values": [
"Europe",
"Asia"
]
},
{
"shard_id": 2,
"values": [
"North America"
]
}
]
},
{
"namespace": "ns1",
"default_shard": 0,
"index": "location",
"keys": []
}
],
"shards": [
{
"shard_id": 0,
"dsns": [
"cproto://127.0.0.1:7110/sharding_db"
]
},
{
"shard_id": 1,
"dsns": [
"cproto://127.0.0.1:7210/sharding_db"
]
},
{
"shard_id": 2,
"dsns": [
"cproto://127.0.0.1:7310/sharding_db"
]
}
],
"this_shard_id": 0,
"reconnect_timeout_msec": 3000,
"shards_awaiting_timeout_sec": 30,
"proxy_conn_count": 8,
"proxy_conn_concurrency": 8,
"proxy_conn_threads": 4
}
}
],
"namespaces": [
"#config"
],
"cache_enabled": true
}