Skip to content
Snippets Groups Projects
Commit ce30bbb2 authored by Alexander Tolstoy's avatar Alexander Tolstoy
Browse files

Merge branch 'docs' into 'main'

reworded app and schema dependency description

See merge request picodata/picodata/docs!24
parents 9765bd3e f0ac48dc
No related branches found
No related tags found
1 merge request!24reworded app and schema dependency description
Pipeline #5186 passed
......@@ -7,7 +7,7 @@
Версия схемы и версия приложения изменяются раздельно друг от друга. Для версионирования схемы используется набор семантических правил [SemVer](https://semver.org/lang/ru/). Правила изменения версий приложения могут быть произвольными и задаваться по желанию пользователя, но при этом должно быть выполнено условие: у любых двух версий приложения с разной логикой должны быть разные пары **имя приложения** - **версия приложения**.
Приложение может работать только когда в кластере на всех активных инстансах во всех репликасетах запущена одна и та же версия приложения. Проверка версий запущенных приложений делается через журнал Raft. Каждое приложение при запуске ждет коммита своей версии в Raft log.
Приложение может работать только когда в кластере на всех активных инстансах во всех репликасетах загружена одна и та же версия приложения. Проверка версий запущенных приложений делается через журнал Raft. Каждое приложение при запуске ждет коммита своей версии в Raft log.
Версия схемы в кластере меняется только в большую сторону. Любые изменения схемы сопровождаются увеличением версии. Откатить версию нельзя (кроме восстановления из резервной копии).
......@@ -16,7 +16,7 @@
1. (Обязательно).В коде приложения. Если в приложении задана зависимость от схемы v3.2.1, то это приложение не должно запускаться, если не выполняется условие: 3.2.1 <= версия схемы в кластере < 4.0.0, за исключением случаев, описанных в следующем пункте. В случае обнаружения несовместимой версии схемы Picodata должна останавливать приложение и ждать, пока схема станет совместимой. При этом должно выводиться соответствующее сообщение в журнал действий.
2. (Опционально). Глобально в кластере в реплицируемом через Raft хранилище конфигурации может быть задано множество вариантов совместимости любой версии схемы с любой версией приложения. Этот признак совместимости имеет приоритет над первым. Т.е. когда Picodata запускает приложение, сначала проверяется признак совместимости согласно глобальной кластерной конфигурации: если совместимо, то Picodata запускает приложение НЕЗАВИСИМО ОТ ПРАВИЛ SEMVER. Предполагается, что администратору может понадобиться задать совместимость таким образом при решении проблем, см. пример ниже.
Проверка совместимости версий включена по умолчанию, но её можно отключить.
Проверка совместимости версий включена по умолчанию, но ее можно отключить.
### Явное задание совместимости версий приложения и схемы
Приведем пример, когда нужно воспользоваться явным способом задания совместимости между приложением и схемой данных. Это и есть _опциональный_ способ, указанный выше.
......
......@@ -6,7 +6,7 @@
Picodata реализует [ACID-подход](https://ru.wikipedia.org/wiki/ACID), при котором любые изменения данных предварительно сохраняются в журнале на диске и реплицируются на несколько серверов. При выходе из строя любой компоненты данные автоматически восстанавливаются из существующих копий, что позволяет добиться высокой отказоустойчивости. Все операции с топологией кластера и схемой данных также атомарны.
## Горизонтальное масштабирование
Picodata обеспечивает эффективное управление распределённым кластером. Данные в кластере разделены на независимые фрагменты (шарды) по числу доступных ядер процессора. Такой подход снижает издержки на разделяемый доступ к данным, повышает утилизацию оборудования и позволяет в любой момент нарастить вычислительную мощность системы.
Picodata обеспечивает эффективное управление распределенным кластером. Данные в кластере разделены на независимые фрагменты (шарды) по числу доступных ядер процессора. Такой подход снижает издержки на разделяемый доступ к данным, повышает утилизацию оборудования и позволяет в любой момент нарастить вычислительную мощность системы.
## Выполнение бизнес-логики внутри решетки данных
Мы в Picodata нашли способ масштабировать не только данные, но и вычисления. Наша система хранит и версионирует программный код на каждом узле кластера. Мы разработали целый ряд техник, позволяющих безопасно обновлять распределенные приложения, сохраняя целостность данных и избегая простоев системы (no downtime). Все это позволяет обеспечить бескомпромиссную скорость операций с данными.
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment