Файл конфигурации¶
Файл конфигурации содержит параметры кластера и инстанса для запуска Picodata.
Назначение файла конфигурации¶
Использование файла конфигурации является дополнительным способом задания параметров кластера и инстанса при запуске Picodata, помимо опций команды picodata run и переменных окружения.
Команда для запуска инстанса Picodata, если файл конфигурации назван
config.yaml
и расположен в директории вызова команды:
picodata run
Команда для запуска инстанса Picodata в остальных случаях:
picodata run --config <PATH>
где <PATH>
— путь к файлу конфигурации в формате YAML.
См. также:
Описание файла конфигурации¶
Результатом выполнения команды picodata config default -o config.yaml
является файл конфигурации Picodata в формате YAML со стандартными
значениями параметров:
cluster:
cluster_id: demo # (1)!
tier:
default:
replication_factor: 1 # (4)!
can_vote: true # (3)!
default_replication_factor: 1 # (2)!
instance:
data_dir: . # (8)!
service_password_file: null # (25)!
instance_id: null # (11)!
replicaset_id: null # (24)!
tier: default # (27)!
failure_domain: {} # (9)!
peer: # (20)!
- localhost:3301
listen: localhost:3301 # (13)!
advertise_address: localhost:3301 # (6)!
http_listen: null # (10)!
admin_socket: ./admin.sock # (5)!
plugin_dir: null # (23)!
audit: null # (7)!
shredding: false # (26)!
log:
level: info # (16)!
destination: null # (14)!
format: plain # (15)!
memtx:
memory: 67108864 # (19)!
checkpoint_count: 2 # (17)!
checkpoint_interval: 3600.0 # (18)!
vinyl:
memory: 134217728 # (29)!
cache: 134217728 # (28)!
iproto:
max_concurrent_messages: 768 # (12)!
pg:
listen: null # (21)!
ssl: false # (22)!
- cluster.cluster_id
- cluster.default_replication_factor
- cluster.tier.<tier_name>.can_vote
- cluster.tier.<tier_name>.replication_factor
- instance.admin_socket
- instance.advertise_address
- instance.audit
- instance.data_dir
- instance.failure_domain
- instance.http_listen
- instance.instance_id
- instance.iproto.max_concurrent_messages
- instance.listen
- instance.log.destination
- instance.log.format
- instance.log.level
- instance.memtx.checkpoint_count
- instance.memtx.checkpoint_interval
- instance.memtx.memory
- instance.peer
- instance.pg.listen
- instance.pg.ssl
- instance.plugin_dir
- instance.replicaset_id
- instance.service_password_file
- instance.shredding
- instance.tier
- instance.vinyl.cache
- instance.vinyl.memory
См. также:
Параметры файла конфигурации¶
cluster.cluster_id¶
Имя кластера. Инстанс не сможет присоединиться к кластеру с другим именем.
Данные:
- Тип: str
- Значение по умолчанию:
demo
Аналогичная переменная окружения: PICODATA_CLUSTER_ID
Аналогичная команда:
picodata run --cluster-id
cluster.default_replication_factor¶
Число реплик — инстансов с одинаковым набором хранимых данных — для каждого репликасета.
Данные:
- Тип: int
- Значение по умолчанию:
1
Аналогичная переменная окружения: PICODATA_INIT_REPLICATION_FACTOR
Аналогичная команда:
picodata run --init-replication-factor
cluster.tier.<tier_name>.can_vote¶
Признак тира <tier_name>, определяющий возможность инстансов участвовать в голосовании на выборах raft-лидера.
Данные:
- Тип: bool
- Значение по умолчанию:
true
Аналогичная команда — picodata run --config-parameter. Пример:
picodata run -c cluster.tier='{"default": {"replication_factor": 1, "can_vote": false}}'
См. также:
cluster.tier.<tier_name>.replication_factor¶
Фактор репликации тира <tier_name>.
Данные:
- Тип: int
- Значение по умолчанию:
1
Аналогичная команда — picodata run --config-parameter. Пример:
picodata run -c cluster.tier='{"default": {"replication_factor": 3, "can_vote": true}}'
instance.admin_socket¶
Путь к unix-сокету для подключения к консоли администратора с помощью
команды picodata admin
. В отличие от picodata connect
, коммуникация
осуществляется в виде обычного текста и всегда происходит под учетной
записью администратора.
Данные:
- Тип: str
- Значение по умолчанию:
./admin.sock
Аналогичная переменная окружения: PICODATA_ADMIN_SOCK
Аналогичная команда:
picodata run --admin-sock
instance.advertise_address¶
Публичный сетевой адрес инстанса. Анонсируется кластеру при запуске инстанса и используется для подключения к нему других инстансов.
Данные:
- Тип: str
- Значение по умолчанию:
localhost:3301
Аналогичная переменная окружения: PICODATA_ADVERTISE
Аналогичная команда:
picodata run --advertise
instance.audit¶
Конфигурация журнала аудита. Доступны следующие варианты:
file:<FILE>
или просто<FILE>
— запись в файлpipe:<COMMAND>
или| <COMMAND>
— перенаправление вывода в подпроцессsyslog:
— перенаправление вывода в службуsyslog
защищенной ОС
Данные:
- Тип: str
- Значение по умолчанию:
null
Аналогичная переменная окружения: PICODATA_AUDIT_LOG
Аналогичная команда:
picodata run --audit
instance.data_dir¶
Рабочая директория инстанса. Здесь Picodata хранит все данные.
Данные:
- Тип: str
- Значение по умолчанию:
.
Аналогичная переменная окружения: PICODATA_DATA_DIR
Аналогичная команда:
picodata run --data-dir
instance.failure_domain¶
Список пар ключ-значение, разделенных запятыми, определяющий географическое расположение сервера — зоны доступности. Picodata не будет объединять два инстанса в один репликасет, если у них совпадают значения хотя бы в одном ключе. Вместо этого будет создан новый репликасет. Репликасеты формируются из инстансов с разными зонами доступности до тех пор, пока не будет достигнут желаемый фактор репликации.
Данные:
- Тип: Block Mappings of { str: str }
- Значение по умолчанию:
{}
Аналогичная переменная окружения: PICODATA_FAILURE_DOMAIN
Аналогичная команда:
picodata run --failure-domain
instance.http_listen¶
Адрес HTTP-сервера.
Данные:
- Тип: str
- Значение по умолчанию:
null
Аналогичная переменная окружения: PICODATA_HTTP_LISTEN
Аналогичная команда:
picodata run --http-listen
instance.instance_id¶
Имя инстанса. При отсутствии параметра значение будет автоматически сгенерировано raft-лидером в момент присоединения инстанса к кластеру.
Данные:
- Тип: str
- Значение по умолчанию:
null
Аналогичная переменная окружения: PICODATA_INSTANCE_ID
Аналогичная команда:
picodata run --instance-id
instance.iproto.max_concurrent_messages¶
Максимальное количество сообщений, которое Picodata обрабатывает параллельно.
Для обработки сообщений Picodata использует файберы. Чтобы загруженность файберов не влияла на производительность всей системы, Picodata ограничивает количество сообщений, обрабатываемых файберами, блокируя некоторые ожидающие запросы.
На мощных системах можно увеличить значение max_concurrent_messages
,
тогда планировщик немедленно начнет обрабатывать ожидающие запросы.
На слабых системах можно уменьшить значение max_concurrent_messages
,
тогда загруженность файберов может снизиться, хотя может потребоваться
некоторое время, пока планировщик дождется завершения уже обрабатываемых
запросов.
Когда количество сообщений достигает max_concurrent_messages
, Picodata
приостанавливает обработку входящих пакетов, пока не обработает предыдущие
сообщения. Это не прямое ограничение количества файберов, обрабатывающих
сетевые сообщения — скорее, это общесистемное ограничение пропускной
способности канала. В свою очередь, это приводит к ограничению количества
входящих сетевых сообщений, которые обрабатывает поток процессора транзакций,
и, как следствие, косвенно влияет на файберы, обрабатывающие сетевые сообщения.
Данные:
- Тип: int
- Значение по умолчанию:
768
Аналогичная команда — picodata run --config-parameter. Пример:
picodata run -c instance.iproto.max_concurrent_messages=1536
instance.listen¶
Сетевой адрес инстанса.
Данные:
- Тип: str
- Значение по умолчанию:
localhost:3301
Аналогичная переменная окружения: PICODATA_LISTEN
Аналогичная команда:
picodata run --listen
instance.log.destination¶
Конфигурация отладочного журнала. Доступны следующие варианты:
file:<FILE>
или просто<FILE>
— запись в файлpipe:<COMMAND>
или| <COMMAND>
— перенаправление вывода в подпроцессsyslog:
— перенаправление вывода в службуsyslog
защищенной ОС
По умолчанию отладочный журнал выводится в stderr.
Данные:
- Тип: str
- Значение по умолчанию:
null
Аналогичная переменная окружения: PICODATA_LOG
Аналогичная команда:
picodata run --log
instance.log.format¶
Формат отладочного журнала.
Возможные значения: plain
, json
Данные:
- Тип: str
- Значение по умолчанию:
plain
Аналогичная переменная окружения: PICODATA_LOG
Аналогичная команда —
picodata run --config-parameter. Пример:
picodata run -c instance.log.format=json
instance.log.level¶
Уровень важности событий, регистрируемых в отладочном журнале.
Возможные значения: fatal
, system
, error
, crit
, warn
, info
,
verbose
, debug
Данные:
- Тип: str
- Значение по умолчанию:
info
Аналогичная переменная окружения: PICODATA_LOG_LEVEL
Аналогичная команда:
picodata run --log-level
instance.memtx.checkpoint_count¶
Максимальное количество снапшотов, хранящихся в директории memtx_dir.
Если после создания нового снапшота их общее количество превысит значение
этого параметра, старые снапшоты будут удалены. Если значение параметра
равно 0
, старые снапшоты останутся нетронутыми.
Данные:
- Тип: int
- Значение по умолчанию:
2
Аналогичная команда — picodata run --config-parameter. Пример:
picodata run -c instance.memtx.checkpoint_count=5
instance.memtx.checkpoint_interval¶
Период активности службы создания снапшотов (checkpoint daemon) в секундах.
Если значение параметра больше нуля и произошло изменение в базе данных, служба
создания снапшотов периодически вызывает функцию, которая
создает новый снапшот. Если значение параметра равно 0.0
, служба создания
снапшотов отключается.
Данные:
- Тип: float
- Значение по умолчанию:
3600.0
(1 час)
Аналогичная команда — picodata run --config-parameter. Пример:
picodata run -c instance.memtx.checkpoint_interval=7200.0
instance.memtx.memory¶
Объем памяти в байтах, выделяемый для хранения кортежей. Когда достигается лимит использования памяти, запросы команд INSERT и UPDATE начинают отклоняться с ошибкой ER_MEMORY_ISSUE. Сервер хранит в выделяемом объеме памяти только кортежи — для хранения индексов и информации о соединениях используется дополнительная память.
Минимальное значение — 33,554,432 байтов (32 МБ)
Данные:
- Тип: int
- Значение по умолчанию:
67108864
(64 МБ)
Аналогичная переменная окружения: PICODATA_MEMTX_MEMORY
Аналогичная команда:
picodata run --memtx-memory
instance.peer¶
Список сетевых адресов других инстансов. Используется при инициализации кластера и присоединении инстанса к уже существующему кластеру.
Данные:
- Тип: Block Sequence of str
- Значение по умолчанию:
- localhost:3301
Аналогичная переменная окружения: PICODATA_PEER
Аналогичная команда:
picodata run --peer
instance.pg.listen¶
Адрес сервера Pgproto.
Данные:
- Тип: str
- Значение по умолчанию:
null
Аналогичная переменная окружения: PICODATA_PG_LISTEN
Аналогичная команда:
picodata run --pg-listen
instance.pg.ssl¶
Признак использования протокола SSL при подключении к Pgproto.
Если для признака указано значение true
, в рабочей директории
инстанса <DATA_DIR>
должны находиться необходимые
SSL-сертификаты:
server.crt
server.key
Данные:
- Тип: bool
- Значение по умолчанию:
false
Аналогичная команда — picodata run --config-parameter. Пример:
picodata run -c instance.pg.ssl=true
instance.plugin_dir¶
Путь к директории, содержащей файлы плагинов.
Данные:
- Тип: str
- Значение по умолчанию:
null
Аналогичная переменная окружения: PICODATA_PLUGIN_DIR
Аналогичная команда:
picodata run --plugin-dir
instance.replicaset_id¶
Имя репликасета. Используется при инициализации кластера и присоединении инстанса к уже существующему кластеру. При отсутствии параметра репликасет будет выбран автоматически на основе зон доступности.
Данные:
- Тип: str
- Значение по умолчанию:
null
Аналогичная переменная окружения: PICODATA_REPLICASET_ID
Аналогичная команда:
picodata run --replicaset-id
instance.service_password_file¶
Путь к файлу с паролем для системного пользователя pico_service
.
Данные:
- Тип: str
- Значение по умолчанию:
null
Аналогичная переменная окружения: PICODATA_SERVICE_PASSWORD_FILE
Аналогичная команда:
picodata run --service-password-file
instance.shredding¶
Режим безопасного удаления рабочих файлов инстанса путем многократной перезаписи специальными битовыми последовательностями, см. Безопасный запуск.
Данные:
- Тип: bool
- Значение по умолчанию:
false
Аналогичная переменная окружения: PICODATA_SHREDDING
Аналогичная команда:
picodata run --shredding
instance.tier¶
Имя тира, которому будет принадлежать инстанс. Используется при инициализации кластера и присоединении инстанса к уже существующему кластеру.
Данные:
- Тип: str
- Значение по умолчанию:
default
Аналогичная переменная окружения: PICODATA_INSTANCE_TIER
Аналогичная команда:
picodata run --tier
instance.vinyl.cache¶
Размер кэша в байтах для движка хранения vinyl
.
Данные:
- Тип: int
- Значение по умолчанию:
134217728
(128 МБ)
Аналогичная команда — picodata run --config-parameter. Пример:
picodata run -c instance.vinyl.cache=268435456
instance.vinyl.memory¶
Максимальное количество оперативной памяти в байтах, которое использует
движок хранения vinyl
.
Данные:
- Тип: int
- Значение по умолчанию:
134217728
(128 МБ)
Аналогичная команда — picodata run --config-parameter. Пример:
picodata run -c instance.vinyl.memory=268435456