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

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

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

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

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

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

picodata run

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

picodata run --config <PATH>

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

См. также:

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

Результатом выполнения команды picodata config default -o config.yaml является файл конфигурации Picodata в формате YAML со стандартными значениями параметров:

config.yaml
cluster:
  cluster_id: demo # (4)!
  tier:
    default:
      replication_factor: 1 # (20)!
      can_vote: true # (21)!
  default_replication_factor: 1 # (8)!
instance:
  data_dir: . # (5)!
  service_password_file: null # (16)!
  instance_id: null # (9)!
  replicaset_id: null # (15)!
  tier: default # (18)!
  failure_domain: {} # (6)!
  peer: # (13)!
  - localhost:3301
  listen: localhost:3301 # (10)!
  advertise_address: localhost:3301 # (2)!
  http_listen: null # (7)!
  admin_socket: ./admin.sock # (1)!
  plugin_dir: null # (14)!
  audit: null # (3)!
  shredding: false # (17)!
  log:
    level: info # (12)!
    destination: null # (11)!
    format: plain # (22)!
  memtx:
    memory: 67108864 # (23)!
    checkpoint_count: 2 # (24)!
    checkpoint_interval: 3600.0 # (25)!
  vinyl:
    memory: 134217728 # (26)!
    cache: 134217728 # (27)!
  iproto:
    max_concurrent_messages: 768 # (28)!
  pg:
    listen: null # (19)!
    ssl: false # (29)!
  1. 🔗 picodata run --admin-sock
  2. 🔗 picodata run --advertise
  3. 🔗 picodata run --audit
  4. 🔗 picodata run --cluster-id
  5. 🔗 picodata run --data-dir
  6. 🔗 picodata run --failure-domain
  7. 🔗 picodata run --http-listen
  8. 🔗 picodata run --init-replication-factor
  9. 🔗 picodata run --instance-id
  10. 🔗 picodata run --listen
  11. 🔗 picodata run --log
  12. 🔗 picodata run --log-level
  13. 🔗 picodata run --peer
  14. 🔗 picodata run --plugin-dir
  15. 🔗 picodata run --replicaset-id
  16. 🔗 picodata run --service-password-file
  17. 🔗 picodata run --shredding
  18. 🔗 picodata run --tier
  19. 🔗 picodata run --pg-listen
  20. cluster.tier.<tier_name>.replication_factor
  21. cluster.tier.<tier_name>.can_vote
  22. instance.log.format
  23. instance.memtx.memory
  24. instance.memtx.checkpoint_count
  25. instance.memtx.checkpoint_interval
  26. instance.vinyl.memory
  27. instance.vinyl.cache
  28. instance.iproto.max_concurrent_messages
  29. instance.pg.ssl

См. также:

Параметры файла конфигурации

cluster.tier.<tier_name>.replication_factor

Фактор репликации тира <tier_name>.

Данные:

  • Тип: int
  • Значение по умолчанию: 1

cluster.tier.<tier_name>.can_vote

Признак тира <tier_name>, определяющий возможность инстансов участвовать в голосовании на выборах raft-лидера.

Данные:

  • Тип: bool
  • Значение по умолчанию: true

См. также:

instance.log.format

Формат отладочного журнала.

Возможные значения: plain, json

Данные:

  • Тип: str
  • Значение по умолчанию: plain

instance.memtx.memory

Объем памяти в байтах, выделяемый для хранения кортежей. Когда достигается лимит использования памяти, запросы команд INSERT и UPDATE начинают отклоняться с ошибкой ER_MEMORY_ISSUE. Сервер хранит в выделяемом объеме памяти только кортежи — для хранения индексов и информации о соединениях используется дополнительная память.

Минимальное значение — 33,554,432 байтов (32 МБ)

Данные:

  • Тип: int
  • Значение по умолчанию: 67108864 (64 МБ)

См. также:

instance.memtx.checkpoint_count

Максимальное количество снапшотов, хранящихся в директории memtx_dir. Если после создания нового снапшота их общее количество превысит значение этого параметра, старые снапшоты будут удалены. Если значение параметра равно 0, старые снапшоты останутся нетронутыми.

Данные:

  • Тип: int
  • Значение по умолчанию: 2

instance.memtx.checkpoint_interval

Период активности службы создания снапшотов (checkpoint daemon) в секундах. Если значение параметра больше нуля и произошло изменение в базе данных, служба создания снапшотов периодически вызывает функцию, которая создает новый снапшот. Если значение параметра равно 0.0, служба создания снапшотов отключается.

Данные:

  • Тип: float
  • Значение по умолчанию: 3600.0 (1 час)

instance.vinyl.memory

Максимальное количество оперативной памяти в байтах, которое использует движок хранения vinyl.

Данные:

  • Тип: int
  • Значение по умолчанию: 134217728 (128 МБ)

instance.vinyl.cache

Размер кэша в байтах для движка хранения vinyl.

Данные:

  • Тип: int
  • Значение по умолчанию: 134217728 (128 МБ)

instance.iproto.max_concurrent_messages

Максимальное количество сообщений, которое Picodata обрабатывает параллельно.

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

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

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

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

Данные:

  • Тип: int
  • Значение по умолчанию: 768

instance.pg.ssl

Признак использования протокола SSL при подключении к Pgproto.

Если для признака указано значение true, в рабочей директории инстанса <DATA_DIR> должны находиться необходимые SSL-сертификаты:

  • server.crt
  • server.key

Данные:

  • Тип: bool
  • Значение по умолчанию: false