This repository contains the source code of Picodata, a distributed application server with a built-in in-memory database.
### What is Picodata
Picodata is a software for building professional data management systems. It provides a data storage system together with a development platform and a runtime for persistent applications written in Rust. Learn more about our software at the [picodata.io](picodata.io) web site.
Picodata is a software for building professional data management systems. It provides a data storage system together with a development platform and a runtime for persistent applications written in Rust. Learn more about our software at the [picodata.io](picodata.io){:target="_blank"} web site.
### Getting Picodata
We provide pre-built Picodata packages for select Linux distributions including CentOS and Ubuntu. Head over to our [downloads page](https://picodata.io/download/) to find out installation details.
Данный документ описывает расчетный план развития продукта Picodata на ближайшие кварталы. В каждом случае (для каждого значительного выпуска) целевым показателем является достижение заявленной в плане функциональности.
План развития Picodata совмещен с Релизной политикой для обеспечения больше понятности процесса разработки и информирования заинтересованных сторон о планах и приоритетах команды разработчиков Picodata.
Вводится новый формат версионирования, основанный на календарном версионировании (CalVer).
Так, текущий релиз Picodata обозначается как 22.07.0, где:
22 — номер года, в котором состоялся релиз;
07 — номер месяца, в котором состоялся релиз;
0 — номер минорной версии, отражающей наличие и/или количество доработок, внесенных в рамках основного релиза.
Релизная политика ООО «Пикодата» предполагает выпуск новых основных версий Picodata 4 раза в год, приблизительно раз в квартал.
На данный момент в грядущих выпусках Picodata запланировано достижение следующей функциональности:
Q4-2022 (22.10.0)
Добавление модуля vshard, который обеспечит распределение сегментов данных между различными репликасетами. Поддержка распределения данных по узлам кластера в соответствии с заданными критериями. Доступ к данным с любого узла кластера.
Q1-2023 (23.01.0)
Доведение Picodata API до функционального состояния, обеспечение возможности создавать и удалять таблицы (spaces) в СУБД посредством Picodata API.
Q2-2023 (23.04.0)
Реализация автоматического балансировщика данных в кластере, перемещающего данные от более наполненных узлов кластера к менее наполненным для сохранения равномерного распределения данных по узлам кластера.
Реализация частичной поддержки стандарта SQL:2016 в рамках всего кластера (поддержка распределенного SQL), включая элементы из подразделов: E011. Числовые типы данных, E011-05. Числовые сравнения, E021. Типы символьных строк.
Q3-2023 (23.07.0)
Реализация распределенного механизма управления схемой данных СУБД (таблицы, хранимые процедуры, пользователи, привилегии), гарантирующего идентичную схему данных на всех узлах кластера.
Расширение поддержки стандарта SQL:2016 в рамках всего кластера (поддержка распределенного SQL), включая элементы из подразделов: E031. Идентификаторы, E051. Спецификация базовых запросов, E061. Базовые предикаты и условия поиска, E071. Базовые выражения с запросами, E101. Базовая обработка данных.
Q4-2023 (23.10.0)
Интеграция Tarantool-Rust-модуля в основное приложение Picodata.
Реализация механизма выполнения задач в кластере в семантике “точно один раз”, “не более одного раза”.
Реализация механизма ролей — распределения вычислительных и прикладных задач по узлам кластера на основании их предназначения (роли), предоставляющего централизованное управление программой, выполняемой кластером.
Расширение поддержки стандарта SQL:2016 в рамках всего кластера (поддержка распределенного SQL), включая элементы из подразделов: F041. Базовое объединение таблиц, F471. Скалярные значения подзапросов, T631. Предикат IN с одним элементом списка.