diff --git a/docs/sql/broadcasted_sql.md b/docs/architecture/broadcasted_sql.md similarity index 92% rename from docs/sql/broadcasted_sql.md rename to docs/architecture/broadcasted_sql.md index 5cba51da21ba9d2f9beed9ad14a8b8c68bc33b3d..eae0e51420f191d6259b97377cf89ac8f8e16e8a 100644 --- a/docs/sql/broadcasted_sql.md +++ b/docs/architecture/broadcasted_sql.md @@ -4,7 +4,7 @@ Picodata включает в ÑÐµÐ±Ñ Ð±Ð¾Ð³Ð°Ñ‚ÑƒÑŽ функционально ## Принципы работы {: #sql-essentials } -Принципы работы раÑпределенного SQL ÑоглаÑуютÑÑ Ñ Ñ‚Ñ€ÐµÐ±Ð¾Ð²Ð°Ð½Ð¸Ñми [Ñтандарта SQL](../reference) (_Structured Query Language_, Ñзык Ñтруктурированных запроÑов) Ð´Ð»Ñ Ñ…Ñ€Ð°Ð½ÐµÐ½Ð¸Ñ Ð¸ ÑƒÐ¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð´Ð°Ð½Ð½Ñ‹Ð¼Ð¸ в виде таблиц: +Принципы работы раÑпределенного SQL ÑоглаÑуютÑÑ Ñ Ñ‚Ñ€ÐµÐ±Ð¾Ð²Ð°Ð½Ð¸Ñми [Ñтандарта SQL](../references/reference) (_Structured Query Language_, Ñзык Ñтруктурированных запроÑов) Ð´Ð»Ñ Ñ…Ñ€Ð°Ð½ÐµÐ½Ð¸Ñ Ð¸ ÑƒÐ¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð´Ð°Ð½Ð½Ñ‹Ð¼Ð¸ в виде таблиц: * Ð›ÑŽÐ±Ð°Ñ Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ð° предÑтавлÑет Ñобой именованный набор Ñтрок; * Ð’Ñе Ñтроки таблицы имеют одинаковый набор именованных Ñтолбцов; @@ -36,12 +36,12 @@ style="color:#39cb00ff">_зеленым_</span> — Ñобранные фраг ### РаÑпределение данных {: #data-distribution } РаÑпределенный SQL требует ÑобÑтвенно раÑÐ¿Ñ€ÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ Ð´Ð°Ð½Ð½Ñ‹Ñ… между различными репликаÑетами (шардами) клаÑтера. Ðто доÑтигаетÑÑ Ð·Ð° Ñчет -иÑÐ¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð²Ñтроенной библиотеки [Vshard](../glossary.md#vshard). +иÑÐ¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð²Ñтроенной библиотеки [Vshard](../general/glossary.md#vshard). ВзаимодейÑтвие Picodata SQL и Vshard заключаетÑÑ Ð² разделении функций: -- Picodata SQL работает Ñ ÑˆÐ°Ñ€Ð´Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð½Ñ‹Ð¼Ð¸ [таблицами](../glossary.md#table) +- Picodata SQL работает Ñ ÑˆÐ°Ñ€Ð´Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð½Ñ‹Ð¼Ð¸ [таблицами](../general/glossary.md#table) (таблицами), отдельные Ñтроки (кортежи) которых раÑпределÑÑŽÑ‚ÑÑ Ð¿Ð¾ - разным [бакетам](../glossary.md#bucket); + разным [бакетам](../general/glossary.md#bucket); - Vshard работает Ñ Ñ€Ð°Ñпределением бакетов по [репликаÑетам](../glossary.md#replicaset). @@ -65,9 +65,7 @@ Picodata SQL включает внутреннюю функцию по вычи `sharding_key`, попадут в один бакет. ОпиÑание поддерживаемых запроÑов и их ÑинтакÑиÑа приведены в разделе: -[Команды SQL](../queries) +[Команды SQL](../references/queries.md) --- -[ИÑходный код Ñтраницы](https://git.picodata.io/picodata/picodata/docs/-/blob/main/docs/sql/broadcasted_sql.md) - - +[ИÑходный код Ñтраницы](https://git.picodata.io/picodata/picodata/docs/-/blob/main/docs/architecture/broadcasted_sql.md) diff --git a/docs/clustering.md b/docs/architecture/clustering.md similarity index 98% rename from docs/clustering.md rename to docs/architecture/clustering.md index 749f5e4e01d6af86c64f9504317362e53b046ac6..1786d6f97ed9ee05348d5a901b89179c1354472e 100644 --- a/docs/clustering.md +++ b/docs/architecture/clustering.md @@ -36,7 +36,7 @@ picodata run --instance-id iN --listen iN --peer i1 Ðа Ñхеме ниже показаны Ñтапы жизненного цикла инÑтанÑа в контекÑте его приÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ Ðº клаÑтеру Picodata. - + Ð’ контекÑте операционных ÑиÑтем каждый инÑÑ‚Ð°Ð½Ñ ÑоответÑтвует группе из двух процеÑÑов — родительÑкого (supervisor) и дочернего (именно он @@ -133,7 +133,7 @@ discovery не будет, инÑÑ‚Ð°Ð½Ñ Ñразу перейдет к Ñта Ð”Ð»Ñ Ð¿ÐµÑ€Ð²Ð¸Ñ‡Ð½Ð¾Ð³Ð¾ вызова `box.cfg()`: - идентификаторы `instance_uuid`, `replicaset_uuid`, -- `box.cfg.replication` — ÑпиÑок [адреÑов](glossary.md#address) Ð´Ð»Ñ Ñ€ÐµÐ¿Ð»Ð¸ÐºÐ°Ñ†Ð¸Ð¸. +- `box.cfg.replication` — ÑпиÑок [адреÑов](../general/glossary.md#address) Ð´Ð»Ñ Ñ€ÐµÐ¿Ð»Ð¸ÐºÐ°Ñ†Ð¸Ð¸. Получив вÑе наÑтройки, инÑÑ‚Ð°Ð½Ñ Ð¸Ñпользует их в `box.cfg()` (Ñм. [`init_common()`](#fn-init_common)), и затем Ñоздает в БД группу @@ -335,7 +335,7 @@ Cartridge) Picodata не иÑпользует понÑтие "ÑоÑтоÑÐ½Ð¸Ñ Ñ‚Ð¾Ð¼ же порÑдке, в котором он к ним приÑтупает. - + Ðиже перечиÑлены ÑущеÑтвующие варианты активноÑтей, которые Ñоздает `topology_governor`. @@ -460,7 +460,7 @@ raft-журнал, необходимо убедитьÑÑ Ñ‡Ñ‚Ð¾ журнал данные начали ребаланÑироватьÑÑ. КлаÑтер Picodata поддерживает раÑпределенные SQL-запроÑÑ‹. Подробнее о -работающих клаÑтерных функциÑÑ… SQL Ñм. в разделе [РаÑпределенный SQL](../sql/broadcasted_sql). +работающих клаÑтерных функциÑÑ… SQL Ñм. в разделе [РаÑпределенный SQL](broadcasted_sql). --- -[ИÑходный код Ñтраницы](https://git.picodata.io/picodata/picodata/docs/-/blob/main/docs/clustering.md) +[ИÑходный код Ñтраницы](https://git.picodata.io/picodata/picodata/docs/-/blob/main/docs/architecture/clustering.md) diff --git a/docs/discovery.md b/docs/architecture/discovery.md similarity index 98% rename from docs/discovery.md rename to docs/architecture/discovery.md index 456dc9c9fe3147e1a820bddd0b1921c4376a1aa5..1320842a8076ea2293c2e5109378da1776f94376 100644 --- a/docs/discovery.md +++ b/docs/architecture/discovery.md @@ -1,6 +1,6 @@ # Ðлгоритм discovery Ð’ данном разделе опиÑаны подробноÑти работы алгоритма -[discovery](glossary.md#discovery), который отвечает за обнаружение +[discovery](../general/glossary.md#discovery), который отвечает за обнаружение инÑтанÑами друг друга при инициализации клаÑтера. ## Входные данные {: #initial-state } @@ -180,5 +180,4 @@ true`, в то Ð²Ñ€ÐµÐ¼Ñ ÐºÐ°Ðº уже ÑущеÑтвовал `i_am_bootstrap_l инициализации клаÑтера](clustering.md). --- -[ИÑходный код Ñтраницы](https://git.picodata.io/picodata/picodata/docs/-/blob/main/docs/discovery.md) - +[ИÑходный код Ñтраницы](https://git.picodata.io/picodata/picodata/docs/-/blob/main/docs/architecture/discovery.md) diff --git a/docs/raft_voters.md b/docs/architecture/raft_voters.md similarity index 88% rename from docs/raft_voters.md rename to docs/architecture/raft_voters.md index de0bf668c4f79c35d127a08c819226e61108dd3a..14ff080023e9c7cc7ac49a916bf7bdb2ad5b2c32 100644 --- a/docs/raft_voters.md +++ b/docs/architecture/raft_voters.md @@ -1,10 +1,10 @@ # Raft и отказоуÑтойчивоÑть -Ðлгоритм [Raft](glossary.md#raft) в Picodata обеÑпечивает отказоуÑтойчивоÑть раÑпределенной +Ðлгоритм [Raft](../general/glossary.md#raft) в Picodata обеÑпечивает отказоуÑтойчивоÑть раÑпределенной ÑиÑтемы при выходе из ÑÑ‚Ñ€Ð¾Ñ Ñ‡Ð°Ñти ее узлов. Ðто доÑтигаетÑÑ Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ: - иÑÐ¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ [зон доÑтупноÑти](deploy_on_hosts.md#failure-domains) Ð´Ð»Ñ Ñффективного раÑÐ¿Ñ€ÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ Ñ€ÐµÐ¿Ð»Ð¸Ðº клаÑтера между физичеÑкими локациÑми; -- динамичеÑкого Ð¿ÐµÑ€ÐµÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ñ [голоÑующих узлов](glossary.md#node-states) в Raft. +- динамичеÑкого Ð¿ÐµÑ€ÐµÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ñ [голоÑующих узлов](../general/glossary.md#node-states) в Raft. ## ДинамичеÑкое переключение голоÑующих узлов в Raft (Raft voter failover) {: #raft-voter-failover } @@ -51,8 +51,8 @@ Ñтанет автоматичеÑки голоÑующим, Ñ‚.к. Ñхема раÑÐ¿Ñ€ÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ Ð½Ðµ будет Ñтого требовать. -См. [отдельный подраздел](../deploy_on_hosts) Ñ Ð¾Ð¿Ð¸Ñанием Ñ€Ð°Ð·Ð²ÐµÑ€Ñ‚Ñ‹Ð²Ð°Ð½Ð¸Ñ ÐºÐ»Ð°Ñтера на физичеÑких узлах. +См. [отдельный подраздел](../tutorials/deploy_on_hosts.md) Ñ Ð¾Ð¿Ð¸Ñанием Ñ€Ð°Ð·Ð²ÐµÑ€Ñ‚Ñ‹Ð²Ð°Ð½Ð¸Ñ ÐºÐ»Ð°Ñтера на физичеÑких узлах. --- -[ИÑходный код Ñтраницы](https://git.picodata.io/picodata/picodata/docs/-/blob/main/docs/raft_voters.md) +[ИÑходный код Ñтраницы](https://git.picodata.io/picodata/picodata/docs/-/blob/main/docs/architecture/raft_voters.md) diff --git a/docs/benefits_rust.md b/docs/benefits_rust.md deleted file mode 100644 index 055ddd8b991082a12d6ca919a861041042fcb58d..0000000000000000000000000000000000000000 --- a/docs/benefits_rust.md +++ /dev/null @@ -1,15 +0,0 @@ -# ПреимущеÑтва Rust - -Ð’ данном разделе приведены аргументы в пользу разработки приложений Ð´Ð»Ñ Picodata на Ñзыке Rust. - - Программное обеÑпечение Picodata предоÑтавлÑет вÑтроенные ÑредÑтва Ð´Ð»Ñ Ð½Ð°Ð¿Ð¸ÑÐ°Ð½Ð¸Ñ ÐºÐ¾Ð´Ð° на Rust. ИÑпользование Rust имеет Ñ€Ñд преимущеÑтв не только Ð±Ð»Ð°Ð³Ð¾Ð´Ð°Ñ€Ñ Ñ€Ð°Ñтущей популÑрноÑти Ñтого Ñзыка, но и за Ñчет его богатой Ñтандартной библиотеки. Ðто позволÑет Ñоздавать новую функциональноÑть, не Ð¿Ñ€Ð¸Ð±ÐµÐ³Ð°Ñ Ðº Ñторонним библиотекам так, как Ñто приходитÑÑ Ð´ÐµÐ»Ð°Ñ‚ÑŒ, к примеру, Ñ Lua. Также к чиÑлу доÑтоинÑтв Rust отноÑÑÑ‚ÑÑ: - -- ÑÑ‚Ñ€Ð¾Ð³Ð°Ñ ÑтатичеÑÐºÐ°Ñ Ñ‚Ð¸Ð¿Ð¸Ð·Ð°Ñ†Ð¸Ñ, ÑƒÐ¿Ñ€Ð¾Ñ‰Ð°ÑŽÑ‰Ð°Ñ Ñ€Ð°Ð·Ñ€Ð°Ð±Ð¾Ñ‚ÐºÑƒ и поддержку больших проектов. При Ñтом наличие мощного движка Ð²Ñ‹Ð²ÐµÐ´ÐµÐ½Ð¸Ñ Ñ‚Ð¸Ð¿Ð¾Ð² ([type inference](https://dhghomon.github.io/easy_rust/Chapter_8.html){:target="_blank"}) позволÑет не указывать Ñвно вÑе типы в коде; -- безопаÑÐ½Ð°Ñ Ñ€Ð°Ð±Ð¾Ñ‚Ð° Ñ Ð¿Ð°Ð¼Ñтью ([borrow checker](https://doc.rust-lang.org/1.8.0/book/references-and-borrowing.html){:target="_blank"}), что делает код безопаÑнее чем на Ñзыках C/C++. При Ñтом код оÑтаетÑÑ Ð±Ð¾Ð»ÐµÐµ Ñффективным чем на Ñзыках, иÑпользующих "Ñборщики муÑора" (C#, Java, Go), за Ñчет того, что безопаÑноÑть обеÑпечиваетÑÑ Ð²Ð¾ Ð²Ñ€ÐµÐ¼Ñ ÐºÐ¾Ð¼Ð¿Ð¸Ð»Ñции, а не иÑполнениÑ; -- мощные вÑтроенные ÑредÑтва оптимизации (а также оптимизации LLVM) делают Rust одним из Ñамых Ñффективных Ñзыков на ÑегоднÑшний день; -- Ñ€Ð°Ð·Ð²Ð¸Ñ‚Ð°Ñ ÑкоÑиÑтема: [Cargo](https://doc.rust-lang.org/cargo/){:target="_blank"} — единый инÑтрумент Ð´Ð»Ñ Ð½Ð°Ñтройки/Ñборки/теÑтированиÑ/уÑтановки завиÑимоÑтей и публикации кода. [Crates.io](https://crates.io){:target="_blank"} — централизованное хранилище Rust-модулей, напиÑанных ÑообщеÑтвом. -- ÑÑ‚Ð°Ð½Ð´Ð°Ñ€Ñ‚Ð¸Ð·Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð½Ð°Ñ Ð´Ð¾ÐºÑƒÐ¼ÐµÐ½Ñ‚Ð°Ñ†Ð¸Ñ â€” наиболее удобный ÑпоÑоб ÐºÐ¾Ð¼Ð¼ÐµÐ½Ñ‚Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ ÑобÑтвенного кода (доÑтаточно напиÑать комментарий Ñ Ð¿Ñ€Ð¾Ñтой разметкой, и затем при публикации Ð¼Ð¾Ð´ÑƒÐ»Ñ Ð´Ð¾ÐºÑƒÐ¼ÐµÐ½Ñ‚Ð°Ñ†Ð¸Ñ Ð°Ð²Ñ‚Ð¾Ð¼Ð°Ñ‚Ð¸Ñ‡ÐµÑки ÑтановитÑÑ Ð´Ð¾Ñтупна вÑем пользователÑм на Ñайте [docs.rs](https://docs.rs){:target="_blank"}); -- быÑтро раÑтущее ÑообщеÑтво разработчиков и ÑнтузиаÑтов. Ð’ ежегодном [опроÑе](https://insights.stackoverflow.com/survey/2021){:target="_blank"} пользователей [stackoverflow.com](https://stackoverflow.com){:target="_blank"} Ñзык Rust неÑколько лет подрÑд [занимает первое меÑто](https://stackoverflow.blog/2020/06/05/why-the-developers-who-use-rust-love-it-so-much){:target="_blank"} по удовлетворенноÑти пользователей (те, которые пишут на Rust, не хотÑÑ‚ пиÑать ни на чем другом). - ---- -[ИÑходный код Ñтраницы](https://git.picodata.io/picodata/picodata/docs/-/blob/main/docs/benefits_rust.md) diff --git a/docs/benefits.md b/docs/general/benefits.md similarity index 98% rename from docs/benefits.md rename to docs/general/benefits.md index 1e2f56c5d914513479b005e3681e78b1b68a956d..5f537bfbeb83aae05d272c95106bde83fc366c63 100644 --- a/docs/benefits.md +++ b/docs/general/benefits.md @@ -32,4 +32,4 @@ Picodata — Ñто не только программное обеÑпечен * Выполнение запроÑов на изменение наÑтроек клаÑтера. --- -[ИÑходный код Ñтраницы](https://git.picodata.io/picodata/picodata/docs/-/blob/main/docs/benefits.md) +[ИÑходный код Ñтраницы](https://git.picodata.io/picodata/picodata/docs/-/blob/main/docs/general/benefits.md) diff --git a/docs/description.md b/docs/general/description.md similarity index 61% rename from docs/description.md rename to docs/general/description.md index ea07ab56f377afbb085d3f1efb666288c3ccc6c2..cc73c692111323f7d3d641a031c4bab3b14f4814 100644 --- a/docs/description.md +++ b/docs/general/description.md @@ -5,19 +5,19 @@ Picodata — Ñто раÑÐ¿Ñ€ÐµÐ´ÐµÐ»ÐµÐ½Ð½Ð°Ñ ÑиÑтема промышленного ÑƒÑ€Ð¾Ð²Ð½Ñ Ð´Ð»Ñ ÑƒÐ¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð±Ð°Ð·Ð°Ð¼Ð¸ данных Ñ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾Ñтью раÑÑˆÐ¸Ñ€ÐµÐ½Ð¸Ñ Ñ„ÑƒÐ½ÐºÑ†Ð¸Ð¾Ð½Ð°Ð»ÑŒÐ½Ð¾Ñти за Ñчет плагинов. ИÑходный код Picodata [открыт](https://git.picodata.io/picodata/picodata){:target="_blank"}. Программное обеÑпечение Picodata реализует хранение Ñтруктурированных и неÑтруктурированных данных, транзакционное управление данными, Ñзыки запроÑов SQL и GraphQL, а также поддержку плагинов на Ñзыках Rust и Lua. ## Ðазначение {: #purpose } -ОÑновным назначением продукта Picodata ÑвлÑетÑÑ Ð³Ð¾Ñ€Ð¸Ð·Ð¾Ð½Ñ‚Ð°Ð»ÑŒÐ½Ð¾ маÑштабируемое хранение Ñтруктурированных и неÑтруктурированных данных, управление ими, предоÑтавление Ñреды вычиÑлений внутри клаÑтера, ÑоÑтоÑщего из [реплицированных](glossary.md#replication) отдельных узлов (*[инÑтанÑов](glossary.md#instance)*). Ð”Ð°Ð½Ð½Ð°Ñ ÐºÐ¾Ð¼Ð±Ð¸Ð½Ð°Ñ†Ð¸Ñ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾Ñтей позволÑет Ñффективно реализовать Ñценарии ÑƒÐ¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð½Ð°Ð¸Ð±Ð¾Ð»ÐµÐµ воÑтребованными, чаÑто изменÑющимиÑÑ, *горÑчими* данными. Ð’ традиционных корпоративных архитектурах Ð´Ð»Ñ ÑƒÑÐºÐ¾Ñ€ÐµÐ½Ð¸Ñ Ð¸ Ð¿Ð¾Ð²Ñ‹ÑˆÐµÐ½Ð¸Ñ Ð½Ð°Ð´Ñ‘Ð¶Ð½Ð¾Ñти доÑтупа к данным клаÑÑичеÑких, универÑальных СУБД иÑпользуютÑÑ ÐºÑши и шины данных. Цель Ñ€Ð°Ð·Ð²Ð¸Ñ‚Ð¸Ñ Picodata: заменить три компонента корпоративной архитектуры — кÑш, шина и витрина доÑтупа к данным — единым, выÑокопроизводительным и Ñтрого конÑиÑтентным решением. +ОÑновным назначением продукта Picodata ÑвлÑетÑÑ Ð³Ð¾Ñ€Ð¸Ð·Ð¾Ð½Ñ‚Ð°Ð»ÑŒÐ½Ð¾ маÑштабируемое хранение Ñтруктурированных и неÑтруктурированных данных, управление ими, предоÑтавление Ñреды вычиÑлений внутри клаÑтера, ÑоÑтоÑщего из [реплицированных](../general/glossary.md#replication) отдельных узлов (*[инÑтанÑов](../general/glossary.md#instance)*). Ð”Ð°Ð½Ð½Ð°Ñ ÐºÐ¾Ð¼Ð±Ð¸Ð½Ð°Ñ†Ð¸Ñ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾Ñтей позволÑет Ñффективно реализовать Ñценарии ÑƒÐ¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð½Ð°Ð¸Ð±Ð¾Ð»ÐµÐµ воÑтребованными, чаÑто изменÑющимиÑÑ, *горÑчими* данными. Ð’ традиционных корпоративных архитектурах Ð´Ð»Ñ ÑƒÑÐºÐ¾Ñ€ÐµÐ½Ð¸Ñ Ð¸ Ð¿Ð¾Ð²Ñ‹ÑˆÐµÐ½Ð¸Ñ Ð½Ð°Ð´Ñ‘Ð¶Ð½Ð¾Ñти доÑтупа к данным клаÑÑичеÑких, универÑальных СУБД иÑпользуютÑÑ ÐºÑши и шины данных. Цель Ñ€Ð°Ð·Ð²Ð¸Ñ‚Ð¸Ñ Picodata: заменить три компонента корпоративной архитектуры — кÑш, шина и витрина доÑтупа к данным — единым, выÑокопроизводительным и Ñтрого конÑиÑтентным решением. ## Роль в платформе данных {: #platform } С точки Ð·Ñ€ÐµÐ½Ð¸Ñ Ð¸ÑÐ¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð½Ð°ÑˆÐµÐ³Ð¾ ПО в ÑоÑтаве корпоративной платформы, Picodata предоÑтавлÑет операционный Ñлой ÑƒÐ¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð´Ð°Ð½Ð½Ñ‹Ð¼Ð¸ Ð´Ð»Ñ Ñ€ÐµÑˆÐµÐ½Ð¸Ð¹ клаÑÑа In-memory data grid (IMDG). Ðто Ñ€ÐµÐ·Ð¸Ð´ÐµÐ½Ñ‚Ð½Ð°Ñ Ð±Ð°Ð·Ð° данных Ð´Ð»Ñ Ð¾Ñ‡ÐµÐ½ÑŒ быÑтрой обработки Ñреднего по объёму маÑÑива данных. Ð’Ñе данные хранÑÑ‚ÑÑ Ð² оперативной памÑти, но при Ñтом они перÑиÑтентны за Ñчёт периодичеÑкого Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ñнимков БД (snapshots) на диÑке. Ðиже показана уÑÐ»Ð¾Ð²Ð½Ð°Ñ Ð¿Ð¸Ñ€Ð°Ð¼Ð¸Ð´Ð° ÑƒÐ¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð´Ð°Ð½Ð½Ñ‹Ð¼Ð¸ Ñ Ñ‚Ð¾Ñ‡ÐºÐ¸ Ð·Ñ€ÐµÐ½Ð¸Ñ Ð¸Ñ… объёма. - + Picodata занимает верхнюю чаÑть пирамиды, Ñ‚.к. оперирует данными ограниченного объёма. Ðа изображении показаны примеры прочих СУБД, которые Ñлужат Ð´Ð»Ñ ÑƒÐ¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð±Ð¾Ð»ÐµÐµ крупными маÑÑивами данных и лучше подходÑÑ‚ Ð´Ð»Ñ Ð°Ñ€Ñ…Ð¸Ð²Ð½Ð¾Ð³Ð¾ Ñ…Ñ€Ð°Ð½ÐµÐ½Ð¸Ñ Ð¸ поÑÑ‚Ñ€Ð¾ÐµÐ½Ð¸Ñ Ð°Ð½Ð°Ð»Ð¸Ñ‚Ð¸Ñ‡ÐµÑких отчетов. Ð’ то же Ð²Ñ€ÐµÐ¼Ñ Ñ‚Ð°ÐºÐ¸Ðµ СУБД хуже ÑправлÑÑŽÑ‚ÑÑ Ñ Ð¿Ð¾Ñ‚Ð¾ÐºÐ¾Ð¼ чаÑто менÑющихÑÑ Ð´Ð°Ð½Ð½Ñ‹Ñ…. Ðто именно та облаÑть, где Picodata Ñффективно решает поÑтавленные задачи. ## Задачи {: #features } Программное обеÑпечение Picodata решает Ñледующие задачи: -* Ñ€ÐµÐ°Ð»Ð¸Ð·Ð°Ñ†Ð¸Ñ Ð¾Ð±Ñ‰ÐµÐ³Ð¾ [линеаризованного](glossary.md#linearizability) хранилища конфигурации, Ñхемы данных и топологии клаÑтера, вÑтроенного в раÑпределенную ÑиÑтему ÑƒÐ¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð±Ð°Ð·Ð°Ð¼Ð¸ данных; +* Ñ€ÐµÐ°Ð»Ð¸Ð·Ð°Ñ†Ð¸Ñ Ð¾Ð±Ñ‰ÐµÐ³Ð¾ [линеаризованного](../general/glossary.md#linearizability) хранилища конфигурации, Ñхемы данных и топологии клаÑтера, вÑтроенного в раÑпределенную ÑиÑтему ÑƒÐ¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð±Ð°Ð·Ð°Ð¼Ð¸ данных; * предоÑтавление интерфейÑа командной Ñтроки по управлению топологией клаÑтера; * Ñ€ÐµÐ°Ð»Ð¸Ð·Ð°Ñ†Ð¸Ñ runtime-библиотек по работе Ñ Ñетью, файловому вводу-выводу, Ñ€ÐµÐ°Ð»Ð¸Ð·Ð°Ñ†Ð¸Ñ ÐºÐ¾Ð¾Ð¿ÐµÑ€Ð°Ñ‚Ð¸Ð²Ð½Ð¾Ð¹ многозадачноÑти и ÑƒÐ¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð¿Ð¾Ñ‚Ð¾ÐºÐ°Ð¼Ð¸, работа Ñо вÑтроенной СУБД ÑредÑтвами Ñзыка Rust; * поддержка Ñзыка SQL Ð´Ð»Ñ Ñ€Ð°Ð±Ð¾Ñ‚Ñ‹ как Ñ Ð´Ð°Ð½Ð½Ñ‹Ð¼Ð¸ отдельного инÑтанÑа, так и Ñ Ð´Ð°Ð½Ð½Ñ‹Ð¼Ð¸ вÑего клаÑтера; @@ -51,7 +51,7 @@ Picodata занимает верхнюю чаÑть пирамиды, Ñ‚.к. о * проÑÑ‚Ð°Ñ Ð½Ð°Ñтройка Ð´Ð»Ñ Ð·Ð°Ð¿ÑƒÑка шардированного клаÑтера. Ðе требуетÑÑ Ð¼Ð½Ð¾Ð³Ð¾ файлов конфигурации; * ÑовмеÑтимоÑть Ñ Ð»ÑŽÐ±Ñ‹Ð¼Ð¸ инÑтрументами Ñ€Ð°Ð·Ð²ÐµÑ€Ñ‚Ñ‹Ð²Ð°Ð½Ð¸Ñ Ð¸Ð½ÑтанÑов (Ansible, Chef, Puppet и др.); * обеÑпечение выÑокой доÑтупноÑти данных без необходимоÑти в клаÑтере Etcd и дополнительных наÑтройках; -* автоматичеÑкое определение активного инÑтанÑа в [репликаÑетах](glossary.md#replicaset) любого размера; +* автоматичеÑкое определение активного инÑтанÑа в [репликаÑетах](../general/glossary.md#replicaset) любого размера; * ÐµÐ´Ð¸Ð½Ð°Ñ Ñхема данных во вÑех репликаÑетах клаÑтера; * возможноÑть обновлÑть Ñхему данных и менÑть топологию работающего клаÑтера, например, добавлÑть новые инÑтанÑÑ‹. Picodata автоматичеÑки управлÑет верÑиÑми Ñхемы; * вÑтроенные инÑтрументы Ð´Ð»Ñ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ð¸ запуÑка приложений; @@ -60,39 +60,39 @@ Picodata занимает верхнюю чаÑть пирамиды, Ñ‚.к. о ## Ðрхитектура клаÑтера {: #architecture } ### СоÑтавные чаÑти клаÑтера {: #cluster-internals } -Ðрхитектура клаÑтера Picodata предполагает ÑиÑтему отдельных *[инÑтанÑов](glossary.md#instance)* — программных узлов, входÑщих в ÑоÑтав клаÑтера. Каждый такой узел может выполнÑть различные роли, например роль Ñ…Ñ€Ð°Ð½ÐµÐ½Ð¸Ñ Ð´Ð°Ð½Ð½Ñ‹Ñ…, роль Ñервера приложениÑ, или Ñлужебную роль координатора клаÑтера. +Ðрхитектура клаÑтера Picodata предполагает ÑиÑтему отдельных *[инÑтанÑов](../general/glossary.md#instance)* — программных узлов, входÑщих в ÑоÑтав клаÑтера. Каждый такой узел может выполнÑть различные роли, например роль Ñ…Ñ€Ð°Ð½ÐµÐ½Ð¸Ñ Ð´Ð°Ð½Ð½Ñ‹Ñ…, роль Ñервера приложениÑ, или Ñлужебную роль координатора клаÑтера. Ð’Ñе инÑтанÑÑ‹ работают Ñ ÐµÐ´Ð¸Ð½Ð¾Ð¹ Ñхемой данных и кодом приложениÑ. Каждый процеÑÑ Ð±Ð°Ð·Ñ‹ данных выполнÑетÑÑ Ð½Ð° одном процеÑÑорном Ñдре и хранит иÑпользуемый набор данных в оперативной памÑти. -Любой отдельный инÑÑ‚Ð°Ð½Ñ ÑвлÑетÑÑ Ñ‡Ð°Ñтью набора реплик, который также называют *[репликаÑетом](glossary.md#replicaset)*. РепликаÑет может ÑоÑтоÑть из одного или неÑкольких инÑтанÑов — дубликатов одного и того же набора данных. Внутри репликаÑета вÑегда еÑть *активный* инÑÑ‚Ð°Ð½Ñ Ð¸ — еÑли реплик больше 1 — то некоторое чиÑло *резервных* инÑтанÑов, обеÑпечивающих отказоуÑтойчивоÑть ÑиÑтемы в Ñлучае выхода из ÑÑ‚Ñ€Ð¾Ñ Ð¸Ð»Ð¸ недоÑтупноÑти активного инÑтанÑа. ЧиÑло реплик определÑетÑÑ *фактором репликации*, заданным в глобальных наÑтройках Picodata. +Любой отдельный инÑÑ‚Ð°Ð½Ñ ÑвлÑетÑÑ Ñ‡Ð°Ñтью набора реплик, который также называют *[репликаÑетом](../general/glossary.md#replicaset)*. РепликаÑет может ÑоÑтоÑть из одного или неÑкольких инÑтанÑов — дубликатов одного и того же набора данных. Внутри репликаÑета вÑегда еÑть *активный* инÑÑ‚Ð°Ð½Ñ Ð¸ — еÑли реплик больше 1 — то некоторое чиÑло *резервных* инÑтанÑов, обеÑпечивающих отказоуÑтойчивоÑть ÑиÑтемы в Ñлучае выхода из ÑÑ‚Ñ€Ð¾Ñ Ð¸Ð»Ð¸ недоÑтупноÑти активного инÑтанÑа. ЧиÑло реплик определÑетÑÑ *фактором репликации*, заданным в глобальных наÑтройках Picodata. Ðа риÑунке ниже показана Ñхема проÑтого клаÑтера из двух репликаÑетов, каждый из которых ÑоÑтоит из двух инÑтанÑов (активного и резервного). - + РепликаÑеты ÑвлÑÑŽÑ‚ÑÑ ÐµÐ´Ð¸Ð½Ð¸Ñ†Ð°Ð¼Ð¸ горизонтального маÑÑˆÑ‚Ð°Ð±Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ ÐºÐ»Ð°Ñтера. Данные баланÑируютÑÑ Ð¼ÐµÐ¶Ð´Ñƒ ними автоматичеÑки. ### Хранение данных {: #data-storage } -Внутри каждого репликаÑета еÑть *бакет* ([bucket](glossary.md#bucket)) — Ð²Ð¸Ñ€Ñ‚ÑƒÐ°Ð»Ð¸Ð·Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð½Ð°Ñ Ð½ÐµÐ´ÐµÐ»Ð¸Ð¼Ð°Ñ ÐµÐ´Ð¸Ð½Ð¸Ñ†Ð° хранениÑ, обеÑÐ¿ÐµÑ‡Ð¸Ð²Ð°ÑŽÑ‰Ð°Ñ Ð»Ð¾ÐºÐ°Ð»ÑŒÐ½Ð¾Ñть данных (например, хранение неÑкольких ÑвÑзанных Ñ ÐºÐ»Ð¸ÐµÐ½Ñ‚Ð¾Ð¼ запиÑей на одном физичеÑком узле Ñети). Сам по Ñебе бакет не имеет ограничений по емкоÑти и может Ñодержать любой объем данных. Горизонтальное маÑштабирование позволÑет раÑпределить бакеты по разным шардам, Ð¾Ð¿Ñ‚Ð¸Ð¼Ð¸Ð·Ð¸Ñ€ÑƒÑ Ð¿Ñ€Ð¾Ð¸Ð·Ð²Ð¾Ð´Ð¸Ñ‚ÐµÐ»ÑŒÐ½Ð¾Ñть клаÑтера путем Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð½Ð¾Ð²Ñ‹Ñ… реплицированных инÑтанÑов. Чем больше репликаÑетов входит в ÑоÑтав клаÑтера, тем меньше нагрузка на каждый из них. Бакет хранитÑÑ Ñ„Ð¸Ð·Ð¸Ñ‡ÐµÑки на одном репликаÑете и ÑвлÑетÑÑ Ð¿Ñ€Ð¾Ð¼ÐµÐ¶ÑƒÑ‚Ð¾Ñ‡Ð½Ñ‹Ð¼ звеном между данными и уÑтройÑтвом хранениÑ. Ð’ каждом репликаÑете может быть много бакетов (или не быть ни одного). Внутри бакета данные задублированы по вÑем инÑтанÑам в рамках репликаÑета в ÑоответÑтвии Ñ Ñ„Ð°ÐºÑ‚Ð¾Ñ€Ð¾Ð¼ репликации. КоличеÑтво бакетов может быть задано при первоначальной наÑтройке клаÑтера. По умолчанию клаÑтер Picodata иÑпользует 3000 бакетов. +Внутри каждого репликаÑета еÑть *бакет* ([bucket](../general/glossary.md#bucket)) — Ð²Ð¸Ñ€Ñ‚ÑƒÐ°Ð»Ð¸Ð·Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð½Ð°Ñ Ð½ÐµÐ´ÐµÐ»Ð¸Ð¼Ð°Ñ ÐµÐ´Ð¸Ð½Ð¸Ñ†Ð° хранениÑ, обеÑÐ¿ÐµÑ‡Ð¸Ð²Ð°ÑŽÑ‰Ð°Ñ Ð»Ð¾ÐºÐ°Ð»ÑŒÐ½Ð¾Ñть данных (например, хранение неÑкольких ÑвÑзанных Ñ ÐºÐ»Ð¸ÐµÐ½Ñ‚Ð¾Ð¼ запиÑей на одном физичеÑком узле Ñети). Сам по Ñебе бакет не имеет ограничений по емкоÑти и может Ñодержать любой объем данных. Горизонтальное маÑштабирование позволÑет раÑпределить бакеты по разным шардам, Ð¾Ð¿Ñ‚Ð¸Ð¼Ð¸Ð·Ð¸Ñ€ÑƒÑ Ð¿Ñ€Ð¾Ð¸Ð·Ð²Ð¾Ð´Ð¸Ñ‚ÐµÐ»ÑŒÐ½Ð¾Ñть клаÑтера путем Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð½Ð¾Ð²Ñ‹Ñ… реплицированных инÑтанÑов. Чем больше репликаÑетов входит в ÑоÑтав клаÑтера, тем меньше нагрузка на каждый из них. Бакет хранитÑÑ Ñ„Ð¸Ð·Ð¸Ñ‡ÐµÑки на одном репликаÑете и ÑвлÑетÑÑ Ð¿Ñ€Ð¾Ð¼ÐµÐ¶ÑƒÑ‚Ð¾Ñ‡Ð½Ñ‹Ð¼ звеном между данными и уÑтройÑтвом хранениÑ. Ð’ каждом репликаÑете может быть много бакетов (или не быть ни одного). Внутри бакета данные задублированы по вÑем инÑтанÑам в рамках репликаÑета в ÑоответÑтвии Ñ Ñ„Ð°ÐºÑ‚Ð¾Ñ€Ð¾Ð¼ репликации. КоличеÑтво бакетов может быть задано при первоначальной наÑтройке клаÑтера. По умолчанию клаÑтер Picodata иÑпользует 3000 бакетов. Ðиже показан пример Ñхемы Ñ…Ñ€Ð°Ð½ÐµÐ½Ð¸Ñ Ð´Ð°Ð½Ð½Ñ‹Ñ… внутри репликаÑета. - + ### ОтказоуÑтойчивоÑть {: #failover } -Ðаличие неÑкольких реплик внутри репликаÑета обеÑпечивают его [отказоуÑтойчивоÑть](glossary.md#failsoft). Дополнительно Ð´Ð»Ñ Ð¿Ð¾Ð²Ñ‹ÑˆÐµÐ½Ð¸Ñ Ð½Ð°Ð´ÐµÐ¶Ð½Ð¾Ñти каждый инÑÑ‚Ð°Ð½Ñ ÐºÐ»Ð°Ñтера внутри репликаÑета находитÑÑ Ð½Ð° разных физичеÑких Ñерверах, а в некоторых ÑлучаÑÑ… — в удаленных друг от друга датацентрах. Таким образом, в Ñлучае недоÑтупноÑти датацентра в репликаÑете проиÑходит переключение на резервную реплику/инÑÑ‚Ð°Ð½Ñ Ð±ÐµÐ· Ð¿Ñ€ÐµÑ€Ñ‹Ð²Ð°Ð½Ð¸Ñ Ñ€Ð°Ð±Ð¾Ñ‚Ñ‹. +Ðаличие неÑкольких реплик внутри репликаÑета обеÑпечивают его [отказоуÑтойчивоÑть](../general/glossary.md#failsoft). Дополнительно Ð´Ð»Ñ Ð¿Ð¾Ð²Ñ‹ÑˆÐµÐ½Ð¸Ñ Ð½Ð°Ð´ÐµÐ¶Ð½Ð¾Ñти каждый инÑÑ‚Ð°Ð½Ñ ÐºÐ»Ð°Ñтера внутри репликаÑета находитÑÑ Ð½Ð° разных физичеÑких Ñерверах, а в некоторых ÑлучаÑÑ… — в удаленных друг от друга датацентрах. Таким образом, в Ñлучае недоÑтупноÑти датацентра в репликаÑете проиÑходит переключение на резервную реплику/инÑÑ‚Ð°Ð½Ñ Ð±ÐµÐ· Ð¿Ñ€ÐµÑ€Ñ‹Ð²Ð°Ð½Ð¸Ñ Ñ€Ð°Ð±Ð¾Ñ‚Ñ‹. Пример географичеÑкого раÑÐ¿Ñ€ÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ Ñ€ÐµÐ¿Ð»Ð¸ÐºÐ°Ñета показан на Ñхеме ниже. - + ### Шардирование {: #sharding } -[Шардирование](glossary.md#sharding) — Ñто раÑпределение бакетов между различными репликаÑетами. Ð’ Picodata иÑпользуетÑÑ Ð¾Ñнованное на Ñ…Ñшах шардирование Ñ Ñ…Ñ€Ð°Ð½ÐµÐ½Ð¸ÐµÐ¼ данных в виртуальных бакетах. Каждый репликаÑет ÑвлÑетÑÑ *шардом*, и чем больше репликаÑетов имеетÑÑ Ð² клаÑтере, тем Ñффективнее Ð´Ð°Ð½Ð½Ð°Ñ Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ Ð¼Ð¾Ð¶ÐµÑ‚ разделить маÑÑив данных на отдельные наборы данных меньшего размера. При добавлении новых инÑтанÑов в клаÑтер и/или формировании новых репликаÑетов Picodata автоматичеÑки равномерно раÑпределит бакеты Ñ ÑƒÑ‡ÐµÑ‚Ð¾Ð¼ новой конфигурации. +[Шардирование](../general/glossary.md#sharding) — Ñто раÑпределение бакетов между различными репликаÑетами. Ð’ Picodata иÑпользуетÑÑ Ð¾Ñнованное на Ñ…Ñшах шардирование Ñ Ñ…Ñ€Ð°Ð½ÐµÐ½Ð¸ÐµÐ¼ данных в виртуальных бакетах. Каждый репликаÑет ÑвлÑетÑÑ *шардом*, и чем больше репликаÑетов имеетÑÑ Ð² клаÑтере, тем Ñффективнее Ð´Ð°Ð½Ð½Ð°Ñ Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ Ð¼Ð¾Ð¶ÐµÑ‚ разделить маÑÑив данных на отдельные наборы данных меньшего размера. При добавлении новых инÑтанÑов в клаÑтер и/или формировании новых репликаÑетов Picodata автоматичеÑки равномерно раÑпределит бакеты Ñ ÑƒÑ‡ÐµÑ‚Ð¾Ð¼ новой конфигурации. Пример автоматичеÑкого ÑˆÐ°Ñ€Ð´Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¿Ñ€Ð¸ добавлении в клаÑтер новых инÑтанÑов показан на Ñхеме ниже. - + Таким образом, каждый инÑÑ‚Ð°Ð½Ñ (ÑкземплÑÑ€ Picodata) ÑвлÑетÑÑ *чаÑтью репликаÑета*, а каждый репликаÑет — *шардом*, а шарды раÑпределены между неÑколькими Ñерверами. --- -[ИÑходный код Ñтраницы](https://git.picodata.io/picodata/picodata/docs/-/blob/main/docs/description.md) +[ИÑходный код Ñтраницы](https://git.picodata.io/picodata/picodata/docs/-/blob/main/docs/general/description.md) diff --git a/docs/feedback.md b/docs/general/feedback.md similarity index 93% rename from docs/feedback.md rename to docs/general/feedback.md index ca030c294177765d5a5edff9b2fb0878d28b26f7..5ef77924598fc8345ed2c9645ee99c039c806a83 100644 --- a/docs/feedback.md +++ b/docs/general/feedback.md @@ -10,6 +10,4 @@ Telegram-канале [@picodataru](https://t.me/picodataru){:target="_blank"}. --- -[ИÑходный код Ñтраницы](https://git.picodata.io/picodata/picodata/docs/-/blob/main/docs/feedback.md) - - +[ИÑходный код Ñтраницы](https://git.picodata.io/picodata/picodata/docs/-/blob/main/docs/general/feedback.md) diff --git a/docs/glossary.md b/docs/general/glossary.md similarity index 97% rename from docs/glossary.md rename to docs/general/glossary.md index b74328df39a0ba621a89ceac087502ad287df804..bb9e3519dcba69df5f42de83afad70395efb5b92 100644 --- a/docs/glossary.md +++ b/docs/general/glossary.md @@ -103,7 +103,7 @@ Picodata Ñодержит Ñледующие вÑтроенные ÑиÑтемн Схематичное предÑтавление клаÑтера, в ÑоÑтаве которого еÑть некоторое чиÑло инÑтанÑов, репликаÑетов и групп инÑтанÑов, показано ниже.<a name="cluster_group"></a> - + ### РепликаÑет (replicaset) {: #replicaset } **РепликаÑет** — буквально «набор реплик», ÑкземплÑров приложений, в которых хранитÑÑ Ð¾Ð´Ð¸Ð½ и тот же набор данных. Реплика в ÑоÑтаве репликаÑета может быть в одном из двух ÑоÑтоÑний: @@ -125,7 +125,7 @@ Picodata Ñодержит Ñледующие вÑтроенные ÑиÑтемн ÐšÐ¾Ð½Ñ†ÐµÐ¿Ñ†Ð¸Ñ Ð³Ñ€ÑƒÐ¿Ð¿ ÑвлÑетÑÑ Ð°Ð½Ð°Ð»Ð¾Ð³Ð¾Ð¼ [vshard_group](https://www.tarantool.io/ru/doc/latest/book/cartridge/cartridge_cli/commands/replicasets/#list-vshard-groups){:target="_blank"} из Cartridge, но дополнительно позволÑет назначать роли группам (в Cartridge роли наÑтраивалиÑÑŒ индивидуально Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ репликаÑета). -**Группа инÑтанÑов** ÑвлÑетÑÑ Ð±Ð¾Ð»ÐµÐµ крупным образованием, чем репликаÑет. См поÑÑнительную [картинку](glossary.md#cluster_group). +**Группа инÑтанÑов** ÑвлÑетÑÑ Ð±Ð¾Ð»ÐµÐµ крупным образованием, чем репликаÑет. См поÑÑнительную [картинку](#cluster_group). ÐšÐ°Ð¶Ð´Ð°Ñ ÑˆÐ°Ñ€Ð´Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð½Ð°Ñ Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ð° принадлежит одной конкретной инÑтанÑ-группе. Ðа инÑтанÑах из других групп таблица физичеÑки не ÑоздаетÑÑ. Ðо так как Ñхема данных ÑвлÑетÑÑ Ð¾Ð±Ñ‰ÐµÐ¹ на веÑÑŒ клаÑтер, Ñоздавать две таблицы Ñ Ð¾Ð´Ð¸Ð½Ð°ÐºÐ¾Ð²Ñ‹Ð¼ именем в разных группах не разрешаетÑÑ. ПринадлежноÑть инÑтанÑ-группе определÑетÑÑ Ñ‚Ð¾Ð»ÑŒÐºÐ¾ Ð´Ð»Ñ ÑˆÐ°Ñ€Ð´Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð½Ñ‹Ñ… таблиц, глобальные таблицы ÑоздаютÑÑ Ð¿Ð¾Ð²Ñюду. @@ -213,7 +213,7 @@ Picodata прилагает вÑе уÑилиÑ, чтобы Ñти ÑоÑÑ‚Ð¾Ñ **ФенÑинг** — Ñто подпиÑÑŒ вÑех запроÑов в клаÑтере номером Ñпохи или терма, и отказ обÑлуживать запроÑÑ‹ Ñ ÑƒÑтаревшей Ñпохой. Данный инÑтрумент иÑпользуетÑÑ Ð´Ð»Ñ ÐºÐ¾Ñ€Ñ€ÐµÐºÑ‚Ð½Ð¾Ð¹ работы раÑпределенной блокировки, Ñ‚.е. Ñитуации, когда из неÑкольких узлов нужно гарантированно выбрать один Ð´Ð»Ñ Ð²Ñ‹Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ð·Ð°Ð¿Ñ€Ð¾Ñа. ### CaS (compare and swap) {: #cas } -**Compare and swap** — оÑобый алгоритм в ÑоÑтаве Picodata. Он обеÑпечивает уровень изолÑции транзакций [serializable](glossary.md#isolation), тем Ñамым не допуÑÐºÐ°Ñ Ñлучаев неÑоглаÑованноÑти данных в результате Ð²Ñ‹Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ ÐºÐ¾Ð½ÐºÑƒÑ€Ð¸Ñ€ÑƒÑŽÑ‰Ð¸Ñ… запроÑов/транзакций. Таким Ñлучаем, например, может быть ÑитуациÑ, когда одна Ñ‚Ñ€Ð°Ð½Ð·Ð°ÐºÑ†Ð¸Ñ Ð·Ð°Ñ‚Ð¸Ñ€Ð°ÐµÑ‚ результат дейÑÑ‚Ð²Ð¸Ñ Ð´Ñ€ÑƒÐ³Ð¾Ð¹, выполнÑющейÑÑ Ð² тоже времÑ. _Compare and swap_ решает Ñту проблему Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ проверки предиката, Ñ‚.е. менÑет данные какого-либо параметра клаÑтера только в том Ñлучае, еÑли иÑходное ожидаемое значение Ñтого параметра ÑоответÑтвует иÑходному фактичеÑкому. +**Compare and swap** — оÑобый алгоритм в ÑоÑтаве Picodata. Он обеÑпечивает уровень изолÑции транзакций [serializable](#isolation), тем Ñамым не допуÑÐºÐ°Ñ Ñлучаев неÑоглаÑованноÑти данных в результате Ð²Ñ‹Ð¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ ÐºÐ¾Ð½ÐºÑƒÑ€Ð¸Ñ€ÑƒÑŽÑ‰Ð¸Ñ… запроÑов/транзакций. Таким Ñлучаем, например, может быть ÑитуациÑ, когда одна Ñ‚Ñ€Ð°Ð½Ð·Ð°ÐºÑ†Ð¸Ñ Ð·Ð°Ñ‚Ð¸Ñ€Ð°ÐµÑ‚ результат дейÑÑ‚Ð²Ð¸Ñ Ð´Ñ€ÑƒÐ³Ð¾Ð¹, выполнÑющейÑÑ Ð² тоже времÑ. _Compare and swap_ решает Ñту проблему Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ проверки предиката, Ñ‚.е. менÑет данные какого-либо параметра клаÑтера только в том Ñлучае, еÑли иÑходное ожидаемое значение Ñтого параметра ÑоответÑтвует иÑходному фактичеÑкому. ТехничеÑки данный алгоритм реализован в виде хранимой процедуры `proc_cas()`. ### БутÑтрап (bootstrap) {: #bootstrap } @@ -324,4 +324,4 @@ sharding_key: **ÐœÐ°Ñ‚ÐµÑ€Ð¸Ð°Ð»Ð¸Ð·Ð°Ñ†Ð¸Ñ Ð´Ð°Ð½Ð½Ñ‹Ñ…**. Один из Ñтапов иÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ñ€Ð°Ñпределенного SQL-запроÑа, при котором на отдельном узле промежуточные данные ÑохранÑÑŽÑ‚ÑÑ Ð² его памÑти. --- -[ИÑходный код Ñтраницы](https://git.picodata.io/picodata/picodata/docs/-/blob/main/docs/glossary.md) +[ИÑходный код Ñтраницы](https://git.picodata.io/picodata/picodata/docs/-/blob/main/docs/general/glossary.md) diff --git a/docs/sql/ebnf/ACL.svg b/docs/images/ebnf/ACL.svg similarity index 100% rename from docs/sql/ebnf/ACL.svg rename to docs/images/ebnf/ACL.svg diff --git a/docs/sql/ebnf/Column.svg b/docs/images/ebnf/Column.svg similarity index 100% rename from docs/sql/ebnf/Column.svg rename to docs/images/ebnf/Column.svg diff --git a/docs/sql/ebnf/CreateRole.svg b/docs/images/ebnf/CreateRole.svg similarity index 100% rename from docs/sql/ebnf/CreateRole.svg rename to docs/images/ebnf/CreateRole.svg diff --git a/docs/sql/ebnf/CreateTable.svg b/docs/images/ebnf/CreateTable.svg similarity index 100% rename from docs/sql/ebnf/CreateTable.svg rename to docs/images/ebnf/CreateTable.svg diff --git a/docs/sql/ebnf/CreateUser.svg b/docs/images/ebnf/CreateUser.svg similarity index 100% rename from docs/sql/ebnf/CreateUser.svg rename to docs/images/ebnf/CreateUser.svg diff --git a/docs/sql/ebnf/DDL.svg b/docs/images/ebnf/DDL.svg similarity index 100% rename from docs/sql/ebnf/DDL.svg rename to docs/images/ebnf/DDL.svg diff --git a/docs/sql/ebnf/DELETE.svg b/docs/images/ebnf/DELETE.svg similarity index 100% rename from docs/sql/ebnf/DELETE.svg rename to docs/images/ebnf/DELETE.svg diff --git a/docs/sql/ebnf/DML.svg b/docs/images/ebnf/DML.svg similarity index 100% rename from docs/sql/ebnf/DML.svg rename to docs/images/ebnf/DML.svg diff --git a/docs/sql/ebnf/DQL.svg b/docs/images/ebnf/DQL.svg similarity index 100% rename from docs/sql/ebnf/DQL.svg rename to docs/images/ebnf/DQL.svg diff --git a/docs/sql/ebnf/Distribution.svg b/docs/images/ebnf/Distribution.svg similarity index 100% rename from docs/sql/ebnf/Distribution.svg rename to docs/images/ebnf/Distribution.svg diff --git a/docs/sql/ebnf/DropRole.svg b/docs/images/ebnf/DropRole.svg similarity index 100% rename from docs/sql/ebnf/DropRole.svg rename to docs/images/ebnf/DropRole.svg diff --git a/docs/sql/ebnf/DropTable.svg b/docs/images/ebnf/DropTable.svg similarity index 100% rename from docs/sql/ebnf/DropTable.svg rename to docs/images/ebnf/DropTable.svg diff --git a/docs/sql/ebnf/DropUser.svg b/docs/images/ebnf/DropUser.svg similarity index 100% rename from docs/sql/ebnf/DropUser.svg rename to docs/images/ebnf/DropUser.svg diff --git a/docs/sql/ebnf/EXPLAIN.svg b/docs/images/ebnf/EXPLAIN.svg similarity index 100% rename from docs/sql/ebnf/EXPLAIN.svg rename to docs/images/ebnf/EXPLAIN.svg diff --git a/docs/sql/ebnf/INSERT.svg b/docs/images/ebnf/INSERT.svg similarity index 100% rename from docs/sql/ebnf/INSERT.svg rename to docs/images/ebnf/INSERT.svg diff --git a/docs/sql/ebnf/Options.svg b/docs/images/ebnf/Options.svg similarity index 100% rename from docs/sql/ebnf/Options.svg rename to docs/images/ebnf/Options.svg diff --git a/docs/sql/ebnf/PrimaryKey.svg b/docs/images/ebnf/PrimaryKey.svg similarity index 100% rename from docs/sql/ebnf/PrimaryKey.svg rename to docs/images/ebnf/PrimaryKey.svg diff --git a/docs/sql/ebnf/SELECT.svg b/docs/images/ebnf/SELECT.svg similarity index 100% rename from docs/sql/ebnf/SELECT.svg rename to docs/images/ebnf/SELECT.svg diff --git a/docs/sql/ebnf/STATEMENT.svg b/docs/images/ebnf/STATEMENT.svg similarity index 100% rename from docs/sql/ebnf/STATEMENT.svg rename to docs/images/ebnf/STATEMENT.svg diff --git a/docs/sql/ebnf/UPDATE.svg b/docs/images/ebnf/UPDATE.svg similarity index 100% rename from docs/sql/ebnf/UPDATE.svg rename to docs/images/ebnf/UPDATE.svg diff --git a/docs/sql/ebnf/VALUES.svg b/docs/images/ebnf/VALUES.svg similarity index 100% rename from docs/sql/ebnf/VALUES.svg rename to docs/images/ebnf/VALUES.svg diff --git a/docs/sql/ebnf/alias.svg b/docs/images/ebnf/alias.svg similarity index 100% rename from docs/sql/ebnf/alias.svg rename to docs/images/ebnf/alias.svg diff --git a/docs/sql/ebnf/expression.svg b/docs/images/ebnf/expression.svg similarity index 100% rename from docs/sql/ebnf/expression.svg rename to docs/images/ebnf/expression.svg diff --git a/docs/sql/ebnf/reference.svg b/docs/images/ebnf/reference.svg similarity index 100% rename from docs/sql/ebnf/reference.svg rename to docs/images/ebnf/reference.svg diff --git a/docs/sql/ebnf/row.svg b/docs/images/ebnf/row.svg similarity index 100% rename from docs/sql/ebnf/row.svg rename to docs/images/ebnf/row.svg diff --git a/docs/sql/ebnf/type.svg b/docs/images/ebnf/type.svg similarity index 100% rename from docs/sql/ebnf/type.svg rename to docs/images/ebnf/type.svg diff --git a/docs/sql/ebnf/value.svg b/docs/images/ebnf/value.svg similarity index 100% rename from docs/sql/ebnf/value.svg rename to docs/images/ebnf/value.svg diff --git a/docs/index.md b/docs/index.md index 070e0739be7a1122b131a1f727a8e8d5ffb30b17..8382ac1156391eb68a716bd4405838fb8a3a3de0 100644 --- a/docs/index.md +++ b/docs/index.md @@ -11,33 +11,33 @@ Picodata — Ñто раÑÐ¿Ñ€ÐµÐ´ÐµÐ»ÐµÐ½Ð½Ð°Ñ ÑиÑтема промышле ### Ознакомление Ñ ÐŸÐž Picodata {: #getting-started } -* [Общее опиÑание продукта](description) -* [ПреимущеÑтва иÑÐ¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Picodata](benefits) -* [ГлоÑÑарий](glossary) -* [ÐžÐ±Ñ€Ð°Ñ‚Ð½Ð°Ñ ÑвÑзь и получение помощи](feedback) +* [Общее опиÑание продукта](general/description) +* [ПреимущеÑтва иÑÐ¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Picodata](general/benefits) +* [ГлоÑÑарий](general/glossary) +* [ÐžÐ±Ñ€Ð°Ñ‚Ð½Ð°Ñ ÑвÑзь и получение помощи](general/feedback) ### ИнÑтрукции и руководÑтва {: #manuals-and-howtos } -* [УÑтановка Picodata](install) -* [ЗапуÑк клаÑтера](deploy_on_hosts) -* [Мониторинг клаÑтера](monitoring) -* [Подключение и работа в конÑоли](tutorial_first_steps) -* [Работа в веб-интерфейÑе](tutorial_webui) -* [ÐÐ²Ñ‚Ð¾Ñ€Ð¸Ð·Ð°Ñ†Ð¸Ñ Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ LDAP](auth_ldap) -* [Пользователи, привилегии и роли](tutorial_users) -* [Работа Ñ Ð´Ð°Ð½Ð½Ñ‹Ð¼Ð¸ SQL](tutorial_data) +* [УÑтановка Picodata](tutorials/install) +* [ЗапуÑк клаÑтера](tutorials/deploy_on_hosts) +* [Мониторинг клаÑтера](tutorials/monitoring) +* [Подключение и работа в конÑоли](tutorials/tutorial_first_steps) +* [Работа в веб-интерфейÑе](tutorials/tutorial_webui) +* [ÐÐ²Ñ‚Ð¾Ñ€Ð¸Ð·Ð°Ñ†Ð¸Ñ Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ LDAP](tutorials/auth_ldap) +* [Пользователи, привилегии и роли](tutorials/tutorial_users) +* [Работа Ñ Ð´Ð°Ð½Ð½Ñ‹Ð¼Ð¸ SQL](tutorials/tutorial_data) ### Справочные материалы {: #references } -* [Ðргументы командной Ñтроки](cli) -* [Типы данных SQL](sql/datatypes) -* [Команды SQL](sql/queries) -* [Публичный API](api) -* [СовмеÑтимоÑть Ñ ANSI SQL](sql/reference) +* [Ðргументы командной Ñтроки](references/cli) +* [Типы данных SQL](references/datatypes) +* [Команды SQL](references/queries) +* [Публичный API](references/api) +* [СовмеÑтимоÑть Ñ ANSI SQL](references/reference) ### Ðрхитектура {: #arch } -* [РаÑпределенный SQL](sql/broadcasted_sql.md) -* [Ðлгоритм discovery](discovery) -* [Raft и отказоуÑтойчивоÑть](raft_voters) -* [Жизненный цикл клаÑтера](clustering) +* [РаÑпределенный SQL](architecture/broadcasted_sql) +* [Ðлгоритм discovery](architecture/discovery) +* [Raft и отказоуÑтойчивоÑть](architecture/raft_voters) +* [Жизненный цикл клаÑтера](architecture/clustering) <!-- План на развитие Ñтруктуры документации: ### Ознакомление Ñ ÐŸÐž Picodata diff --git a/docs/picodata-list.sh b/docs/picodata-list.sh deleted file mode 100755 index 3469c1eb00706f32c75652c3d24c523ce1a1f5e9..0000000000000000000000000000000000000000 --- a/docs/picodata-list.sh +++ /dev/null @@ -1,15 +0,0 @@ -#!/bin/bash - -exec tarantoolctl connect ${1:-3301} << _SCRIPT_ -_G.fselect_max_width = 200 -local whoami = pico.whoami() -local raft_status = pico.raft_status() -return -{instance_id = whoami.instance_id}, -{raft_state = raft_status.raft_state}, -{voters = box.space._raft_state:get("voters").value}, -{learners = box.space._raft_state:get("learners").value}, -{instances = box.space._pico_instance:fselect()}, -{replicasets = box.space._pico_replicaset:fselect()} -_SCRIPT_ - diff --git a/docs/api.md b/docs/references/api.md similarity index 97% rename from docs/api.md rename to docs/references/api.md index 60329ec69bb18d5d1dad72416b30173b3c3f7c4b..2be83d1176e0b633e017f3495db05edffcfc183b 100644 --- a/docs/api.md +++ b/docs/references/api.md @@ -32,7 +32,7 @@ picodata> pico.help("help") | [pico.PICODATA_VERSION](#picopicodata_version) | ВерÑÐ¸Ñ Picodata. | [pico.abort_ddl](#picoabort_ddl) | Отмена ожидающей операции по изменению Ñхемы данных. | [pico.args](#picoargs) | Вывод аргументов запуÑка `picodata run`. -| [pico.cas()](#picocas) | Ð—Ð°Ð¿Ñ€Ð¾Ñ Ð½Ð° изменение параметров методом [Compare and Swap](glossary.md#as-compare-and-swap). +| [pico.cas()](#picocas) | Ð—Ð°Ð¿Ñ€Ð¾Ñ Ð½Ð° изменение параметров методом [Compare and Swap](../general/glossary.md#as-compare-and-swap). | [pico.change_password()](#picochange_password) | Изменение Ð¿Ð°Ñ€Ð¾Ð»Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ. | [pico.create_role()](#picocreate_role) | Создание роли. | [pico.create_table()](#picocreate_table) | Создание таблицы. @@ -44,20 +44,20 @@ picodata> pico.help("help") | [pico.expel()](#picoexpel) | [Контролируемый вывод](cli.md#expel) инÑтанÑа из клаÑтера. | [pico.grant_privilege()](#picogrant_privilege) | Ðазначение привилегии пользователю или роли. | [pico.help()](#picohelp) | ДоÑтуп к вÑтроенной Ñправочной ÑиÑтеме. -| [pico.instance_info()](#picoinstance_info) | Получение информации об инÑтанÑе (идентификаторы, уровни ([grade](glossary.md#grade)) и прочее). -| [pico.raft_compact_log()](#picoraft_compact_log) | [КомпактизациÑ](glossary.md#raft-raft-log-compaction) raft-журнала c удалением указанного чиÑла наиболее Ñтарых запиÑей. +| [pico.instance_info()](#picoinstance_info) | Получение информации об инÑтанÑе (идентификаторы, уровни ([grade](../general/glossary.md#grade)) и прочее). +| [pico.raft_compact_log()](#picoraft_compact_log) | [КомпактизациÑ](../general/glossary.md#raft-raft-log-compaction) raft-журнала c удалением указанного чиÑла наиболее Ñтарых запиÑей. | [pico.raft_get_index()](#picoraft_get_index) | Получение текущего примененного индекÑа raft-журнала. | [pico.raft_log()](#picoraft_log) | Чтение Ñодержимого raft-журнала. | [pico.raft_propose_nop()](#picoraft_propose_nop) | Добавление в raft-журнал запиÑÑŒ `Nop` (no operation). | [pico.raft_read_index()](#picoraft_read_index) | Кворумное чтение индекÑа raft-журнала. -| [pico.raft_status()](#picoraft_status) | Получение данных о текущем ÑоÑтоÑнии raft ([терм](glossary.md#term), [лидер](glossary.md#leader) и Ñ‚.д.). +| [pico.raft_status()](#picoraft_status) | Получение данных о текущем ÑоÑтоÑнии raft ([терм](../general/glossary.md#term), [лидер](../general/glossary.md#leader) и Ñ‚.д.). | [pico.raft_term()](#picoraft_term) | Получение номера терма (текущего или Ð´Ð»Ñ ÑƒÐºÐ°Ð·Ð°Ð½Ð½Ð¾Ð¹ запиÑи). | [pico.raft_timeout_now()](#picoraft_timeout_now) | Ðемедленное объÑвление новых выборов в raft-группе. | [pico.raft_wait_index()](#picoraft_wait_index) | Ожидание локального Ð¿Ñ€Ð¸Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ ÑƒÐºÐ°Ð·Ð°Ð½Ð½Ð¾Ð³Ð¾ raft-индекÑа. | [pico.revoke_privilege()](#picorevoke_privilege) | Удаление привилегии у Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð¸Ð»Ð¸ роли. | [pico.sql()](#picosql) | Выполнение клаÑтерных SQL-запроÑов. | [pico.wait_ddl_finalize()](#picowait_ddl_finalize) | Ожидание Ð¿Ñ€Ð¸Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ (финализации) DDL-операции. -| [pico.wait_vclock()](#picowait_vclock) | Ожидание момента, когда значение [Vclock](glossary.md#vclock-vector-clock) доÑтигнет целевого. +| [pico.wait_vclock()](#picowait_vclock) | Ожидание момента, когда значение [Vclock](../general/glossary.md#vclock-vector-clock) доÑтигнет целевого. | [pico.whoami()](#picowhoami) | Отображение данных о текущем инÑтанÑе. @@ -299,7 +299,7 @@ function create_table(opts) - `opts`: (_table_): - `name` (_string_) - - `format` (_table_ {_table_ TableField,...}), Ñм. [table TableField](#table-tablefield) + - `format` (_table_ {_table_ TableField,...}), Ñм. [table TableField](#tablefield_table) - `primary_key `(_table_ {_string_,...}) Ñ Ð¸Ð¼ÐµÐ½Ð°Ð¼Ð¸ полей - `id` (optional _number_), по умолчанию генерируетÑÑ Ð°Ð²Ñ‚Ð¾Ð¼Ð°Ñ‚Ð¸Ñ‡ÐµÑки - `distribution` (_string_), варианты: `'global'` | `'sharded'` @@ -310,7 +310,7 @@ function create_table(opts) - `sharding_fn` (optional _string_), поддерживаетÑÑ Ð¿Ð¾ÐºÐ° только Ñ„ÑƒÐ½ÐºÑ†Ð¸Ñ `murmur3` - `engine` (optional _string_), движок Ñ…Ñ€Ð°Ð½ÐµÐ½Ð¸Ñ Ð´Ð°Ð½Ð½Ñ‹Ñ… в БД; варианты: `'memtx'` | `'vinyl'`. По умолчанию иÑпользуетÑÑ - `'memtx'`. См [подробнее](glossary.md#db-engine). + `'memtx'`. См [подробнее](../general/glossary.md#db-engine). - `timeout` (optional _number_), чиÑло в Ñекундах. По умолчанию иÑпользуетÑÑ Ð±ÐµÑконечное значение. @@ -807,7 +807,7 @@ picodata> pico.raft_read_index(1) ### pico.raft_status Получает данные о текущем ÑоÑтоÑнии raft-узла -([терм](glossary.md#term), [лидер](glossary.md#leader) и Ñ‚.д.). Ð¤ÑƒÐ½ÐºÑ†Ð¸Ñ +([терм](../general/glossary.md#term), [лидер](../general/glossary.md#leader) и Ñ‚.д.). Ð¤ÑƒÐ½ÐºÑ†Ð¸Ñ Ð½Ðµ имеет передаваемых параметров. Возвращаемые полÑ: @@ -1068,7 +1068,7 @@ function wait_ddl_finalize(index, opts) ### pico.wait_vclock Ожидает момента, когда значение -[Vclock](glossary.md#vclock-vector-clock) в Tarantool доÑтигнет +[Vclock](../general/glossary.md#vclock-vector-clock) в Tarantool доÑтигнет целевого. ```lua @@ -1182,15 +1182,15 @@ Lua-таблица, опиÑÑ‹Ð²Ð°ÑŽÑ‰Ð°Ñ Ð¿Ð¾Ð»Ðµ в ÑоÑтаве табли ### table Vclock {: #vclock_table } Lua-таблица, Ð¾Ñ‚Ñ€Ð°Ð¶Ð°ÑŽÑ‰Ð°Ñ ÑоответÑтвие `id` инÑтанÑа его -[LSN-номеру](glossary.md#lsn-log-sequence-number). +[LSN-номеру](../general/glossary.md#lsn). Пример: ```lua {[0] = 2, [1] = 101} {[0] = 148, [1] = 9086, [3] = 2} ``` -См. подробнее опиÑание [Vclock](glossary.md#vclock-vector-clock). Ðулевое значение Vclock зарезервировано +См. подробнее опиÑание [Vclock](../general/glossary.md#vclock). Ðулевое значение Vclock зарезервировано Ð´Ð»Ñ Ð¾Ñ‚ÑÐ»ÐµÐ¶Ð¸Ð²Ð°Ð½Ð¸Ñ Ð»Ð¾ÐºÐ°Ð»ÑŒÐ½Ñ‹Ñ… изменений, которые не реплицируютÑÑ. --- -[ИÑходный код Ñтраницы](https://git.picodata.io/picodata/picodata/docs/-/blob/main/docs/api.md) +[ИÑходный код Ñтраницы](https://git.picodata.io/picodata/picodata/docs/-/blob/main/docs/references/api.md) diff --git a/docs/cli.md b/docs/references/cli.md similarity index 99% rename from docs/cli.md rename to docs/references/cli.md index dadc14c503d590ff30ad7ce0a91fbd1e4c06a70b..1bd3e419564a4e3b91881db2c57bb10dad46f8d5 100644 --- a/docs/cli.md +++ b/docs/references/cli.md @@ -247,7 +247,7 @@ picodata expel [Параметры] — Ñервер можно выключать. -Подробнее об уÑтройÑтве клаÑтера и репликаÑетов Picodata Ñм. в разделе [ЗапуÑк клаÑтера](../deploy_on_hosts). +Подробнее об уÑтройÑтве клаÑтера и репликаÑетов Picodata Ñм. в разделе [ЗапуÑк клаÑтера](../tutorials/deploy_on_hosts.md). --- -[ИÑходный код Ñтраницы](https://git.picodata.io/picodata/picodata/docs/-/blob/main/docs/cli.md) +[ИÑходный код Ñтраницы](https://git.picodata.io/picodata/picodata/docs/-/blob/main/docs/references/cli.md) diff --git a/docs/sql/datatypes.md b/docs/references/datatypes.md similarity index 94% rename from docs/sql/datatypes.md rename to docs/references/datatypes.md index 878d8bb81f0ecf971687f0e97339385b9523adb5..f3203c937a26cc72543e58c4d0cd6e17784dd403 100644 --- a/docs/sql/datatypes.md +++ b/docs/references/datatypes.md @@ -28,7 +28,7 @@ - `VARCHAR`. ТекÑтовый тип данных Ñ Ñвно заданной длиной Ñтроки. -См. также: [СовмеÑтимоÑть Ñ ANSI SQL](../reference) +См. также: [СовмеÑтимоÑть Ñ ANSI SQL](reference.md) --- -[ИÑходный код Ñтраницы](https://git.picodata.io/picodata/picodata/docs/-/blob/main/docs/sql/datatypes.md) +[ИÑходный код Ñтраницы](https://git.picodata.io/picodata/picodata/docs/-/blob/main/docs/references/datatypes.md) diff --git a/docs/sql/queries.md b/docs/references/queries.md similarity index 96% rename from docs/sql/queries.md rename to docs/references/queries.md index 7cc9cbc852af40d903104a71b0aaca8c94fb3eac..3f1b591e45d590fa2a5a5d100bb6c4fab49d8deb 100644 --- a/docs/sql/queries.md +++ b/docs/references/queries.md @@ -7,7 +7,7 @@ Picodata при работе Ñ Ñ€Ð°Ñпределенной СУБД. - Data Definition Language (`DDL`): команды Ð´Ð»Ñ [ÑозданиÑ](#create_table) и [удалениÑ](#drop_table) - [таблиц](../glossary.md#table); + [таблиц](../general/glossary.md#table); - Data Modification Language (`DML`): команды [`INSERT`](#insert) Ð´Ð»Ñ Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð´Ð°Ð½Ð½Ñ‹Ñ… в таблицы и [`DELETE`](#delete) Ð´Ð»Ñ ÑƒÐ´Ð°Ð»ÐµÐ½Ð¸Ñ Ð´Ð°Ð½Ð½Ñ‹Ñ…; - Data Query Language (`DQL`): команда [`SELECT`](#select) Ð´Ð»Ñ Ð¿Ð¾Ð»ÑƒÑ‡ÐµÐ½Ð¸Ñ @@ -16,27 +16,27 @@ Picodata при работе Ñ Ñ€Ð°Ñпределенной СУБД. - команда [`EXPLAIN`](#explain) Ð´Ð»Ñ Ð¾Ñ‚Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ Ð¿Ð»Ð°Ð½Ð¾Ð² запроÑов `DML` и `DQL`. -Схемы Ñтих функций на вернем уровне показаны ниже: +Схемы Ñтих функций на верхнем уровне показаны ниже: ### **STATEMENT** - + #### **DML** - + #### **DQL** - + #### **DDL** - + Ðиже приведены оÑобенноÑти ÑинтакÑиÑа команд и дано опиÑание чаÑто иÑпользуемых команд Ñ Ð¿Ñ€Ð¸Ð¼ÐµÑ€Ð°Ð¼Ð¸ их выполнениÑ. ## Ðачало работы {: #getting-started } Ð”Ð»Ñ Ð²Ð²Ð¾Ð´Ð° команд SQL требуетÑÑ Ð¸Ð½Ñ‚ÐµÑ€Ð°ÐºÑ‚Ð¸Ð²Ð½Ð°Ñ ÐºÐ¾Ð½Ñоль Picodata. Она -доÑтупна поÑле [запуÑка](../cli.md#run-command) инÑтанÑа Ñ ÐºÐ»ÑŽÑ‡Ð¾Ð¼ `-i` -или Ñвного [подключениÑ](../cli.md#connect-command) к нему из отдельного +доÑтупна поÑле [запуÑка](../references/cli.md#run-command) инÑтанÑа Ñ ÐºÐ»ÑŽÑ‡Ð¾Ð¼ `-i` +или Ñвного [подключениÑ](../references/cli.md#connect-command) к нему из отдельного терминала. ### ДоÑтупные Ñзыки конÑоли {: #available_langs } @@ -94,19 +94,19 @@ pico.sql([[select * from "characters"]], {}) Ðиже показаны Ñхемы Ð´Ð»Ñ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ð¸ ÑƒÐ´Ð°Ð»ÐµÐ½Ð¸Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»ÐµÐ¹ и ролей. ### **Access control lists** {: #ACL } - + ### **Create user** {: #CreateUser } - + ### **Drop user** {: #DropUser } - + ### **Create role** {: #CreateRole } - + ### **Drop role** {: #DropRole } - + Пример команды Ð´Ð»Ñ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ: @@ -119,23 +119,23 @@ create user andy with password 'P@ssw0rd' using md5 option (timeout = 3.0) ```sql drop user andy ``` -См. [подробнее](../tutorial_users.md) об управлении пользователÑми. +См. [подробнее](../tutorials/tutorial_users.md) об управлении пользователÑми. ## Создание таблицы {: #create_table } Схема запроÑа Ð´Ð»Ñ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ ÑˆÐ°Ñ€Ð´Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð½Ð¾Ð¹ таблицы показана ниже. ### **CreateTable** - + #### **Column** - + #### **PrimaryKey** - + #### **Distribution** - + Ð”Ð»Ñ Ð¿Ñ€Ð¸Ð¼ÐµÑ€Ð° в Ñтом разделе будем иÑпользовать две теÑтовых таблицы Ð´Ð»Ñ ÑƒÑ‡ÐµÑ‚Ð° перÑонажей из "ИÑтории игрушек": @@ -155,7 +155,7 @@ drop user andy - _шардированными_, Ñ‚.е. раÑпределенные по шардам клаÑтера. Ð”Ð»Ñ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ ÑˆÐ°Ñ€Ð´Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð½Ð¾Ð¹ таблицы Ñледует иÑпользовать параметр `distributed by ()`, указав в Ñкобках название колонки, по которой Ñ‚Ð°ÐºÐ°Ñ Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ð° будет - раÑпределена. См. [подробнее](../glossary.md#table). + раÑпределена. См. [подробнее](../general/glossary.md#table). Ð”Ð»Ñ Ð´ÐµÐ¼Ð¾Ð½Ñтрации работы раÑпределенного SQL будем Ñоздавать шардированные таблицы. Создадим первую таблицу Ñледующей командой: @@ -175,7 +175,7 @@ option (timeout = 3.0) ; При Ñоздании таблицы также можно выбрать один из доÑтупных движков Ñ…Ñ€Ð°Ð½ÐµÐ½Ð¸Ñ Ð´Ð°Ð½Ð½Ñ‹Ñ…: - - `memtx` — [движок Ñ…Ñ€Ð°Ð½ÐµÐ½Ð¸Ñ Ð´Ð°Ð½Ð½Ñ‹Ñ…](../glossary.md#db-engine) в ОЗУ (in-memory); + - `memtx` — [движок Ñ…Ñ€Ð°Ð½ÐµÐ½Ð¸Ñ Ð´Ð°Ð½Ð½Ñ‹Ñ…](../general/glossary.md#db-engine) в ОЗУ (in-memory); - `vinyl` — диÑковый движок Ñ…Ñ€Ð°Ð½ÐµÐ½Ð¸Ñ Ð´Ð°Ð½Ð½Ñ‹Ñ…, иÑпользующий LSM-Ð´ÐµÑ€ÐµÐ²ÑŒÑ (Log Structured Merge Tree). @@ -184,7 +184,7 @@ option (timeout = 3.0) ; Cхема запроÑа Ð´Ð»Ñ ÑƒÐ´Ð°Ð»ÐµÐ½Ð¸Ñ Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ‹ показана ниже: ### **DropTable** - + Пример ÑƒÐ´Ð°Ð»ÐµÐ½Ð¸Ñ Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ‹: @@ -207,7 +207,7 @@ drop table "characters" ; Cхема возможных раÑпределенных запроÑов `SELECT` показана ниже. ### **SELECT** - + ### Примеры запроÑов {: #select-examples } @@ -313,25 +313,25 @@ pico.sql([[select "name","year" from "characters" where "id" > ? and "year" > ? ### **values** - + ### **row** - + ### **alias** - + ### **expression** - + ### **reference** - + ### **value** - + ### **type** - + ## ИÑпользование агрегатных функций {: #aggregate } ПоддерживаютÑÑ Ñледующие агрегатные функции Ð´Ð»Ñ Ñ€Ð°Ð±Ð¾Ñ‚Ñ‹ Ñ ÐºÐ¾Ð»Ð¾Ð½ÐºÐ°Ð¼Ð¸: @@ -671,7 +671,7 @@ select cast("score" as int) from "scoring" ; локальных запроÑов. #### **Options** - + ### Пример иÑÐ¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ {: #tuple-limit-example } @@ -726,7 +726,7 @@ select * from "characters" option(sql_vdbe_max_steps = 55, vtable_max_rows = 10) Схема возможных запроÑов `INSERT` показана ниже. - + ### Примеры запроÑов {: #insert-examples } ЗапиÑÑŒ Ñтроки данных в таблицу командой `INSERT` возможна как в обычном @@ -756,7 +756,7 @@ insert into "assets" values (1, 'Woody', 2561) ; фикÑированной запÑтой (например, `values(2.5)` в `decimal 2.5`). Ð’ параметризированном виде дробнному чиÑлу будет назначен типа Ñ Ð¿Ð»Ð°Ð²Ð°ÑŽÑ‰ÐµÐ¹ запÑтой (например, `values(?), {2.5}` в `double 2.5`). См. -[подробнее](../datatypes) о типах данных. +[подробнее](datatypes) о типах данных. При иÑпользовании `INSERT` вмеÑте Ñ Ð¿Ð¾Ð´Ð·Ð°Ð¿Ñ€Ð¾Ñом (`SELECT`) проиÑходит кеширование подзапроÑа, поÑтому его тоже имеет ÑмыÑл параметризировать, @@ -859,7 +859,7 @@ replace`, команда `UPDATE` подойдет Ð´Ð»Ñ Ð²Ñ‹Ð±Ð¾Ñ€Ð¾Ñ‡Ð½Ð¾Ð¹ Схема возможных запроÑов `UPDATE` показана ниже. - + При иÑпользовании `UPDATE` Ñледует учитывать Ñледующие ограничениÑ: @@ -906,7 +906,7 @@ pico.sql([[update "characters" set "name" = "item" from (select "id" as i, "name Команда `DELETE` иÑпользуетÑÑ Ð´Ð»Ñ ÑƒÐ´Ð°Ð»ÐµÐ½Ð¸Ñ Ð´Ð°Ð½Ð½Ñ‹Ñ… из таблицы. ### **DELETE** - + ### Примеры запроÑов {: #delete-examples } ПроÑтой Ð·Ð°Ð¿Ñ€Ð¾Ñ ÑƒÐ´Ð°Ð»Ñет вÑе данные из указанной таблицы: @@ -947,7 +947,7 @@ nothing`. Схема иÑÐ¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ `EXPLAIN` показана ниже. ### **EXPLAIN** - + ### ПроÑтые запроÑÑ‹ {: #basic-explain } @@ -1092,7 +1092,7 @@ explain insert into "assets" values (1, 'Woody', 2561) ; **Ð›Ð¾ÐºÐ°Ð»ÑŒÐ½Ð°Ñ Ð¼Ð°Ñ‚ÐµÑ€Ð¸Ð°Ð»Ð¸Ð·Ð°Ñ†Ð¸Ñ** отноÑитÑÑ Ðº тем ÑлучаÑм, когда требуетÑÑ Ð¿Ð¾Ð»Ð¾Ð¶Ð¸Ñ‚ÑŒ в памÑть прочитанные данные из локального запроÑа Ð´Ð»Ñ Ð¸Ñ… дальнейшей обработки. ÐŸÐµÑ€ÐµÐ¼ÐµÑ‰ÐµÐ½Ð¸Ñ Ð´Ð°Ð½Ð½Ñ‹Ñ… нет и вычиÑление `bucket_id` не -требуетÑÑ (Ñм. [подробнее](broadcasted_sql.md#data-distribution)). +требуетÑÑ (Ñм. [подробнее](../architecture/broadcasted_sql.md#data-distribution)). Примером может Ñлужить удаление данных из таблицы: ```sql @@ -1271,8 +1271,8 @@ explain select count("id") from "characters" ; ... ``` -Читать далее: [Типы данных SQL](../datatypes) +Читать далее: [Типы данных SQL](datatypes.md) <!-- ebnf source: https://git.picodata.io/picodata/picodata/sbroad/-/blob/main/doc/sql/query.ebnf --> --- -[ИÑходный код Ñтраницы](https://git.picodata.io/picodata/picodata/docs/-/blob/main/docs/sql/queries.md) +[ИÑходный код Ñтраницы](https://git.picodata.io/picodata/picodata/docs/-/blob/main/docs/references/queries.md) diff --git a/docs/sql/reference.md b/docs/references/reference.md similarity index 99% rename from docs/sql/reference.md rename to docs/references/reference.md index 53530ff4c1dc14ef876403be93bb9f16e7505625..a14564bb4200e728fb668ba917ad33c80a7cfd61 100644 --- a/docs/sql/reference.md +++ b/docs/references/reference.md @@ -96,7 +96,7 @@ Picodata SQL требованиÑм Ñтандарта SQL:2016, а именно ### E071-03. Табличный оператор EXCEPT DISTINCT ### F041-03. LEFT OUTER JOIN. -См. также: [Пример работы Ñ SQL Broadcaster в Picodata](../tutorial). +См. также: [Пример работы Ñ SQL Broadcaster в Picodata](../tutorial.md). --- [ИÑходный код Ñтраницы](https://git.picodata.io/picodata/picodata/docs/-/blob/main/docs/sql/reference.md) diff --git a/docs/auth_ldap.md b/docs/tutorials/auth_ldap.md similarity index 98% rename from docs/auth_ldap.md rename to docs/tutorials/auth_ldap.md index 9e9ee0e24c2dfc3a00068ebc9eff7ab946e3fe90..b23913c71c14e4f50fdf8bbb82de35c07b6f73e2 100644 --- a/docs/auth_ldap.md +++ b/docs/tutorials/auth_ldap.md @@ -70,7 +70,7 @@ pico.change_password('username', '', {auth_type = 'ldap'}) полученный пароль при взаимодейÑтвии Ñ Ñервером LDAP. Подробнее о работе Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñми и привилегиÑми и Ñм. разделе -[Публичный API Picodata](../api). +[Публичный API Picodata](../references/api.md). ### ÐаÑтройка клаÑтера Picodata {: #cluster-setup } @@ -108,5 +108,4 @@ pico.change_password('username', 'new_password', { auth_type = 'chap-sha1' }) ``` --- -[ИÑходный код Ñтраницы](https://git.picodata.io/picodata/picodata/docs/-/blob/main/docs/auth_ldap.md) - +[ИÑходный код Ñтраницы](https://git.picodata.io/picodata/picodata/docs/-/blob/main/docs/tutorials/auth_ldap.md) diff --git a/docs/deploy_on_hosts.md b/docs/tutorials/deploy_on_hosts.md similarity index 97% rename from docs/deploy_on_hosts.md rename to docs/tutorials/deploy_on_hosts.md index 40418be192e981c0eef40a949075d38f4418eb5e..0b9444bb49937ab899e7f93efefad58a1253a207 100644 --- a/docs/deploy_on_hosts.md +++ b/docs/tutorials/deploy_on_hosts.md @@ -10,8 +10,8 @@ ЗапуÑк клаÑтера ÑводитÑÑ Ðº выполнению команды `picodata run` Ñ Ð½ÑƒÐ¶Ð½Ñ‹Ð¼ набором параметров Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ инÑтанÑа (узла). Полный перечень возможных параметров запуÑка и их опиÑание ÑодержатÑÑ Ð² разделе -[Ðргументы командной Ñтроки Picodata](../cli), а также в выводе команды -`picodata run --help`. С точки Ð·Ñ€ÐµÐ½Ð¸Ñ Ð²Ð½ÑƒÑ‚Ñ€ÐµÐ½Ð½ÐµÐ¹ архитектуры, [_клаÑтер_](glossary.md#cluster) +[Ðргументы командной Ñтроки Picodata](../../references/cli), а также в выводе команды +`picodata run --help`. С точки Ð·Ñ€ÐµÐ½Ð¸Ñ Ð²Ð½ÑƒÑ‚Ñ€ÐµÐ½Ð½ÐµÐ¹ архитектуры, [_клаÑтер_](../general/glossary.md#cluster) корректно называть _raft-группой_ — в дальнейшем при мониторинге и управлении конфигурацией будет умеÑтнее иÑпользовать именно Ñтот термин. @@ -45,7 +45,7 @@ picodata run --data-dir i3 --listen :3303 предоÑтавлÑет доÑтуп к управлению им в конÑоли. Ð”Ð»Ñ Ð¿Ð¾Ð´ÐºÐ»ÑŽÑ‡ÐµÐ½Ð¸Ñ Ðº интерактивной конÑоли Ñледует либо запуÑкать инÑÑ‚Ð°Ð½Ñ Ñ ÐºÐ»ÑŽÑ‡Ð¾Ð¼ `-i` (`picodata run -i`), либо отдельно подключатьÑÑ Ðº инÑтанÑу командой -`picodata connect` (Ñм. [подробнее](cli.md#connect-command)). +`picodata connect` (Ñм. [подробнее](../references/cli.md#connect-command)). ## КлаÑтер на неÑкольких Ñерверах {: #distributed-cluster } @@ -240,7 +240,7 @@ pico.expel("i3") Будет удален инÑÑ‚Ð°Ð½Ñ `i3`. Сам инÑÑ‚Ð°Ð½Ñ `i3` будет завершен. ЕÑли вы находитеÑÑŒ в конÑоли удалÑемого инÑтанÑа — процеÑÑ Ð·Ð°Ð²ÐµÑ€ÑˆÐ¸Ñ‚ÑÑ, конÑоль будет закрыта. -См. [отдельный подраздел](../raft_voters) Ñ Ð¾Ð¿Ð¸Ñанием работы алгоритма Raft Ð´Ð»Ñ Ð¾Ð±ÐµÑÐ¿ÐµÑ‡ÐµÐ½Ð¸Ñ Ð¾Ñ‚ÐºÐ°Ð·Ð¾ÑƒÑтойчивоÑти клаÑтера. +См. [отдельный подраздел](../../architecture/raft_voters) Ñ Ð¾Ð¿Ð¸Ñанием работы алгоритма Raft Ð´Ð»Ñ Ð¾Ð±ÐµÑÐ¿ÐµÑ‡ÐµÐ½Ð¸Ñ Ð¾Ñ‚ÐºÐ°Ð·Ð¾ÑƒÑтойчивоÑти клаÑтера. --- -[ИÑходный код Ñтраницы](https://git.picodata.io/picodata/picodata/docs/-/blob/main/docs/deploy_on_hosts.md) +[ИÑходный код Ñтраницы](https://git.picodata.io/picodata/picodata/docs/-/blob/main/docs/tutorials/deploy_on_hosts.md) diff --git a/docs/install.md b/docs/tutorials/install.md similarity index 99% rename from docs/install.md rename to docs/tutorials/install.md index fc028418d4ba3b641c30bf5def759d022a7f4e74..50dffaa1764bc108791e11a1a437404da8178b47 100644 --- a/docs/install.md +++ b/docs/tutorials/install.md @@ -214,8 +214,7 @@ picodata run --listen 0.0.0.0:3301 --advertise 192.168.0.1:3301 --> Подробнее о запуÑке Picodata и работе Ñ ÐºÐ»Ð°Ñтером Ñм. в разделе [ЗапуÑк клаÑтера](../deploy_on_hosts). Параметры запуÑка из командной -Ñтроки опиÑаны в разделе [Ðргументы командной Ñтроки Picodata](../cli). +Ñтроки опиÑаны в разделе [Ðргументы командной Ñтроки Picodata](../../references/cli). --- -[ИÑходный код Ñтраницы](https://git.picodata.io/picodata/picodata/docs/-/blob/main/docs/install.md) - +[ИÑходный код Ñтраницы](https://git.picodata.io/picodata/picodata/docs/-/blob/main/docs/tutorials/install.md) diff --git a/docs/monitoring.md b/docs/tutorials/monitoring.md similarity index 93% rename from docs/monitoring.md rename to docs/tutorials/monitoring.md index ff5c663b1cf0b73d107a529631bda1871a9b4a9d..6663427bd5da7293611bbd8890a714a8fb7c013b 100644 --- a/docs/monitoring.md +++ b/docs/tutorials/monitoring.md @@ -64,11 +64,11 @@ box.space._pico_replicaset:fselect() ... ``` -Таблицы выше позволÑÑŽÑ‚ узнать текущий и целевой уровень ([grade](glossary.md#грейд-grade)) +Таблицы выше позволÑÑŽÑ‚ узнать текущий и целевой уровень ([grade](../general/glossary.md#грейд-grade)) каждого инÑтанÑа, а также Ð²ÐµÑ (`weight`) репликаÑета. Уровни отражают конфигурацию оÑтальных инÑтанÑов отноÑительно текущего, а Ð²ÐµÑ Ñ€ÐµÐ¿Ð»Ð¸ÐºÐ°Ñета — его наполненноÑть репликами ÑоглаÑно фактору репликации -(Ñм. [подробнее](../clustering)). Ð’ÐµÑ Ñ€ÐµÐ¿Ð»Ð¸ÐºÐ°Ñета определÑет его +(Ñм. [подробнее](../architecture/clustering)). Ð’ÐµÑ Ñ€ÐµÐ¿Ð»Ð¸ÐºÐ°Ñета определÑет его приоритет при раÑпределении бакетов Ñ Ð´Ð°Ð½Ð½Ñ‹Ð¼Ð¸. ## Получение верÑии Ñхемы данных {: #getting-data-schema } @@ -84,8 +84,7 @@ box.space._pico_property:get("current_schema_version") увеличению Ñтого номера. Подробнее о работе Ñ Ð´Ð°Ð½Ð½Ñ‹Ð¼Ð¸ в Picodata Ñм. в разделе -[Работа Ñ Ð´Ð°Ð½Ð½Ñ‹Ð¼Ð¸](../tutorial_data). +[Работа Ñ Ð´Ð°Ð½Ð½Ñ‹Ð¼Ð¸ SQL](../tutorial_data). --- -[ИÑходный код Ñтраницы](https://git.picodata.io/picodata/picodata/docs/-/blob/main/docs/monitoring.md) - +[ИÑходный код Ñтраницы](https://git.picodata.io/picodata/picodata/docs/-/blob/main/docs/tutorials/monitoring.md) diff --git a/docs/tutorial_data.md b/docs/tutorials/tutorial_data.md similarity index 82% rename from docs/tutorial_data.md rename to docs/tutorials/tutorial_data.md index 2d6d028d190355645ac7e5576504a6108ca07b09..ff3f9c56653914532d8d558c0541c0c4dcd1c6c5 100644 --- a/docs/tutorial_data.md +++ b/docs/tutorials/tutorial_data.md @@ -1,6 +1,6 @@ # Работа Ñ Ð´Ð°Ð½Ð½Ñ‹Ð¼Ð¸ SQL Ð’ данном разделе приведены примеры команд Ð´Ð»Ñ Ñ€Ð°Ð±Ð¾Ñ‚Ñ‹ Ñ Ð´Ð°Ð½Ð½Ñ‹Ð¼Ð¸ в -Picodata Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ Ñзыка [SQL-запроÑов](sql/queries.md). +Picodata Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ Ñзыка [SQL-запроÑов](../references/queries.md). ## Создание таблицы {: #creating-table } @@ -8,12 +8,12 @@ Picodata Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ Ñзыка [SQL-запроÑов](sql/queries.md). [подключитьÑÑ](tutorial_first_steps.md#accessing-console) к интерактивной конÑоли инÑтанÑа. Ð”Ð»Ñ Ð²Ð²Ð¾Ð´Ð° команд можно иÑпользовать как формат Lua, так и Ñзык SQL напрÑмую, в завиÑимоÑти от -[выбранного](sql/queries.md#available_langs) Ñзыка конÑоли. Ð’ примерах +[выбранного](../references/queries.md#available_langs) Ñзыка конÑоли. Ð’ примерах ниже иÑпользован формат Lua. ПользователÑм доÑтупны функции Ð´Ð»Ñ Ñ€Ð°Ð±Ð¾Ñ‚Ñ‹ как Ñ Ð³Ð»Ð¾Ð±Ð°Ð»ÑŒÐ½Ñ‹Ð¼Ð¸, так и шардированными таблицами (в поÑледнем Ñлучае реализованы возможноÑти -[раÑпределенного SQL](sql/broadcasted_sql.md)). +[раÑпределенного SQL](../architecture/broadcasted_sql.md)). Ð”Ð»Ñ Ð¿Ñ€Ð¸Ð¼ÐµÑ€Ð° Ñоздадим шаблон ÑпиÑка друзей Свинки Пеппы, котором будет два полÑ: идентификатор запиÑи и Ð¸Ð¼Ñ Ð´Ñ€ÑƒÐ³Ð°: @@ -32,7 +32,7 @@ pico.sql([[ Помимо двух колонок, в примере указаны: - первичный ключ таблицы (колонка `"id"`); -- [движок Ñ…Ñ€Ð°Ð½ÐµÐ½Ð¸Ñ Ð´Ð°Ð½Ð½Ñ‹Ñ…](glossary.md#db-engine) in-memory (`memtx`); +- [движок Ñ…Ñ€Ð°Ð½ÐµÐ½Ð¸Ñ Ð´Ð°Ð½Ð½Ñ‹Ñ…](../general/glossary.md#db-engine) in-memory (`memtx`); - тип таблицы (шардированный, `distributed by`); - ключ ÑˆÐ°Ñ€Ð´Ð¸Ñ€Ð¾Ð²Ð°Ð½Ð¸Ñ Ñ‚Ð°Ð±Ð»Ð¸Ñ†Ñ‹ (колонка `"id"`); - таймаут перед возвращением ÑƒÐ¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»ÑŽ. @@ -51,8 +51,8 @@ pico.sql([[ ]]) ``` -Подробнее о типах таблиц Ñм. в [глоÑÑарии](../glossary.md#table). -ОпиÑание команд SQL приведено в разделе [Команды SQL](sql/queries.md). +Подробнее о типах таблиц Ñм. в [глоÑÑарии](../general/glossary.md#table). +ОпиÑание команд SQL приведено в разделе [Команды SQL](../references/queries.md). ## ЗапиÑÑŒ данных в таблицу {: #writing-to-table } ЗапиÑÑŒ данных, Ñ‚.е. вÑтавка Ñтрок, в таблицу проиÑходит Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ @@ -74,7 +74,7 @@ pico.sql( [[insert into "friends_of_peppa" ("id", "name") values (1, "Suzy")]],{} ) ``` -См. [подробнее](sql/queries.md#insert) о различиÑÑ… в `INSERT`-запроÑах. +См. [подробнее](../references/queries.md#insert) о различиÑÑ… в `INSERT`-запроÑах. ## Чтение данных из таблицы {: #reading-from-table } Ð”Ð»Ñ Ñ‡Ñ‚ÐµÐ½Ð¸Ñ Ð²Ñех данных из таблицы подойдёт команда: @@ -89,7 +89,7 @@ pico.sql([[select * from "friends_of_peppa"]], {}) pico.sql([[select * from "friends_of_peppa" where "id" = 1]], {}) ``` -См. [подробнее](sql/queries.md#select) о вариантах Ñ‡Ñ‚ÐµÐ½Ð¸Ñ Ð´Ð°Ð½Ð½Ñ‹Ñ… в SQL. +См. [подробнее](../references/queries.md#select) о вариантах Ñ‡Ñ‚ÐµÐ½Ð¸Ñ Ð´Ð°Ð½Ð½Ñ‹Ñ… в SQL. ## Удаление данных {: #deleting-from-table } @@ -103,10 +103,9 @@ picodata> pico.sql([[delete from "friends_of_peppa" where "id" = 1]], {}) Приведенный выше пример поможет Ñделать первые шаги в работе Ñ Ð´Ð°Ð½Ð½Ñ‹Ð¼Ð¸ в Picodata. Подробнее о внутренней архитектуре клаÑтера Picodata Ñм. в разделе -[Жизненный цикл клаÑтера](../clustering). +[Жизненный цикл клаÑтера](../architecture/clustering.md). -Параметры запуÑка из командной Ñтроки опиÑаны в разделе [Ðргументы командной Ñтроки Picodata](../cli). +Параметры запуÑка из командной Ñтроки опиÑаны в разделе [Ðргументы командной Ñтроки Picodata](../references/cli.md). --- -[ИÑходный код Ñтраницы](https://git.picodata.io/picodata/picodata/docs/-/blob/main/docs/tutorial_data.md) - +[ИÑходный код Ñтраницы](https://git.picodata.io/picodata/picodata/docs/-/blob/main/docs/tutorials/tutorial_data.md) diff --git a/docs/tutorial_first_steps.md b/docs/tutorials/tutorial_first_steps.md similarity index 87% rename from docs/tutorial_first_steps.md rename to docs/tutorials/tutorial_first_steps.md index 47298456f24b417adcac7bc7e8f864a389557377..0d38e00ca1837fd9a2470f8480120a0831b2f729 100644 --- a/docs/tutorial_first_steps.md +++ b/docs/tutorials/tutorial_first_steps.md @@ -22,7 +22,7 @@ ``` picodata connect localhost:3301 ``` -По умолчанию, [подключение](cli.md#connect-command) производитÑÑ Ð¿Ð¾Ð´ +По умолчанию, [подключение](../references/cli.md#connect-command) производитÑÑ Ð¿Ð¾Ð´ пользователем `guest` без паролÑ. У такого Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð¸Ð¼ÐµÐµÑ‚ÑÑ ÐµÐ´Ð¸Ð½ÑÑ‚Ð²ÐµÐ½Ð½Ð°Ñ Ð¿Ñ€Ð¸Ð²Ð¸Ð»ÐµÐ³Ð¸Ñ [`SESSION`](tutorial_users.md#available-privileges). @@ -58,16 +58,16 @@ picodata connect --unix /tmp/file.socket ``` ## Рабочие файлы инÑтанÑа -Ð’ [директории Ñ Ð´Ð°Ð½Ð½Ñ‹Ð¼Ð¸ инÑтанÑа](cli.md#data-dir) автоматичеÑки поÑвлÑÑŽÑ‚ÑÑ Ñледующие файлы: +Ð’ [директории Ñ Ð´Ð°Ð½Ð½Ñ‹Ð¼Ð¸ инÑтанÑа](../references/cli.md#data-dir) автоматичеÑки поÑвлÑÑŽÑ‚ÑÑ Ñледующие файлы: -- `*.snap` — файлы [Ñнапшотов](glossary.md#snapshot) БД +- `*.snap` — файлы [Ñнапшотов](../general/glossary.md#snapshot) БД - `*.xlog` — файлы журнала упреждающей запиÑи (Write-ahead log, WAL) c инкрементными изменениÑми БД - `*.vylog` — также файлы Ñ Ð¸Ð½ÐºÑ€ÐµÐ¼ÐµÐ½Ñ‚Ð½Ñ‹Ð¼Ð¸ изменениÑми БД, но Ð´Ð»Ñ Ñ‚Ð°Ð±Ð»Ð¸Ñ†, - иÑпользующих движок Ñ…Ñ€Ð°Ð½ÐµÐ½Ð¸Ñ [`vinyl`](glossary.md#db-engine). + иÑпользующих движок Ñ…Ñ€Ð°Ð½ÐµÐ½Ð¸Ñ [`vinyl`](../general/glossary.md#db-engine). При перезапуÑке инÑтанÑа Ñти файлы необходимы Ð´Ð»Ñ Ð²Ð¾ÑÑÑ‚Ð°Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ ÐµÐ³Ð¾ -ÑоÑтоÑниÑ, обеÑÐ¿ÐµÑ‡Ð¸Ð²Ð°Ñ [перÑиÑтентное](glossary.md#persistence) хранение +ÑоÑтоÑниÑ, обеÑÐ¿ÐµÑ‡Ð¸Ð²Ð°Ñ [перÑиÑтентное](../general/glossary.md#persistence) хранение данных. Файлы Ñнапшотов (`*.snap`) и журнала WAL (`*.xlog`/`*.vylog`) не @@ -77,9 +77,8 @@ picodata connect --unix /tmp/file.socket данных нужен будет и поÑледний Ñнапшот, и один или неÑколько файлов журнала. -Параметры запуÑка из командной Ñтроки опиÑаны в разделе [Ðргументы командной Ñтроки Picodata](../cli). +Параметры запуÑка из командной Ñтроки опиÑаны в разделе [Ðргументы командной Ñтроки Picodata](../references/cli.md). --- -[ИÑходный код Ñтраницы](https://git.picodata.io/picodata/picodata/docs/-/blob/main/docs/tutorial_first_steps.md) - +[ИÑходный код Ñтраницы](https://git.picodata.io/picodata/picodata/docs/-/blob/main/docs/tutorials/tutorial_first_steps.md) diff --git a/docs/tutorial_users.md b/docs/tutorials/tutorial_users.md similarity index 86% rename from docs/tutorial_users.md rename to docs/tutorials/tutorial_users.md index 3774d6eb35183bfbfcc5fbe58cd155591572a6b8..48909313c437749244b8f34e2900d410b2936014 100644 --- a/docs/tutorial_users.md +++ b/docs/tutorials/tutorial_users.md @@ -1,38 +1,37 @@ # Пользователи, привилегии и роли -Ð’ данном разделе опиÑаны [SQL-команды](sql/queries.md) Ð´Ð»Ñ ÑƒÐ¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ +Ð’ данном разделе опиÑаны [SQL-команды](../references/queries.md) Ð´Ð»Ñ ÑƒÐ¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð´Ð¾Ñтупом Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ ролевой модели в Picodata. ## Ð Ð¾Ð»ÐµÐ²Ð°Ñ Ð¼Ð¾Ð´ÐµÐ»ÑŒ {: #role-model } Ð Ð¾Ð»ÐµÐ²Ð°Ñ Ð¼Ð¾Ð´ÐµÐ»ÑŒ Picodata позволÑет гибко разграничивать возможноÑти пользователей раÑпределенной ÑиÑтемы. Разграничение ÑтроитÑÑ Ð½Ð° базе -трех оÑновных понÑтий: [пользователей](glossary.md#user), -[привилегий](glossary.md#privilege) и [ролей](glossary.md#role). +трех оÑновных понÑтий: [пользователей](../general/glossary.md#user), +[привилегий](../general/glossary.md#privilege) и [ролей](../general/glossary.md#role). Привилегии можно назначать напрÑмую пользователÑм: - + Также, привилегии могут быть назначены роли, котораÑ, в Ñвою очередь, может быть приÑвоена пользователю: - + У каждого Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð¼Ð¾Ð¶ÐµÑ‚ быть одна или неÑколько ролей. Каждому пользователю или роли может быть назначена одна или неÑколько -привилегий. Помимо пользователей и ролей, привилегии могут быть -назначены и [другим объектам](#objects). +привилегий. СпиÑок объектов, которым могут быть назначены привелении, [приведен ниже](#objects). ## Ðачало работы {: #getting-started } Ð”Ð»Ñ Ð½Ð°Ñ‡Ð°Ð»Ð° работы Ñ Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñми, привилегиÑми и ролÑми иÑледует [подключитьÑÑ](tutorial_first_steps.md#accessing-console) к интерактивной конÑоли инÑтанÑа Picodata. Ð”Ð»Ñ Ð²Ð²Ð¾Ð´Ð° команд можно иÑпользовать как формат Lua, так и Ñзык SQL напрÑмую, в завиÑимоÑти от -[выбранного](sql/queries.md#available_langs) Ñзыка конÑоли. Ð’ примерах +[выбранного](../references/queries.md#available_langs) Ñзыка конÑоли. Ð’ примерах ниже иÑпользован Ñзык SQL. ## Создание Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ {: #creating-user } Создание нового Ð¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ñ‚ÐµÐ»Ñ Ð¿Ñ€Ð¾Ð¸Ñходит Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ SQL-команды `create user`, функциональноÑть которой аналогична Lua-функции -[`pico.create_user()`](api.md#picocreate_user). +[`pico.create_user()`](../references/api.md#picocreate_user). Приведем пример ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ð½Ð¾Ð²Ð¾Ð³Ð¾ пользователÑ: @@ -67,7 +66,7 @@ pico.sql([[ Создание новой роли проиÑходит Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ SQL-команды `create role`, функциональноÑть которой аналогична Lua-функции -[`pico.create_role()`](api.md#picocreate_role). +[`pico.create_role()`](../references/api.md#picocreate_role). Приведем пример ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ Ð½Ð¾Ð²Ð¾Ð¹ роли: @@ -151,8 +150,7 @@ pico.sql([[ ``` --> -См. также [`pico.grant_privilege`](api.md#picogrant_privilege) и [`pico.revoke_privilege`](api.md#picorevoke_privilege) +См. также [`pico.grant_privilege`](../references/api.md#picogrant_privilege) и [`pico.revoke_privilege`](../references/api.md#picorevoke_privilege) --- -[ИÑходный код Ñтраницы](https://git.picodata.io/picodata/picodata/docs/-/blob/main/docs/tutorial_users.md) - +[ИÑходный код Ñтраницы](https://git.picodata.io/picodata/picodata/docs/-/blob/main/docs/tutorials/tutorial_users.md) diff --git a/docs/tutorial_webui.md b/docs/tutorials/tutorial_webui.md similarity index 87% rename from docs/tutorial_webui.md rename to docs/tutorials/tutorial_webui.md index 729a83731e43f44cc321814c04ee262e039a4a09..22ac2ccd9f998cb60657e9acc5a7fff02d2466b3 100644 --- a/docs/tutorial_webui.md +++ b/docs/tutorials/tutorial_webui.md @@ -16,13 +16,13 @@ Picodata](install.md). ## Подключение функции веб-интерфейÑа Веб-Ð¸Ð½Ñ‚ÐµÑ€Ñ„ÐµÐ¹Ñ Ð¿Ñ€ÐµÐ´ÑтавлÑет Ñобой веб-Ñервер, запуÑкаемый вмеÑте Ñ -[инÑтанÑом](glossary.md#instance) Picodata. Ðе имеет значениÑ, на каком +[инÑтанÑом](../general/glossary.md#instance) Picodata. Ðе имеет значениÑ, на каком именно инÑтанÑе клаÑтера запущен Ñтот веб-Ñервер; в любом Ñлучае, веб-Ñервер будет отображать данные обо вÑем клаÑтере. Ð”Ð»Ñ Ð·Ð°Ð¿ÑƒÑка инÑтанÑа Ñ Ð²ÐµÐ±-Ñервером Ñледует иÑпользовать дополнительный параметр `--http-listen` Ñ ÑƒÐºÐ°Ð·Ð°Ð½Ð¸ÐµÐ¼ [хоÑта и -порта](cli.md#http-listen)). Пример команды: +порта](../references/cli.md#http-listen)). Пример команды: ```bash picodata run --http-listen localhost:8080 @@ -38,7 +38,7 @@ picodata run --http-listen localhost:8080 параметра `--http-listen`. ОткроетÑÑ Ñтраница Ñ Ð¸Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸ÐµÐ¹ о клаÑтере Picodata: - + Ð”Ð°Ð½Ð½Ð°Ñ Ñтраница предоÑтавлÑет Ñледующую полезную информацию о клаÑтере: @@ -46,7 +46,7 @@ Picodata: позволÑющее вывеÑти ÑпиÑок вÑех инÑтанÑов (узлов) клаÑтера;<br> <span style="color:red;font-size:150%">â·</span> — панель оÑновной информации о клаÑтере: показателÑÑ… памÑти, количеÑтве -[репликаÑетов](glossart.md#replicaset), [инÑтанÑов](glossart.md#instance) и их [грейдов](glossary.md#grade), верÑии +[репликаÑетов](../general/glossary.md#replicaset), [инÑтанÑов](../general/glossary.md#instance) и их [грейдов](../general/glossary.md#grade), верÑии Picodata;<br> <span style="color:red;font-size:150%">â¸</span> — кнопка выбора группировки предÑÑ‚Ð°Ð²Ð»ÐµÐ½Ð¸Ñ (по инÑтанÑам или репликаÑетам);<br> @@ -60,7 +60,7 @@ Picodata;<br> style="color:red;font-size:150%">â¸</span>), то можно Ñразу увидеть дополнительную информацию о ÑоÑтоÑнии инÑтанÑов: - + ПредÑтавление в виде ÑпиÑка инÑтанÑов Ñодержит Ñледующие Ñлементы: @@ -68,7 +68,7 @@ style="color:red;font-size:150%">â¸</span>), то можно Ñразу уви инÑтанÑов по имени (нажатие переключает Ñортировку по возраÑтанию/убыванию);<br> <span style="color:blue;font-size:150%">â·</span> — кнопку фильтрации по -[домену отказа](glossary.md#failure_domain) (позволÑет оÑтавить в ÑпиÑке +[домену отказа](../general/glossary.md#failure_domain) (позволÑет оÑтавить в ÑпиÑке только те инÑтанÑÑ‹, которые удовлетворÑÑŽÑ‚ заданному уÑловию);<br> <span style="color:blue;font-size:150%">â¸</span> — текущий и целевой грейды инÑтанÑа);<br> @@ -76,9 +76,8 @@ style="color:red;font-size:150%">â¸</span>), то можно Ñразу уви отказа инÑтанÑа;<br> ПодробноÑти о запуÑке клаÑтера Picodata приведены в разделе [ЗапуÑк -клаÑтера](../deploy_on_hosts). +клаÑтера](deploy_on_hosts.md). --- [ИÑходный код -Ñтраницы](https://git.picodata.io/picodata/picodata/docs/-/blob/main/docs/tutorial_webui.md) - +Ñтраницы](https://git.picodata.io/picodata/picodata/docs/-/blob/main/docs/tutorials/tutorial_webui.md) diff --git a/mkdocs.yml b/mkdocs.yml index 1920062d66fe3d84f435e9eac522fa5abaf86974..7649666be777f444d065b9d6cc4c3faccffb7cc2 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -5,30 +5,30 @@ repo_url: https://git.picodata.io/picodata/picodata/docs nav: - Ознакомление Ñ ÐŸÐž Picodata: - - description.md - - benefits.md - - glossary.md - - feedback.md + - general/description.md + - general/benefits.md + - general/glossary.md + - general/feedback.md - ИнÑтрукции и руководÑтва: - - install.md - - deploy_on_hosts.md - - monitoring.md - - tutorial_first_steps.md - - tutorial_webui.md - - auth_ldap.md - - tutorial_users.md - - tutorial_data.md + - tutorials/install.md + - tutorials/deploy_on_hosts.md + - tutorials/monitoring.md + - tutorials/tutorial_first_steps.md + - tutorials/tutorial_webui.md + - tutorials/auth_ldap.md + - tutorials/tutorial_users.md + - tutorials/tutorial_data.md - Справочные материалы: - - cli.md - - sql/datatypes.md - - sql/queries.md - - api.md - - sql/reference.md + - references/cli.md + - references/datatypes.md + - references/queries.md + - references/api.md + - references/reference.md - Ðрхитектура: - - sql/broadcasted_sql.md - - discovery.md - - raft_voters.md - - clustering.md + - architecture/broadcasted_sql.md + - architecture/discovery.md + - architecture/raft_voters.md + - architecture/clustering.md theme: name: material custom_dir: overrides