Выпущена новая версия FoundationDB с поддержкой нескольких регионов в отдельных кластерах, более быстрым восстановлением после отказа и улучшенным TLS.
Это первый крупный выпуск с тех пор, как FoundationDB была сделана с открытым исходным кодом. FoundationDB была куплена Apple в 2015 году, а исходный код ядра программного обеспечения был открыт в апреле 2018 года.
FoundationDB работает очень быстро, поддерживает транзакции, совместимые с ACID, даже несмотря на то, что это NoSQL, и хорошо масштабируется. Это распределенная база данных, предназначенная для работы на кластерах обычных серверов для обработки больших объемов структурированных данных. Данные организованы в виде упорядоченного хранилища ключей и значений, и вы взаимодействуете с ними с помощью языковой привязки API.
Изменения в текущей версии начинаются с встроенной поддержки нескольких регионов. Это нацелено на повышение доступности баз данных во всем мире. Теперь возможно плавное переключение между регионами, поэтому, если весь регион выйдет из строя, ваши пользователи по-прежнему не будут испытывать прерывания обслуживания. Вы можете настроить FoundationDB так, чтобы эти функции использовались, но клиенты по-прежнему выполняли запись в одном регионе с низкой задержкой.
Если вы выберете конфигурацию с несколькими регионами для отработки отказа, один регион будет по умолчанию работать как центр записи. Если в зоне доступности возникла проблема, FoundationDB автоматически передает полномочия в другой регион без потери данных. Если вы хотите запустить FoundationDB в одном регионе, теперь кластер можно настроить для интеллектуального использования нескольких зон доступности в случае возникновения проблем.
Для работы поддержки нескольких регионов FoundationDB теперь распознает расположение региона. Когда данные записываются на диск, будь то на сервере хранения или в журнале транзакций, информация включается в область, в которой находится диск. Это делает возможными различные вещи, в том числе возможность выбирать операции, которые являются локальными для региона по предпочтению.
Региональная осведомленность также используется для экономии полосы пропускания при репликации данных по дорогим внутрирегиональным каналам с высокой задержкой. FoundationDB отправляет одну копию данных между регионами, а затем перераспределяет данные по репликам на удаленной стороне.
Также добавлены региональные режимы отказа. В прошлом, если машина выходила из строя, предполагалось, что отказ был постоянным. и данные были немедленно скопированы на другие машины. Это было проблематично в случае отказа региона или зоны доступности, потому что такие проблемы чаще носят временный характер и требуют затрат на восстановление, поскольку копирование всего содержимого базы данных через глобальную сеть обходится дорого. В случае сбоя на границе региона или зоны доступности FoundationDB теперь можно настроить так, чтобы проблема рассматривалась как временная, и сохранялись локальные копии до тех пор, пока отказавший регион не вернется в оперативный режим.