Распределенная PostgreSQL
Свежий перевод "Let's build a distributed Postgres proof of concept"
Давайте посмотрим, из чего состоит CockroachDB под капотом. Загляните в её go.mod и вы увидите множество зависимостей, каждая из которых решает свою важную задачу: реализация протокола PostgreSQL wire, уровень хранения данных, реализация Raft для распределённого консенсуса. А ещё в go.mod этого нет, но всеравно используется сторонняя разработка - грамматика PostgreSQL.
Если довести до абсурда, то CockroachDB — это просто "клей" для этих библиотек. Вооружившись таким упрощённым подходом, давайте попробуем сами создать прототип распределённой PostgreSQL. Мы используем всего четыре основные внешние библиотеки: для разбора SQL, для работы с сетевым протоколом Postgres, для реализации Raft и для хранения метаданных таблиц и самих строк.