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

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

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

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

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

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

picodata run

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

picodata run --config <PATH>

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

См. также:

Порядок применения параметров

Параметры командной строки имеют более высокий приоритет, чем файл конфигурации. Соответственно, используя параметр --config-parameter, можно переопределить нужные параметры запуска Picodata. Уровни вложения параметра разделяются точкой. Например:

picodata run --config ./picodata_config.yaml -c instance.log.level=verbose

Ограничение

Параметры тиров нельзя переопределить отдельно — вместо этого следует указать в командной строке всю секцию cluster.tier. Например:

picodata run --config ./picodata_config.yaml -c
cluster.tier='{"default": {"replication_factor": 3, "can_vote":
true}}'
Параметры тиров, которые при этом указаны в файле конфигурации, будут проигнорированы

Создание шаблона конфигурации

Для начала работы с файлом конфигурации создайте его шаблон, выполнив команду picodata config default -o picodata.yaml.

Структура конфигурации

Файл конфигурации содержит параметры в формате YAML на следующих уровнях вложения:

  • cluster — расположенные на этом уровне параметры относятся ко всему кластеру
  • tier — параметры отдельных тиров
  • instance — параметры текущего инстанса

Таким образом, различающиеся настройки разных инстансов на уровне instance следует разделить по разным файлам конфигурации. Настройки более высоких уровней (cluster и tier) будут использованы только один раз при первоначальном создании кластера и их последующее изменение в файле конфигурации будет проигнорировано.

Структура файла конфигурации:

picodata.yaml
cluster:
  name: demo # (3)!
  tier:
    default:
      replication_factor: 1 # (7)!
      bucket_count: 3000 # (5)!
      can_vote: true # (6)!
      wal_mode: write # (9)!
      replication_mode: async # (8)!
  default_replication_factor: 1 # (1)!
  default_bucket_count: 3000 # (2)!
  shredding: false # (4)!
instance:
  instance_dir: . # (19)!
  backup_dir: ./backup # (50)!
  wal_dir: . # (52)!
  name: null # (30)!
  replicaset_name: null # (37)!
  tier: default # (38)!
  failure_domain: {} # (13)!
  admin_socket: ./admin.sock # (10)!
  share_dir: null # (36)!
  audit: null # (11)!
  log:
    level: info # (26)!
    destination: null # (24)!
    format: plain # (25)!
  memtx:
    memory: 64M # (28)!
    system_memory: 256M # (29)!
    max_tuple_size: 1M # (27)!
    dir: . # (59)!
  vinyl:
    memory: 128M # (40)!
    cache: 128M # (39)!
    bloom_fpr: 0.05 # (41)!
    max_tuple_size: 1M # (42)!
    page_size: 8K # (43)!
    range_size: 1G # (44)!
    run_count_per_level: 2 # (45)!
    run_size_ratio: 3.5 # (46)!
    read_threads: 1 # (47)!
    write_threads: 4 # (48)!
    timeout: 60.0 # (49)!
    dir: . # (60)!
  boot_timeout: 7200 # (12)!
  http:
    enabled: true # (15)!
    listen: 127.0.0.1:5327 # (17)!
    advertise: 127.0.0.1:5327 # (14)!
    tls:
      enabled: false # (18)!
    kubernetes_probes: true # (16)!
  iproto:
    enabled: true # (21)!
    listen: 127.0.0.1:3301 # (22)!
    advertise: 127.0.0.1:3301 # (20)!
    tls:
      enabled: false # (23)!
  pgproto:
    enabled: true # (33)!
    listen: 127.0.0.1:4327 # (34)!
    advertise: 127.0.0.1:4327 # (32)!
    tls:
      enabled: false # (35)!
  peer: # (31)!
  - 127.0.0.1:3301
  wal_dir: . # (52)!
  plugin: # (51)!
    plugin-name:
      service:
        service-name:
          listener:
            enabled: <bool>
            advertise: <URI>
            listen: <URI>
            tls:
              enabled: <bool>
              cert_file: tls_2/server.crt
              key_file: tls_2/server.key
              ca_file: tls_2/ca.crt
              password_file: tls_2/pass.txt
  ldap:
    enabled: false # (53)!
    dn_format: null # (54)!
    connect: null # (55)!
    tls:
      enabled: false # (56)!
      method: implicit # (57)!
      ca_file: null # (58)!
  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. cluster.tier.<tier_name>.replication_mode
  9. cluster.tier.wal_mode
  10. instance.admin_socket
  11. instance.audit
  12. instance.boot_timeout
  13. instance.failure_domain
  14. instance.http.advertise
  15. instance.http.enabled
  16. instance.http.kubernetes_probes
  17. instance.http.listen
  18. instance.http.tls
  19. instance.instance_dir
  20. instance.iproto.advertise
  21. instance.iproto.enabled
  22. instance.iproto.listen
  23. instance.iproto.tls
  24. instance.log.destination
  25. instance.log.format
  26. instance.log.level
  27. instance.memtx.max_tuple_size
  28. instance.memtx.memory
  29. instance.memtx.system_memory
  30. instance.name
  31. instance.peer
  32. instance.pgproto.advertise
  33. instance.pgproto.enabled
  34. instance.pgproto.listen
  35. instance.pgproto.tls
  36. instance.share_dir
  37. instance.replicaset_name
  38. instance.tier
  39. instance.vinyl.cache
  40. instance.vinyl.memory
  41. instance.vinyl.bloom_fpr
  42. instance.vinyl.max_tuple_size
  43. instance.vinyl.page_size
  44. instance.vinyl.range_size
  45. instance.vinyl.run_count_per_level
  46. instance.vinyl.run_size_ratio
  47. instance.vinyl.read_threads
  48. instance.vinyl.write_threads
  49. instance.vinyl.timeout
  50. instance.backup_dir
  51. instance.plugin
  52. instance.wal_dir
  53. instance.ldap.enabled
  54. instance.ldap.dn_format
  55. instance.ldap.connect
  56. instance.ldap.tls.enabled
  57. instance.ldap.tls.method
  58. instance.ldap.tls.ca_file
  59. instance.memtx.dir
  60. instance.vinyl.dir

См. также:

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

cluster.default_bucket_count

поддерживается с версии 24.4.1

Число бакетов в кластере по умолчанию.

Данные:

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

Данный параметр задается только в файле конфигурации.

cluster.default_replication_factor

поддерживается с версии 24.4.1

Число реплик — инстансов с одинаковым набором хранимых данных — для каждого репликасета.

Данные:

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

Аналогичная переменная окружения: PICODATA_INIT_REPLICATION_FACTOR
Задание параметра в командной строке: picodata run --init-replication-factor

cluster.name

поддерживается с версии 24.6.1

Имя кластера. Инстанс не сможет присоединиться к кластеру с другим именем.

Данные:

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

Аналогичная переменная окружения: PICODATA_CLUSTER_NAME
Задание параметра в командной строке: picodata run --cluster-name

cluster.shredding

поддерживается с версии 25.1.1

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

Данные:

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

Аналогичная переменная окружения: PICODATA_SHREDDING
Задание параметра в командной строке: picodata run --shredding

cluster.tier.<tier_name>.bucket_count

поддерживается с версии 25.1.1

Число бакетов в данном тире.

Данные:

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

Данный параметр задается только в файле конфигурации.

cluster.tier.<tier_name>.can_vote

поддерживается с версии 24.4.1

Признак тира <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

поддерживается с версии 24.4.1

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

Данные:

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

Аналогичная команда — picodata run --config-parameter. Пример:

picodata run -c cluster.tier='{"default": {"replication_factor": 3, "can_vote": true}}'

cluster.tier.<tier_name>.replication_mode

поддерживается с версии 26.2.1

Режим репликации для шардированных таблиц. У этого параметра может быть два значения:

  • async — использовать асинхронную репликацию
  • sync — использовать синхронную репликацию

По умолчанию (а также если параметр не задан) используется асинхронный режим.

Данный параметр используется только при первоначальном развёртывании кластера (bootstrap). Изменить значение этого параметра для уже развёрнутого кластера нельзя.

Данные:

  • Тип: sting
  • Значение по умолчанию: async

Аналогичная команда — picodata run --config-parameter. Пример:

picodata run -c cluster.tier='{"default": {"replication_mode": "sync", "can_vote": true}}'

См. также:

cluster.tier.<tier_name>.wal_mode

поддерживается с версии 26.2.1

Определяет событие, которого ожидает обрабатывающий транзакцию файбер, прежде чем считать запись в журнал упреждающей записи (WAL) завершённой.

Данные:

  • Тип: str
  • Возможные значения: write, fsync
  • Значение по умолчанию: write

Аналогичная команда — picodata run --config-parameter. Пример:

picodata run -c cluster.tier='{"default": {"replication_factor": 3, "wal_mode": "write"}}'

instance.admin_socket

поддерживается с версии 24.1.1

