Объемы обрабатываемой информации неуклонно растут, и распределенными системами уже сложно кого-либо удивить. В мир СУБД этот тренд проник с небольшим опозданием, но распределенных СУБД на рынке уже немало.
Отличаются они друг от друга почти всем, но в первую очередь нас интересует два основных компонента — это движок локального хранилища и кластер-менеджер. Так, например, в CockroachDB локальным движком выступает RocksDB, а консистентность кластера обеспечивает алгоритм Raft. В Cassandra ставка сделана на eventual consistency.
Команда Picodata долгое время разрабатывала и внедряла решения на основе Tarantool, а теперь мы переосмыслили его в cluster-first-парадигме. В докладе я расскажу о продуктовых и архитектурных решениях, которые этому сопутствовали:
* кластер-менеджер мы построили на Raft без использования внешнего state provider и объединили в нем хранение топологии и хранение схемы данных;
* для хранения данных мы используем глобальные и шардированные таблицы, а доступ к ним реализуем посредством языка SQL;
* за компанию реализовали близкие к стандарту средства управления доступом;
* а для расширения функциональности предоставляем Plugin API.