Перейти к содержанию

Файл конфигурации

Файл конфигурации содержит параметры кластера и инстанса для запуска Picodata.

Назначение файла конфигурации

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

Команда для запуска инстанса Picodata, если файл конфигурации назван picodata.yaml и расположен в директории вызова команды:

picodata run

Команда для запуска инстанса Picodata в остальных случаях:

picodata run --config <PATH>

где <PATH> — путь к файлу конфигурации в формате YAML.

См. также:

Описание файла конфигурации

Результатом выполнения команды picodata config default -o picodata.yaml является файл конфигурации 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)!
  1. cluster.default_replication_factor
  2. cluster.default_bucket_count
  3. cluster.name
  4. cluster.shredding
  5. cluster.tier.<tier_name>.bucket_count
  6. cluster.tier.<tier_name>.can_vote
  7. cluster.tier.<tier_name>.replication_factor
  8. instance.admin_socket
  9. instance.iproto_advertise
  10. instance.audit
  11. instance.failure_domain
  12. instance.http_listen
  13. instance.instance_dir
  14. instance.iproto_listen
  15. instance.log.destination
  16. instance.log.format
  17. instance.log.level
  18. instance.memtx.memory
  19. instance.name
  20. instance.peer
  21. instance.pg.listen
  22. instance.pg.ssl
  23. instance.share_dir
  24. instance.replicaset_name
  25. instance.tier
  26. instance.vinyl.cache
  27. instance.vinyl.memory
  28. instance.vinyl.bloom_fpr
  29. instance.vinyl.max_tuple_size
  30. instance.vinyl.page_size
  31. instance.vinyl.range_size
  32. instance.vinyl.run_count_per_level
  33. instance.vinyl.run_size_ratio
  34. instance.vinyl.read_threads
  35. instance.vinyl.write_threads
  36. 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