Путь к unix-сокету для подключения к консоли администратора с помощью команды picodata admin. В отличие от пользовательской консоли, коммуникация осуществляется в виде обычного текста и всегда происходит под учетной записью администратора.

Данные:

  • Тип: str
  • Значение по умолчанию: ./admin.sock

Аналогичная переменная окружения: PICODATA_ADMIN_SOCK
Задание параметра в командной строке: picodata run --admin-sock

instance.audit

поддерживается с версии 24.4.1

Конфигурация журнала аудита. Доступны следующие варианты:

  • file:<FILE> или просто <FILE> — запись в файл
  • pipe:<COMMAND> или | <COMMAND> — перенаправление вывода в подпроцесс
  • syslog: — перенаправление вывода в службу syslog защищенной ОС

Данные:

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

Аналогичная переменная окружения: PICODATA_AUDIT_LOG
Задание параметра в командной строке: picodata run --audit

instance.backup_dir

поддерживается с версии 25.3.1

Директория для хранения резервных копий, создаваемых командой BACKUP. Каждый инстанс сохраняет данные в поддиректории внутри backup-dir в файле, имя которого формируется в формате YYYYMMDDThhmmss.

Данные:

  • Тип: str
  • Значение по умолчанию: <instance-dir>/backup

Аналогичная переменная окружения: PICODATA_BACKUP_DIR
Задание параметра в командной строке: picodata run --backup-dir

instance.boot_timeout

поддерживается с версии 25.2.1

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

Данные:

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

Аналогичная команда — picodata run --config-parameter. Пример:

picodata run -c instance.boot_timeout=3600

instance.failure_domain

поддерживается с версии 24.4.1

JSON-объект с набором строковых значений, определяющих домен отказа инстанса. Набор параметров домена отказа позволяет указать расположение сервера, на котором запущен инстанс, в стойке, датацентре, регионе и т.д. Набор ключей может быть произвольным. Picodata не будет объединять два инстанса в один репликасет, если у них совпадают значения хотя бы в одном ключе — вместо этого будет создан новый репликасет. Репликасеты формируются из инстансов с разными доменами отказа до тех пор, пока не будет достигнут желаемый фактор репликации.

Данные:

  • Тип: Block Mappings of { str: str }
  • Значение по умолчанию: {}

Аналогичная переменная окружения: PICODATA_FAILURE_DOMAIN
Задание параметра в командной строке: picodata run --failure-domain

Синтаксис значений домена отказа различается при работе с файлом конфигурации (JSON-объект со строковыми значениями) и при использовании в командной строке (список пар ключ=значение). Примеры показаны ниже.

Использование в файле конфигурации:

failure_domain: { "region":"['us']","zone":"us-west-1" }
failure_domain: { "rack":"['12-90']","server":"srv_007", "vm":"rhel8" }

Использование в командной строке:

picodata run --failure-domain=region=us,zone=us-west-1
picodata run --failure-domain=rack=12-90,server=srv_007,vm=rhel8

Использование в переменной:

export PICODATA_FAILURE_DOMAIN=region=us,zone=us-west-1
export PICODATA_FAILURE_DOMAIN=rack=12-90,server=srv_007,vm=rhel8

Значения домена отказа во всех случаях не зависят от регистра.

instance.http.advertise

поддерживается с версии 26.1.1

Публичный сетевой адрес инстанса по протоколу HTTP. По умолчанию этот параметр равен instance.http.listen.

Данные:

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

instance.http.enabled

поддерживается с версии 26.1.1

Признак поддержки HTTP-сокета на стороне Picodata.

Данные:

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

instance.http.kubernetes_probes

поддерживается с версии 26.1.1

Переключатель доступности набора следующих эндпоинтов для Kubernetes.

  • /api/v1/health/live
  • /api/v1/health/ready
  • /api/v1/health/startup

  • Тип: bool

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

Если для параметра установлено значение false, то запрос на указанные эндпоинты вернет ошибку с кодом 404.

См. также:

instance.http.listen

поддерживается с версии 26.1.1

Примечание

Параметр instance.http.listen приходит на смену instance.http_listen, который объявлен устаревшим и будет удален в будущих релизах Picodata. В файле конфигурации допускается использование устаревших параметров, но сочетать их с новыми нельзя.

Адрес HTTP-сервера.

Данные:

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

Аналогичная переменная окружения: PICODATA_HTTP_LISTEN
Задание параметра в командной строке: picodata run --http-listen

instance.http.tls

поддерживается с версии 26.1.1

Примечание

