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

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

Файл конфигурации содержит параметры кластера и инстанса для запуска 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 
  tier:
    default:
      replication_factor: 1 
      bucket_count: 3000 
      can_vote: true 
  default_replication_factor: 1 
  default_bucket_count: 3000 
  shredding: false 
instance:
  instance_dir: . 
  name: null 
  replicaset_name: null 
  tier: default # (25!
  failure_domain: {} 
  peer: 
  - 127.0.0.1:3301
  iproto_listen: 127.0.0.1:3301 
  iproto_advertise: 127.0.0.1:3301 
  http_listen: null 
  admin_socket: ./admin.sock 
  share_dir: null 
  audit: null 
  log:
    level: info 
    destination: null 
    format: plain 
  memtx:
    memory: 64M 
  vinyl:
    memory: 128M 
    cache: 128M 
    bloom_fpr: 0.05 
    max_tuple_size: 1M 
    page_size: 8K 
    range_size: 1G 
    run_count_per_level: 2 
    run_size_ratio: 3.5 
    read_threads: 1 
    write_threads: 4 
    timeout: 60.0 
  pg:
    listen: 127.0.0.1:4327 
    ssl: false 

См. также:

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

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
Была ли эта информация полезной для вас?