From 7f42a7fa58fba8a3d94941fdae10e52fb53fb5c0 Mon Sep 17 00:00:00 2001 From: Yaroslav Dynnikov <y.dynnikov@picodata.io> Date: Tue, 21 Nov 2023 09:21:29 +0000 Subject: [PATCH] system_tables.md: describe _pico_table --- docs/architecture/system_tables.md | 34 ++++++++++++++++++++++++++---- 1 file changed, 30 insertions(+), 4 deletions(-) diff --git a/docs/architecture/system_tables.md b/docs/architecture/system_tables.md index b8e0267d..87012ec7 100644 --- a/docs/architecture/system_tables.md +++ b/docs/architecture/system_tables.md @@ -16,18 +16,44 @@ Picodata 23.06.0-232-ge436159d5 Содержит информацию о пользовательÑких [таблицах](../overview/glossary.md#table) Picodata. +Глобальные таблицы реплицируютÑÑ Ð½Ð° каждый инÑÑ‚Ð°Ð½Ñ Ð² клаÑтере. + +Ð’ шардированных таблицах веÑÑŒ набор данных разбиваетÑÑ Ð½Ð° Ñегменты — +виртуальные [бакеты](../overview/glossary.md#bucket) (bucket), +пронумерованные `bucket_id`. Каждый репликаÑет хранит Ñвой набор +бакетов. Данные реплицируютÑÑ Ð¼ÐµÐ¶Ð´Ñƒ инÑтанÑами, принадлежащими одному +репликаÑету. + ПолÑ: * `id`: (_unsigned_) -* `name`: (_string_) -* `distribution`: (_array_) -* `format`: (_array_) +* `name`: (_string_) название таблицы +* `distribution`: (_array_) определÑет раÑпределение данных в клаÑтере. + Возможны Ñледующие варианты: + - `["global"]` — Ð³Ð»Ð¾Ð±Ð°Ð»ÑŒÐ½Ð°Ñ Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ð° + - `["sharded_implicitly", sharding_key, sharding_fn]` — + ÑˆÐ°Ñ€Ð´Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð½Ð°Ñ Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ð°, `bucket_id` вычиÑлÑетÑÑ Ð°Ð²Ñ‚Ð¾Ð¼Ð°Ñ‚Ð¸Ñ‡ÐµÑки + как `sharding_fn(sharding_key)` + - `sharding_fn`: (_string_) Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ ÑˆÐ°Ñ€Ð´Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ, на ÑегоднÑшний + день поддерживаетÑÑ Ñ‚Ð¾Ð»ÑŒÐºÐ¾ `"crc32"` + - `sharding_key`: (_array_) ключ ÑˆÐ°Ñ€Ð´Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ â€” маÑÑив полей + `[field,...]`, по которым вычиÑлÑетÑÑ `bucket_id` + - `["sharded_by_field", field]` — ÑˆÐ°Ñ€Ð´Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð½Ð°Ñ Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ð°, в качеÑтве + `bucket_id` иÑпользуетÑÑ Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ðµ Ð¿Ð¾Ð»Ñ `field` +* `format`: (_array_, `[[field_name, field_type, is_nullable]]`) маÑÑив Ñ Ð¾Ð¿Ð¸Ñанием + формата полей таблицы: + - `field_name`: (_string_) название Ð¿Ð¾Ð»Ñ + - `field_type`: (_string_, `"any" | "unsigned" | "string" | "number" | + "double" | "integer" | "boolean" | "varbinary" | "scalar" | + "decimal" | "uuid" | "datetime" | "interval" | "array" | + "map"`) тип хранимого Ð·Ð½Ð°Ñ‡ÐµÐ½Ð¸Ñ + - `is_nullable`: (_boolean_) возможноÑÑ‚ÑŒ хранить значение `NULL` * `schema_version`: (_unsigned_) верÑÐ¸Ñ Ñхемы, в которой таблица была Ñоздана. ИÑпользуетÑÑ Ð¿Ñ€Ð¸ воÑÑтановлении из Ñнапшота Ð´Ð»Ñ ÐºÐ¾Ñ€Ñ€ÐµÐºÑ‚Ð½Ð¾Ð¹ обработки шардированных таблиц * `operable`: (_boolean_) признак доÑтупноÑти таблицы на запиÑÑŒ. ИÑпользуетÑÑ Ð² процеÑÑе ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ð¸ ÑƒÐ´Ð°Ð»ÐµÐ½Ð¸Ñ Ñ‚Ð°Ð±Ð»Ð¸Ñ† -* `engine` (_string_) +* `engine`: (_string_, `"memtx" | "vinyl"`) [движок хранениÑ](../overview/glossary.md#db-engine) ИндекÑÑ‹: -- GitLab