Блок параметров instance.http.tls приходит на смену instance.https, который объявлен устаревшим и будет удален в будущих релизах Picodata. В файле конфигурации допускается использование устаревших параметров, но сочетать их с новыми нельзя.

Конфигурация защищенного режима для работы с кластером по протоколу HTTPS. Используется для получения метрик и доступа к веб-интерфейсу. Основной параметр instance.http.tls.enabled отвечает за включение/отключение режима шифрования.

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

При установке значения true требуется использовать 2 дополнительных параметра:

  • cert_file (str) — путь к файлу сертификата
  • key_file (str) — путь к файлу с закрытым ключом

а также, здесь можно указать путь к файлу с паролем, если он был задан в настройках сертификата (пароль требуется для расшифровки закрытого ключа):

  • password_file (str)

При включенном HTTPS и использовании пароля блок настроек файла конфигурации будет иметь следующий вид:

tls:
    enabled: true
    cert_file: https/cert.pem
    key_file: https/key.pem
    password_file: https/pass.txt

Задание параметра в командной строке: picodata run --config-parameter. Пример:

picodata run -c instance.http.tls.enabled=true -c instance.http.tls.cert_file=https/cert.pem -c instance.http.tls.key_file=https/key.pem -c instance.http.tls.password_file=https/pass.txt

instance.instance_dir

поддерживается с версии 25.1.1

Рабочая директория инстанса. Здесь Picodata хранит все данные.

Picodata позволяет настроить хранение разных системных файлов в разных местах. По умолчанию все файлы хранятся в instance_dir, но более специфичные пути можно указать через instance.wal_dir, instance.memtx.dir и instance.vinyl.dir.

Данные:

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

Аналогичная переменная окружения: PICODATA_INSTANCE_DIR
Задание параметра в командной строке: picodata run --instance-dir

instance.iproto.advertise

поддерживается с версии 26.1.1

Примечание

Параметр instance.iproto.advertise приходит на смену instance.iproto_advertise, который объявлен устаревшим и будет удален в будущих релизах Picodata. В файле конфигурации допускается использование устаревших параметров, но сочетать их с новыми нельзя.

Публичный сетевой адрес инстанса. Анонсируется кластеру при запуске инстанса и используется для подключения к нему других инстансов.

Данные:

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

Аналогичная переменная окружения: PICODATA_IPROTO_ADVERTISE
Задание параметра в командной строке: picodata run --iproto-advertise

instance.iproto.enabled

поддерживается с версии 26.1.1

Признак поддержки IPROTO-протокола на стороне Picodata.

Данные:

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

Примечание

Для данного параметра поддерживается только значение true

instance.iproto.listen

поддерживается с версии 26.1.1

Примечание

Параметр instance.iproto.listen приходит на смену instance.iproto_listen, который объявлен устаревшим и будет удален в будущих релизах Picodata. В файле конфигурации допускается использование устаревших параметров, но сочетать их с новыми нельзя.

Сетевой адрес инстанса.

Данные:

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

Аналогичная переменная окружения: PICODATA_IPROTO_LISTEN
Задание параметра в командной строке: picodata run --iproto-listen

instance.iproto.tls

поддерживается с версии 26.1.1

Примечание

Блок параметров instance.iproto.tls приходит на смену instance.iproto_tls, который объявлен устаревшим и будет удален в будущих релизах Picodata. В файле конфигурации допускается использование устаревших параметров, но сочетать их с новыми нельзя.

Конфигурация защищенного режима для внутренней коммуникации между узлами кластера по протоколу Iproto. Основной параметр instance.iproto.tls.enabled отвечает за включение/отключение режима шифрования mutual TLS (mTLS).

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

При установке значения true требуется использовать 3 дополнительных параметра:

  • instance.iproto.tls.cert_file (str) — путь к файлу сертификата
  • instance.iproto.tls.key_file (str) — путь к файлу с закрытым ключом
  • instance.iproto.tls.ca_file (str) — путь к файлу корневого сертификата

При включенном mTLS блок настроек файла конфигурации будет иметь следующий вид:

  tls:
    enabled: true
    cert_file: iproto/server.crt
    key_file: iproto/server.key
    ca_file: iproto/ca.crt

Задание параметра в командной строке: picodata run --config-parameter. Пример:

picodata run -c instance.iproto.tls.enabled=true -c instance.iproto.tls.cert_file=iproto/server.crt -c instance.iproto.tls.key_file=iproto/server.key -c instance.iproto.tls.ca_file=iproto/ca.crt

