a28c845476
CI / test (push) Has been cancelled
CI / verify (push) Has been cancelled
Clients CI / build-server (push) Has been cancelled
Clients CI / test-python (push) Has been cancelled
Clients CI / test-javascript (push) Has been cancelled
Clients CI / test-nim (push) Has been cancelled
Clients CI / test-rust (push) Has been cancelled
7.2 KiB
7.2 KiB
Конфигурационна Референция
BaraDB може да се конфигурира чрез променливи на средата, конфигурационен файл или командно-редови флагове.
Ред на Приоритет
- Командно-редови флагове (най-висок приоритет)
- Променливи на средата
- Конфигурационен файл (
baradb.confилиbaradb.json) - Вградени стойности по подразбиране (най-нисък приоритет)
Променливи на Средата
Мрежа
| Променлива | По подр. | Описание |
|---|---|---|
BARADB_ADDRESS |
127.0.0.1 |
Адрес за свързване |
BARADB_PORT |
9472 |
TCP бинарен протокол порт |
BARADB_HTTP_PORT |
9470 |
HTTP/REST API порт |
BARADB_WS_PORT |
9471 |
WebSocket порт |
Съхранение
| Променлива | По подр. | Описание |
|---|---|---|
BARADB_DATA_DIR |
./data |
Път до директория за данни |
BARADB_MEMTABLE_SIZE_MB |
64 |
Размер на MemTable в MB |
BARADB_CACHE_SIZE_MB |
256 |
Размер на page cache в MB |
BARADB_WAL_SYNC_INTERVAL_MS |
0 |
Интервал за WAL fsync (0 = всеки запис) |
BARADB_COMPACTION_INTERVAL_MS |
60000 |
Интервал за фонов compaction |
BARADB_BLOOM_BITS_PER_KEY |
10 |
Bloom филтър битове за ключ |
TLS/SSL
| Променлива | По подр. | Описание |
|---|---|---|
BARADB_TLS_ENABLED |
false |
Включване на TLS |
BARADB_CERT_FILE |
— | Път до TLS сертификат |
BARADB_KEY_FILE |
— | Път до TLS частен ключ |
Сигурност
| Променлива | По подр. | Описание |
|---|---|---|
BARADB_AUTH_ENABLED |
false |
Включване на автентикация |
BARADB_JWT_SECRET |
— | JWT подписващ secret |
BARADB_RATE_LIMIT_GLOBAL |
10000 |
Глобални заявки в секунда |
BARADB_RATE_LIMIT_PER_CLIENT |
1000 |
Заявки в секунда за клиент |
Логване
| Променлива | По подр. | Описание |
|---|---|---|
BARADB_LOG_LEVEL |
info |
Ниво на логване: debug, info, warn, error |
BARADB_LOG_FILE |
— | Път до лог файл (stdout ако е празен) |
BARADB_LOG_FORMAT |
json |
Формат на лога: json, text |
Vector Engine
| Променлива | По подр. | Описание |
|---|---|---|
BARADB_VECTOR_M |
16 |
HNSW M параметър |
BARADB_VECTOR_EF_CONSTRUCTION |
200 |
HNSW efConstruction |
BARADB_VECTOR_EF_SEARCH |
64 |
HNSW efSearch |
Graph Engine
| Променлива | По подр. | Описание |
|---|---|---|
BARADB_GRAPH_PAGE_RANK_ITERATIONS |
20 |
Брой итерации на PageRank |
BARADB_GRAPH_PAGE_RANK_DAMPING |
0.85 |
PageRank damping фактор |
BARADB_GRAPH_LOUVAIN_RESOLUTION |
1.0 |
Louvain резолюционен параметър |
Разпределени
| Променлива | По подр. | Описание |
|---|---|---|
BARADB_RAFT_NODE_ID |
— | Уникално ID на възел в клъстер |
BARADB_RAFT_PEERS |
— | Списък с адреси на peer-ове, разделени със запетая |
BARADB_RAFT_PORT |
9001 |
Raft вътрешен комуникационен порт |
BARADB_SHARD_COUNT |
1 |
Брой шардове |
BARADB_REPLICATION_FACTOR |
1 |
Фактор на репликация |
BARADB_SEED_NODES |
— | Gossip seed възли (host:port, разделени със запетая) |
Конфигурационен Файл
baradb.conf (INI-подобен)
[server]
address = "0.0.0.0"
port = 9472
http_port = 9470
ws_port = 9471
[storage]
data_dir = "/var/lib/baradb"
memtable_size_mb = 256
cache_size_mb = 512
wal_sync_interval_ms = 10
compaction_interval_ms = 30000
[tls]
enabled = true
cert_file = "/etc/baradb/server.crt"
key_file = "/etc/baradb/server.key"
[auth]
enabled = true
jwt_secret = "change-me-in-production"
rate_limit_global = 10000
rate_limit_per_client = 1000
[logging]
level = "info"
format = "json"
file = "/var/log/baradb/baradb.log"
[vector]
m = 16
ef_construction = 200
ef_search = 64
[cluster]
raft_node_id = "node1"
raft_peers = "node2:9001,node3:9001"
baradb.json
{
"server": {
"address": "0.0.0.0",
"port": 9472,
"http_port": 9470,
"ws_port": 9471
},
"storage": {
"data_dir": "/var/lib/baradb",
"memtable_size_mb": 256,
"cache_size_mb": 512
},
"tls": {
"enabled": true,
"cert_file": "/etc/baradb/server.crt",
"key_file": "/etc/baradb/server.key"
}
}
Командно-редови Флагове
./build/baradadb --help
BaraDB v1.1.4 — Multimodal Database Engine
Употреба:
baradadb [опции]
Опции:
-c, --config <файл> Път до конфигурационен файл
-p, --port <порт> TCP бинарен порт (по подр.: 9472)
--http-port <порт> HTTP порт (по подр.: 9470)
--ws-port <порт> WebSocket порт (по подр.: 9471)
-d, --data-dir <дир> Директория за данни (по подр.: ./data)
--tls-cert <файл> TLS сертификатен файл
--tls-key <файл> TLS файл с частен ключ
--log-level <ниво> Ниво на логване: debug, info, warn, error
--log-file <файл> Път до лог файл
--shell Стартиране на интерактивна обвивка
--version Показване на версия
--recover Изпълнение на WAL възстановяване
--checkpoint <файл> Checkpoint за възстановяване
-h, --help Показване на тази помощ
Примерни Конфигурации
Разработка
./build/baradadb \
--log-level debug \
--data-dir ./dev_data
Продукционен Единичен Възел
BARADB_TLS_ENABLED=true \
BARADB_CERT_FILE=/etc/baradb/server.crt \
BARADB_KEY_FILE=/etc/baradb/server.key \
BARADB_AUTH_ENABLED=true \
BARADB_JWT_SECRET="$(openssl rand -hex 32)" \
BARADB_LOG_LEVEL=warn \
BARADB_LOG_FILE=/var/log/baradb/baradb.log \
BARADB_MEMTABLE_SIZE_MB=256 \
BARADB_CACHE_SIZE_MB=1024 \
./build/baradadb
Продукционен Клъстер (3 възела)
# Възел 1
BARADB_ADDRESS=0.0.0.0 \
BARADB_PORT=9472 \
BARADB_RAFT_NODE_ID=node1 \
BARADB_RAFT_PEERS=node2:9001,node3:9001 \
BARADB_SHARD_COUNT=4 \
BARADB_REPLICATION_FACTOR=2 \
./build/baradadb