Riak

Riak – это распределенная NoSQL база данных с открытым исходным кодом, разработанная компанией Basho Technologies. Она спроектирована для обеспечения высокой доступности, масштабируемости и отказоустойчивости. Riak использует принцип CAP-теоремы, обеспечивая согласованность данных и доступность при возможном разделении сети. Riak поддерживает горизонтальное масштабирование и хранение множества различных типов данных, включая структурированные, неструктурированные и полуструктурированные данные, это система с открытым исходным кодом и поддержкой обращений с помощью HTTP, JSON и REST.

Изначально создана под влиянием оригинальных идей СУБД DynamoDB, как система класса «ключ — значение», код написан преимущественно на Erlang и частично на Си и JavaScript. В дальнейшем выделено ядро, поддерживающее подключаемые подсистемы хранения (по умолчанию используется разработанный Basho механизм Bitcask, но возможно использование LevelDB), поверх ядра реализована СУБД для временных рядов Riak TS и объектная сеть хранения Riak CS (основная СУБД при этом обозначается как Riak KV).

Имеет встроенную поддержку парадигмы MapReduce. Для причинно-следственного упорядочивания изменений в данных используется механизм векторных часов. Обладает механизмами настраиваемой согласованности для каждой коллекции — от согласованности в конечном счёте до строгой согласованности в смысле ACID.

Производителем заявлялось об использовании СУБД в Voxer, Comcast, Mozilla, AOL, Ask.com, Yammer, Mobile Interactive Group, Wikia, Opscode и Mochi Media. После банкротства Basho в 2017 году система развивается сообществом, в выпущенной в 2018 году очередной версии реализованы ряд возможностей, которые ранее были доступны только в коммерческом варианте Riak (среди которых георепликация и другие геоинформационные технологии).

Преимущества Riak:

1. Масштабируемость: Riak обладает хорошей горизонтальной масштабируемостью, что позволяет легко добавлять новые узлы к кластеру для увеличения производительности и емкости хранения данных.

2. Высокая доступность: Riak использует механизм репликации данных для обеспечения высокой доступности. Данные автоматически реплицируются на несколько узлов, что позволяет балансировать нагрузку и обеспечивать отказоустойчивость.

3. Гибкость схемы данных: Riak не требует жестко заданных схем данных, что позволяет хранить разнородные данные без необходимости предварительного определения их структуры.

Недостатки Riak:

1. Сложность настройки: Настройка и управление кластером Riak может быть сложной задачей, особенно для пользователей без опыта работы с распределенными базами данных.

2. Ограниченная поддержка запросов: Riak предоставляет ограниченный набор запросов и операций с данными, что может быть недостаточным для решения определенных задач.

3. Высокая стоимость масштабирования: Добавление новых узлов к кластеру Riak для увеличения производительности может быть дорогим, особенно при больших объемах данных.

Обсуждение закрыто.