Режим mTLS настраивается глобально во всем кластере. Для параметров instance.iproto.tls.cert_file и instance.iproto.tls.key_file содержимое файлов должно быть идентичным на каждом инстансе.

instance.ldap.connect

Примечание

Блок параметров instance.ldap приходит на смену переменным окружения TT_LDAP_URL, TT_LDAP_DN_FMT и TT_LDAP_ENABLE_TLS, которые объявлены устаревшими и будут удалены в будущих релизах Picodata. Допускается использование устаревших переменных окружения, но сочетать их с опциями в файле конфигурации нельзя.

Picodata Enterprise

Данная функция доступна только в коммерческой версии Picodata.

поддерживается с версии 26.2.1

Адрес LDAP-сервера, к которому Picodata будет подключаться для аутентификации пользователей методом ldap.

Параметр является обязательным при включённом instance.ldap.enabled.

Данные:

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

Аналогичная команда — picodata run --config-parameter. Пример:

picodata run -c instance.ldap.connect=ldap.picodata.int:389

См. также:

instance.ldap.dn_format

Примечание

Блок параметров instance.ldap приходит на смену переменным окружения TT_LDAP_URL, TT_LDAP_DN_FMT и TT_LDAP_ENABLE_TLS, которые объявлены устаревшими и будут удалены в будущих релизах Picodata. Допускается использование устаревших переменных окружения, но сочетать их с опциями в файле конфигурации нельзя.

Picodata Enterprise

Данная функция доступна только в коммерческой версии Picodata.

поддерживается с версии 26.2.1

Произвольная формат-строка, используемая для формирования DN для LDAP-запроса BIND. Пример: cn=$USER,ou=users,dc=example,dc=org. Вместо $USER будет подставлено фактическое имя пользователя Picodata. Параметр должен содержать ровно одно вхождение подстроки $USER.

При передаче значения через командную строку его необходимо заключать в одинарные кавычки, чтобы предотвратить раскрытие $USER командной оболочкой (см. пример ниже).

Данные:

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

Аналогичная команда — picodata run --config-parameter. Пример:

picodata run -c instance.ldap.dn_format='cn=$USER,ou=users,dc=example,dc=org'

См. также:

instance.ldap.enabled

Примечание

Блок параметров instance.ldap приходит на смену переменным окружения TT_LDAP_URL, TT_LDAP_DN_FMT и TT_LDAP_ENABLE_TLS, которые объявлены устаревшими и будут удалены в будущих релизах Picodata. Допускается использование устаревших переменных окружения, но сочетать их с опциями в файле конфигурации нельзя.

Picodata Enterprise

Данная функция доступна только в коммерческой версии Picodata.

поддерживается с версии 26.2.1

Признак поддержки LDAP-аутентификации на стороне Picodata.

При установке значения false пользователи с установленным методом аутентификации ldap не смогут быть аутенфицированными.

При установке значения true требуется использовать дополнительные параметры:

Данные:

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

Аналогичная команда — picodata run --config-parameter. Пример:

picodata run -c instance.ldap.enabled=true

См. также:

instance.ldap.tls.ca_file

Примечание

Блок параметров instance.ldap приходит на смену переменным окружения TT_LDAP_URL, TT_LDAP_DN_FMT и TT_LDAP_ENABLE_TLS, которые объявлены устаревшими и будут удалены в будущих релизах Picodata. Допускается использование устаревших переменных окружения, но сочетать их с опциями в файле конфигурации нельзя.

Picodata Enterprise

Данная функция доступна только в коммерческой версии Picodata.

поддерживается с версии 26.2.1

Путь к файлу с альтернативными доверенными корневыми сертификатами (CA).

При указании этого параметра для проверки TLS-сертификата LDAP-сервера будут использованы сертификаты из указанного файла вместо сертификатов из системного хранилища доверенных корневых сертификатов.

Файл должен содержать один или несколько сертификатов в формате PEM.

Данные:

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

Аналогичная команда — picodata run --config-parameter. Пример:

picodata run -c instance.ldap.tls.ca_file=/etc/picodata/ldap-ca.pem

См. также:

instance.ldap.tls.enabled

Примечание

Блок параметров instance.ldap приходит на смену переменным окружения TT_LDAP_URL, TT_LDAP_DN_FMT и TT_LDAP_ENABLE_TLS, которые объявлены устаревшими и будут удалены в будущих релизах Picodata. Допускается использование устаревших переменных окружения, но сочетать их с опциями в файле конфигурации нельзя.

Picodata Enterprise

