Бедрок-топпер для SQLite


Уровень сетевых и распределенных транзакций, называемый Bedrock, основанный на SQLite, был «открыт для общественности» Expensify.

Объявление об общедоступности Bedrock было сделано в этом году на FinDEVr в Сан-Франциско. FinDEVr — конференция, предназначенная для разработчиков, работающих в финансовом секторе. Expensify наиболее известен своим приложением для командировок и расходов, которое можно использовать для управления расходными операциями, загрузки квитанций и создания отчетов о расходах. Bedrock был разработан для управления транзакциями в Expensify его генеральным директором Дэвидом Барреттом.

В примечаниях к выпуску Bedrock описывается как простая модульная основа данных, реплицированная через WAN, для приложений глобального масштаба. Он состоит из ряда отдельных подключаемых модулей, которые не связаны друг с другом и обслуживаются независимо.

Плагины реализуют и предоставляют видимые извне команды Текущие плагины:

Статус — предоставляет базовый статус о работоспособности кластера Bedrock.

БД — обеспечивает прямой доступ SQL к базовой базе данных.

Задания — предоставляет простую очередь заданий.

Кэш — предоставляет простой реплицированный кеш.

MySQL — эмулирует MySQL

Хотя объявление и выпуск кода для Bedrock являются новыми, продукт непрерывно разрабатывается и используется в производстве в течение восьми лет. Система Experia, для которой был разработан Bedrock, имеет 4,5 миллиона пользователей и работает на шести узлах, разделенных между тремя центрами обработки данных. По словам разработчиков:

«Цель Bedrock — сделать SQLite пригодным для использования на предприятии»

Bedrock предлагает то, что разработчики называют «выборочной синхронизацией», которая, по их словам, обеспечивает линейную масштабируемость распределенных транзакций даже в средах с высокой задержкой. Они также говорят, что нет необходимости в осведомленности на уровне приложения о том, какой узел является главным, и что система предлагает автоматическое переключение на подчиненное устройство без изменения конфигурации приложения или потери данных. Восстановление происходит автоматически обратно к мастеру.

Bedrock использует C ++ в качестве основного языка хранимых процедур. Разработчики говорят, что безопасность в значительной степени основана на использовании инфраструктуры плагинов, поэтому вы пишете «хранимые процедуры» C ++, которые обеспечивают соблюдение модели безопасности вашего приложения.

Еще неизвестно, превратится ли Bedrock в популярную базу данных, но он использует интересный подход к использованию SQLite за пределами встроенных норм.


Добавить комментарий