Файл конфигурации¶
Файл конфигурации содержит параметры кластера и инстанса для запуска Picodata.
Назначение файла конфигурации¶
Использование файла конфигурации является дополнительным способом
задания параметров кластера и инстанса при запуске Picodata, помимо
опций команды picodata run
и переменных окружения.
Команда для запуска инстанса Picodata, если файл конфигурации назван
picodata.yaml
и расположен в директории вызова команды:
picodata run
Команда для запуска инстанса Picodata в остальных случаях:
picodata run --config <PATH>
где <PATH>
— путь к файлу конфигурации в формате YAML.
См. также:
Описание файла конфигурации¶
Результатом выполнения команды picodata config default -o picodata.yaml
является файл конфигурации Picodata в формате YAML со стандартными
значениями параметров:
cluster:
name: demo # (3)!
tier:
default:
replication_factor: 1 # (7)!
bucket_count: 3000 # (5)!
can_vote: true # (6)!
default_replication_factor: 1 # (1)!
default_bucket_count: 3000 # (2)!
shredding: false # (4)!
instance:
instance_dir: . # (13)!
name: null # (19)!
replicaset_name: null # (24)!
tier: default # (25!
failure_domain: {} # (11)!
peer: # (20)!
- 127.0.0.1:3301
iproto_listen: 127.0.0.1:3301 # (14)!
iproto_advertise: 127.0.0.1:3301 # (9)!
http_listen: null # (12)!
admin_socket: ./admin.sock # (8)!
share_dir: null # (23)!
audit: null # (10)!
log:
level: info # (17)!
destination: null # (15)!
format: plain # (16)!
memtx:
memory: 64M # (18)!
vinyl:
memory: 128M # (27)!
cache: 128M # (26)!
bloom_fpr: 0.05 # (28)!
max_tuple_size: 1M # (29)!
page_size: 8K # (30)!
range_size: 1G # (31)!
run_count_per_level: 2 # (32)!
run_size_ratio: 3.5 # (33)!
read_threads: 1 # (34)!
write_threads: 4 # (35)!
timeout: 60.0 # (36)!
pg:
listen: 127.0.0.1:4327 # (21)!
ssl: false # (22)!
- cluster.default_replication_factor
- cluster.default_bucket_count
- cluster.name
- cluster.shredding
- cluster.tier.<tier_name>.bucket_count
- cluster.tier.<tier_name>.can_vote
- cluster.tier.<tier_name>.replication_factor
- instance.admin_socket
- instance.iproto_advertise
- instance.audit
- instance.failure_domain
- instance.http_listen
- instance.instance_dir
- instance.iproto_listen
- instance.log.destination
- instance.log.format
- instance.log.level
- instance.memtx.memory
- instance.name
- instance.peer
- instance.pg.listen
- instance.pg.ssl
- instance.share_dir
- instance.replicaset_name
- instance.tier
- instance.vinyl.cache
- instance.vinyl.memory
- instance.vinyl.bloom_fpr
- instance.vinyl.max_tuple_size
- instance.vinyl.page_size
- instance.vinyl.range_size
- instance.vinyl.run_count_per_level
- instance.vinyl.run_size_ratio
- instance.vinyl.read_threads
- instance.vinyl.write_threads
- instance.vinyl.timeout
См. также:
Параметры файла конфигурации¶
cluster.default_bucket_count¶
Число сегментов в кластере по умолчанию.
Данные:
- Тип: int
- Значение по умолчанию:
3000
Данный параметр задается только в файле конфигурации.
cluster.default_replication_factor¶
Число реплик — инстансов с одинаковым набором хранимых данных — для каждого репликасета.
Данные:
- Тип: int
- Значение по умолчанию:
1
Аналогичная переменная окружения: PICODATA_INIT_REPLICATION_FACTOR
Аналогичная команда: picodata run --init-replication-factor
cluster.name¶
Имя кластера. Инстанс не сможет присоединиться к кластеру с другим именем.
Данные:
- Тип: str
- Значение по умолчанию:
demo
Аналогичная переменная окружения: PICODATA_CLUSTER_NAME
Аналогичная команда: picodata run --cluster-name
cluster.shredding¶
Режим безопасного удаления рабочих файлов путем многократной перезаписи специальными битовыми последовательностями, см. Безопасный запуск.
Данные:
- Тип: bool
- Значение по умолчанию:
false
Аналогичная переменная окружения: PICODATA_SHREDDING
Аналогичная команда: picodata run --shredding
cluster.tier.<tier_name>.bucket_count¶
Число сегментов в данном тире.
Данные:
- Тип: int
- Значение по умолчанию:
3000
Данный параметр задается только в файле конфигурации.
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.audit¶
Конфигурация журнала аудита. Доступны следующие варианты:
file:<FILE>
или просто<FILE>
— запись в файлpipe:<COMMAND>
или| <COMMAND>
— перенаправление вывода в подпроцессsyslog:
— перенаправление вывода в службуsyslog
защищенной ОС
Данные:
- Тип: str
- Значение по умолчанию:
null
Аналогичная переменная окружения: PICODATA_AUDIT_LOG
Аналогичная команда: picodata run --audit
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_dir¶
Рабочая директория инстанса. Здесь Picodata хранит все данные.
Данные:
- Тип: str
- Значение по умолчанию:
.
Аналогичная переменная окружения: PICODATA_INSTANCE_DIR
Аналогичная команда: picodata run --instance-dir
instance.iproto_advertise¶
Публичный сетевой адрес инстанса. Анонсируется кластеру при запуске инстанса и используется для подключения к нему других инстансов.
Данные:
- Тип: str
- Значение по умолчанию:
127.0.0.1:3301
Аналогичная переменная окружения: PICODATA_IPROTO_ADVERTISE
Аналогичная команда: picodata run --iproto-advertise
instance.iproto_listen¶
Сетевой адрес инстанса.
Данные:
- Тип: str
- Значение по умолчанию:
127.0.0.1:3301
Аналогичная переменная окружения: PICODATA_IPROTO_LISTEN
Аналогичная команда: picodata run --iproto-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.memory¶
Объем памяти в байтах, выделяемый для хранения кортежей. Когда достигается лимит использования памяти, запросы команд INSERT и UPDATE начинают отклоняться с ошибкой ER_MEMORY_ISSUE. Сервер хранит в выделяемом объеме памяти только кортежи — для хранения индексов и информации о соединениях используется дополнительная память.
Минимальное значение — 33,554,432 байтов (32 МБ)
Данные:
- Тип: int
- Значение по умолчанию:
64M
(67108864 Б)
Поддерживаются значения в более удобном формате (K
(Kilobytes), M
(Megabytes), G
(Gigabytes), T
(Terabytes), 1K
= 1024).
Пример:
picodata run -c instance.memtx.memory=128M
Аналогичная переменная окружения: PICODATA_MEMTX_MEMORY
Аналогичная команда: picodata run --memtx-memory
instance.name¶
Имя инстанса. При отсутствии параметра значение будет автоматически сгенерировано raft-лидером в момент присоединения инстанса к кластеру. Генератор имен использует следующую схему: имя тира, номер репликасета, номер инстанса в данном репликасете, с разделением через знак подчеркивания.
Пример: default_1_1
.
Данные:
- Тип: str
- Значение по умолчанию:
null
Аналогичная переменная окружения: PICODATA_INSTANCE_NAME
Аналогичная команда: picodata run --instance-name
instance.peer¶
Список сетевых адресов других инстансов, разделенных запятыми. Используется при инициализации кластера и присоединении инстанса к уже существующему кластеру.
Данные:
- Тип: Block Sequence of str
- Значение по умолчанию:
- 127.0.0.1:3301
Пример:
picodata run -c instance.peer='["127.0.0.1:3301", "127.0.0.1:3302"]'
Аналогичная переменная окружения: PICODATA_PEER
Аналогичная команда: picodata run --peer
instance.pg.listen¶
Адрес сервера для подключения по протоколу PostgreSQL.
Данные:
- Тип: str
- Значение по умолчанию:
127.0.0.1:4327
Аналогичная переменная окружения: 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.replicaset_name¶
Имя репликасета. Используется при инициализации кластера и присоединении инстанса к уже существующему кластеру. При отсутствии параметра имя репликасета будет сгенерировано автоматически. Генератор имен использует следующую схему: имя тира, номер репликасета в данном тире, с разделением через знак подчеркивания.
Пример: default_1
.
Данные:
- Тип: str
- Значение по умолчанию:
null
Аналогичная переменная окружения: PICODATA_REPLICASET_NAME
Аналогичная команда: picodata run --replicaset-name
instance.share_dir¶
Путь к директории, содержащей файлы плагинов.
Данные:
- Тип: str
- Значение по умолчанию:
null
Аналогичная переменная окружения: PICODATA_SHARE_DIR
Аналогичная команда: picodata run --share-dir
instance.tier¶
Имя тира, которому будет принадлежать инстанс. Используется при инициализации кластера и присоединении инстанса к уже существующему кластеру.
Данные:
- Тип: str
- Значение по умолчанию:
default
Аналогичная переменная окружения: PICODATA_INSTANCE_TIER
Аналогичная команда: picodata run --tier
instance.vinyl.bloom_fpr¶
Вероятность ложноположительного срабатывания фильтра Блума для движка
хранения vinyl
, измеряемая в долях единицы.
Предельные значения:
bloom_fpr: 0
— ложноположительные срабатывания отсутствуютbloom_fpr: 1
— все срабатывания ложноположительные
Данные:
- Тип: float
- Значение по умолчанию:
0.05
Аналогичная команда — picodata run --config-parameter
. Пример:
picodata run -c instance.vinyl.bloom_fpr=0.10
instance.vinyl.cache¶
Размер кэша в байтах для движка хранения vinyl
.
Данные:
- Тип: int
- Значение по умолчанию:
128M
(134217728 Б)
Поддерживаются значения в более удобном формате (K
(Kilobytes), M
(Megabytes), G
(Gigabytes), T
(Terabytes), 1K
= 1024).
Аналогичная команда — picodata run --config-parameter
. Пример:
picodata run -c instance.vinyl.cache=256M
instance.vinyl.max_tuple_size¶
Максимальный размер кортежа в байтах для движка хранения vinyl
.
Данные:
- Тип: int
- Значение по умолчанию:
1M
(1048576 Б)
Поддерживаются значения в более удобном формате (K
(Kilobytes), M
(Megabytes), G
(Gigabytes), T
(Terabytes), 1K
= 1024).
Аналогичная команда — picodata run --config-parameter
. Пример:
picodata run -c instance.vinyl.max_tuple_size=2M
instance.vinyl.memory¶
Максимальное количество оперативной памяти в байтах, которое использует
движок хранения vinyl
.
Данные:
- Тип: int
- Значение по умолчанию:
128M
(134217728 Б)
Поддерживаются значения в более удобном формате (K
(Kilobytes), M
(Megabytes), G
(Gigabytes), T
(Terabytes), 1K
= 1024).
Аналогичная команда — picodata run --config-parameter
. Пример:
picodata run -c instance.vinyl.memory=256M
instance.vinyl.page_size¶
Размер страницы в байтах, используемой движком хранения vinyl
для
операций чтения и записи на диск.
Данные:
- Тип: int
- Значение по умолчанию:
8K
(8192 Б)
Поддерживаются значения в более удобном формате (K
(Kilobytes), M
(Megabytes), G
(Gigabytes), T
(Terabytes), 1K
= 1024).
Аналогичная команда — picodata run --config-parameter
. Пример:
picodata run -c instance.vinyl.page_size=16M
instance.vinyl.range_size¶
Максимальный размер LSM-поддерева по умолчанию в байтах для движка
хранения vinyl
.
Данные:
- Тип: int
- Значение по умолчанию:
1G
(1073741824 Б)
Поддерживаются значения в более удобном формате (K
(Kilobytes), M
(Megabytes), G
(Gigabytes), T
(Terabytes), 1K
= 1024).
Аналогичная команда — picodata run --config-parameter
. Пример:
picodata run -c instance.vinyl.range_size=2G
instance.vinyl.read_threads¶
Максимальное количество потоков чтения для движка хранения vinyl
.
Данные:
- Тип: int
- Значение по умолчанию:
1
Аналогичная команда — picodata run --config-parameter
. Пример:
picodata run -c instance.vinyl.read_threads=2
instance.vinyl.run_count_per_level¶
Максимальное количество файлов на уровне в LSM-дереве для движка хранения
vinyl
.
Данные:
- Тип: int
- Значение по умолчанию:
2
Аналогичная команда — picodata run --config-parameter
. Пример:
picodata run -c instance.vinyl.run_count_per_level=4
instance.vinyl.run_size_ratio¶
Соотношение между размерами разных уровней в LSM-дереве для движка хранения
vinyl
.
Данные:
- Тип: float
- Значение по умолчанию:
3.5
Аналогичная команда — picodata run --config-parameter
. Пример:
picodata run -c instance.vinyl.run_size_ratio=7.0
instance.vinyl.timeout¶
Максимальное время обработки запроса движком хранения vinyl
в секундах.
Данные:
- Тип: float
- Значение по умолчанию:
60.0
Аналогичная команда — picodata run --config-parameter
. Пример:
picodata run -c instance.vinyl.timeout=120.0
instance.vinyl.write_threads¶
Максимальное количество потоков записи для движка хранения vinyl
.
Данные:
- Тип: int
- Значение по умолчанию:
4
Аналогичная команда — picodata run --config-parameter
. Пример:
picodata run -c instance.vinyl.write_threads=8