Данная функция доступна только в коммерческой версии Picodata.

поддерживается с версии 26.2.1

Признак использования шифрования TLS при подключении к LDAP-серверу. При установке значения true метод подключения по TLS определяется параметром instance.ldap.tls.method.

При значении false соединение с LDAP-сервером, включая отправку учётных данных пользователя, выполняется по незащищённому протоколу LDAP без шифрования.

При включённом TLS Picodata всегда проверяет, что имя хоста из instance.ldap.connect совпадает с именем, указанным в сертификате LDAP-сервера (SAN или CN).

Для использования собственного набора доверенных CA вместо системного хранилища см. instance.ldap.tls.ca_file.

Данные:

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

Аналогичная команда — picodata run --config-parameter. Пример:

picodata run -c instance.ldap.tls.enabled=true

См. также:

instance.ldap.tls.method

Примечание

Блок параметров instance.ldap приходит на смену переменным окружения TT_LDAP_URL, TT_LDAP_DN_FMT и TT_LDAP_ENABLE_TLS, которые объявлены устаревшими и будут удалены в будущих релизах Picodata. Допускается использование устаревших переменных окружения, но сочетать их с опциями в файле конфигурации нельзя.

Picodata Enterprise

Данная функция доступна только в коммерческой версии Picodata.

поддерживается с версии 26.2.1

Определяет метод подключения при использовании TLS с LDAP.

Возможные значения: implicit, start_tls

При указании implicit (значение по умолчанию) Picodata установит защищённое TLS-соединение с настроенным в instance.ldap.connect адресом, а затем внутри защищённого подключения начнёт следовать протоколу LDAP. Это соответствует нестандартизированному протоколу LDAPS.

При указании start_tls Picodata установит с LDAP-сервером подключение по незащищённому протоколу LDAP, а затем, до отправки каких-либо аутентификационных данных, задействует механизм StartTLS для установления защищённого TLS-соединения. Это соответствует механизму, описанному в разделе 3 RFC 4513.

Данные:

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

Аналогичная команда — picodata run --config-parameter. Пример:

picodata run -c instance.ldap.tls.method=start_tls

См. также:

instance.log.destination

поддерживается с версии 24.4.1

Конфигурация отладочного журнала. Доступны следующие варианты:

  • file:<FILE> или просто <FILE> — запись в файл
  • pipe:<COMMAND> или | <COMMAND> — перенаправление вывода в подпроцесс
  • syslog: — перенаправление вывода в службу syslog защищенной ОС

По умолчанию отладочный журнал выводится в stderr.

Данные:

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

Аналогичная переменная окружения: PICODATA_LOG
Задание параметра в командной строке: picodata run --log

instance.log.format

поддерживается с версии 24.4.1

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

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

Данные:

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

Аналогичная переменная окружения: PICODATA_LOG
Аналогичная команда — picodata run --config-parameter. Пример:

picodata run -c instance.log.format=json

instance.log.level

поддерживается с версии 24.4.1

Уровень важности событий, регистрируемых в отладочном журнале.

Возможные значения: fatal, system, error, crit, warn, info, verbose, debug

Данные:

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

Аналогичная переменная окружения: PICODATA_LOG_LEVEL
Задание параметра в командной строке: picodata run --log-level

instance.memtx.dir

поддерживается с версии 26.2.1

Директория для хранения файлов снапшотов движка memtx. Позволяет хранить их на отдельном диске от WAL и данных движка vinyl. Если директория не существует, она будет создана при запуске инстанса.

Данные:

Аналогичная команда — picodata run --config-parameter. Пример:

picodata run -c instance.memtx.dir=/mnt/fast-disk/memtx

instance.memtx.max_tuple_size

поддерживается с версии 25.1.1

Максимальный размер кортежа в байтах для движка хранения memtx.

Данные:

  • Тип: int
  • Значение по умолчанию: 1M (1048576 Б)

Для удобства при указании значения можно использовать суффиксы (K (Kilobytes), M (Megabytes), G (Gigabytes), T (Terabytes), 1K = 1024).

Аналогичная команда — picodata run --config-parameter. Пример:

picodata run -c instance.memtx.max_tuple_size=2M

Аналогичная переменная окружения: PICODATA_MEMTX_MAX_TUPLE_SIZE
Задание параметра в командной строке: picodata run --memtx-max-tuple-size

instance.memtx.memory

поддерживается с версии 24.4.1

Объем памяти в байтах, выделяемый для хранения кортежей. Когда достигается лимит использования памяти, запросы команд 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.memtx.system_memory

поддерживается с версии 25.4.1

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

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

Данные:

  • Тип: int
  • Значение по умолчанию: 256M (268435456 Б)

Для удобства при указании значения можно использовать суффиксы (K (Kilobytes), M (Megabytes), G (Gigabytes), T (Terabytes), 1K = 1024).

Пример:

picodata run -c instance.memtx.system_memory=128M

Аналогичная переменная окружения: PICODATA_MEMTX_SYSTEM_MEMORY
Задание параметра в командной строке: picodata run --memtx-system-memory

instance.name

поддерживается с версии 24.4.1

Имя инстанса. При отсутствии параметра значение будет автоматически сгенерировано raft-лидером в момент присоединения инстанса к кластеру. Генератор имен использует следующую схему: имя тира, номер репликасета, номер инстанса в данном репликасете, с разделением через знак подчеркивания.

Пример: default_1_1.

Данные:

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

Аналогичная переменная окружения: PICODATA_INSTANCE_NAME
Задание параметра в командной строке: picodata run --instance-name

instance.peer

поддерживается с версии 24.4.1

Список сетевых адресов других инстансов, разделенных запятыми. Используется при инициализации кластера и присоединении инстанса к уже существующему кластеру.

Данные:

  • Тип: 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.pgproto.advertise

поддерживается с версии 26.1.1

Примечание

Параметр instance.pgproto.advertise приходит на смену instance.pg_advertise, который объявлен устаревшим и будет удален в будущих релизах Picodata. В файле конфигурации допускается использование устаревших параметров, но сочетать их с новыми нельзя.

Публичный адрес сервера для подключения по протоколу PostgreSQL. Анонсируется кластеру при запуске инстанса.

Данные:

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

Аналогичная переменная окружения: PICODATA_PG_ADVERTISE
Задание параметра в командной строке: picodata run --pg-advertise

instance.pgproto.enabled

поддерживается с версии 26.1.1

Признак поддержки PostgreSQL-протокола на стороне Picodata.

Данные:

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

instance.pgproto.listen

поддерживается с версии 26.1.1

Примечание

Параметр instance.pgproto.listen приходит на смену instance.pg_listen, который объявлен устаревшим и будет удален в будущих релизах Picodata. В файле конфигурации допускается использование устаревших параметров, но сочетать их с новыми нельзя.

Адрес сервера для подключения по протоколу PostgreSQL.

Данные:

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

Аналогичная переменная окружения: PICODATA_PG_LISTEN
Задание параметра в командной строке: picodata run --pg-listen

instance.pgproto.tls

поддерживается с версии 26.1.1

Примечание

Блок параметров instance.pgproto.tls приходит на смену instance.pgproto.ssl, который объявлен устаревшим и будет удален в будущих релизах Picodata. В файле конфигурации допускается использование устаревших параметров, но сочетать их с новыми нельзя.

Признак использования протокола TLS/SSL или mTLS при подключении по протоколу PostgreSQL. Основной параметр instance.pgproto.tls.enabled отвечает за включение/отключение режима шифрования.

Данные:

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

При установке значения true требуется использовать 2 дополнительных параметра:

  • cert_file (str) — путь к файлу сертификата
  • key_file (str) — путь к файлу с закрытым ключом

Для двусторонней проверки подлинности (mTLS) требуется разместить рядом файл корневого сертификата:

  • ca.crt

Размещение файлов сертификатов и закрытого ключа можно переопределить, используя следующие 3 дополнительных параметра:

  • instance.pgproto.tls.cert_file (str) — путь к файлу сертификата
  • instance.pgproto.tls.key_file (str) — путь к файлу с закрытым ключом
  • instance.pgproto.tls.ca_file (str) — путь к файлу корневого сертификата

При включенном mTLS блок настроек файла конфигурации будет иметь следующий вид:

  tls:
    enabled: true
    cert_file: pgproto/server.crt
    key_file: pgproto/server.key
    ca_file: pgproto/ca.crt

Аналогичная команда — picodata run --config-parameter. Пример:

picodata run -c instance.pgproto.tls.enabled=true -c instance.pgproto.tls.cert_file=pgproto/server.crt -c instance.pgproto.tls.key_file=pgproto/server.key -c instance.pgproto.tls.ca_file=pgproto/ca.crt

instance.plugin

поддерживается с версии 26.1.1

Примечание

Параметры плагинов и их сервисов не входят в шаблон файла конфигурации и настраиваются отдельно в рамках подключения и развёртывания соответствующих плагинов.

Блок параметров, отвечающий за настройки плагина для Picodata. Подобных блоков в файле конфигурации может быть несколько — по числу задействованных плагинов. Параметры применяются к заданному в разделе service сервису плагина. Внутри этого блока пользователь может настроить слушающий сокет со следующими свойствами:

  • advertise — публичный сетевой адрес инстанса для подключения к сервису
  • listen — адрес, на котором сервис плагина будет слушать
  • tls — конфигурация защищенного режима для работы с плагином (настройка аналогична блокам tls: для других параметров файла конфигурации, пример).

instance.replicaset_name

поддерживается с версии 24.4.1

Имя репликасета. Используется при инициализации кластера и присоединении инстанса к уже существующему кластеру. При отсутствии параметра имя репликасета будет сгенерировано автоматически. Генератор имен использует следующую схему: имя тира, номер репликасета в данном тире, с разделением через знак подчеркивания.

Пример: default_1.

Данные:

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

Аналогичная переменная окружения: PICODATA_REPLICASET_NAME
Задание параметра в командной строке: picodata run --replicaset-name

instance.share_dir

поддерживается с версии 25.1.1

Путь к директории, содержащей файлы плагинов.

Данные:

  • Тип: str
  • Значение по умолчанию: /usr/share/picodata

Аналогичная переменная окружения: PICODATA_SHARE_DIR
Задание параметра в командной строке: picodata run --share-dir

instance.tier

поддерживается с версии 25.1.1

Имя тира, которому будет принадлежать инстанс. Используется при инициализации кластера и присоединении инстанса к уже существующему кластеру.

Данные:

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

Аналогичная переменная окружения: PICODATA_INSTANCE_TIER
Задание параметра в командной строке: picodata run --tier

instance.vinyl.bloom_fpr

поддерживается с версии 25.1.1

Вероятность ложноположительного срабатывания фильтра Блума для движка хранения 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

поддерживается с версии 24.4.1

Размер кэша в байтах для движка хранения 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.dir

поддерживается с версии 26.2.1

Директория для хранения файлов движка vinyl. Позволяет хранить их на отдельном диске от WAL и снапшотов движка memtx. Если директория не существует, она будет создана при запуске инстанса.

Данные:

Аналогичная команда — picodata run --config-parameter. Пример:

picodata run -c instance.vinyl.dir=/mnt/fast-disk/vinyl

instance.vinyl.max_tuple_size

поддерживается с версии 25.1.1

Максимальный размер кортежа в байтах для движка хранения 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

поддерживается с версии 24.4.1

Максимальное количество оперативной памяти в байтах, которое использует движок хранения 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

поддерживается с версии 25.1.1

Размер страницы в байтах, используемой движком хранения 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

поддерживается с версии 25.1.1

Максимальный размер 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

поддерживается с версии 25.1.1

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

Данные:

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

Аналогичная команда — picodata run --config-parameter. Пример:

picodata run -c instance.vinyl.read_threads=2

instance.vinyl.run_count_per_level

поддерживается с версии 25.1.1

Максимальное количество файлов на уровне в LSM-дереве для движка хранения vinyl.

Данные:

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

Аналогичная команда — picodata run --config-parameter. Пример:

picodata run -c instance.vinyl.run_count_per_level=4

instance.vinyl.run_size_ratio

поддерживается с версии 25.1.1

Соотношение между размерами разных уровней в LSM-дереве для движка хранения vinyl.

Данные:

  • Тип: float
  • Значение по умолчанию: 3.5

Аналогичная команда — picodata run --config-parameter. Пример:

picodata run -c instance.vinyl.run_size_ratio=7.0

instance.vinyl.timeout

поддерживается с версии 25.1.1

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

Данные:

  • Тип: float
  • Значение по умолчанию: 60.0

Аналогичная команда — picodata run --config-parameter. Пример:

picodata run -c instance.vinyl.timeout=120.0

instance.vinyl.write_threads

поддерживается с версии 25.1.1

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

Данные:

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

Аналогичная команда — picodata run --config-parameter. Пример:

picodata run -c instance.vinyl.write_threads=8

instance.wal_dir

поддерживается с версии 26.2.1

Директория для хранения файлов журнала упреждающей записи (WAL). Позволяет хранить WAL на отдельном диске от снапшотов и данных движка vinyl. Если директория не существует, она будет создана при запуске инстанса.

Данные:

Аналогичная команда — picodata run --config-parameter. Пример:

picodata run -c instance.wal_dir=/mnt/fast-disk/wal