RavenDB

Бесплатно
Открытый исходный код
Windows
macOS
Linux

Сайт: ravendb.net

RavenDB — это документно-ориентированная NoSQL база данных, разработанная компанией Hibernating Rhinos. Проект начал своё развитие примерно в 2008 году под названием «Rhino DivanDB», автор — Орен Эйни, и базовая версия была официально опубликована около 2010 года. RavenDB написана на языке C#, поддерживается кроссплатформенно (Windows, Linux, macOS и другие среды, включая контейнеры и облачные развёртывания) и ориентирована на хранение документов в формате JSON с гибкой схемой.

Главная цель RavenDB — предоставить типичную функциональность NoSQL-документной БД с гарантией ACID-транзакций, автоматическим индексированием и возможностью работать в кластере. Система позволяет распределять данные, выполнять репликацию между узлами, и в кластере обеспечивать консистентность данных посредством алгоритма консенсуса при выполнении транзакций. RavenDB используется в сценариях, где важны надёжность, согласованность данных и высокая доступность, например для учёта, торговли, складской логистики, аналитики и распределённых систем.

  • Документная модель и хранение JSON-документов: RavenDB хранит данные как документы JSON, сгруппированные по коллекциям, без жёсткой предварительной схемы.
  • ACID-транзакции: операции над документами и пакет операций в рамках одного HTTP-запроса выполняются атомарно. В версии RavenDB есть поддержка транзакций в пределах отдельного узла и транзакций, охватывающих весь кластер, с консенсусом между узлами. Гарантируется целостность, изоляция, атомарность и устойчивость. Поддерживаются разные уровни изоляции — например, snapshot isolation для чтения.
  • Автоматическое индексирование и гибкие запросы: если для запроса не существует подходящего индекса, RavenDB может создать автоматический индекс. Есть возможность определять статические индексы, делать проекции, агрегации. Запросы можно писать через специальный язык RQL или через LINQ, поддерживаются полнотекстовый поиск, пространственные запросы, графовые отношения между документами.
  • Кластерная архитектура и высокая доступность: база может быть развернута в виде кластера с множеством узлов (multi-master репликация). Поддерживается согласованный режим транзакций по кластеру, отказоустойчивость, автоматическое распределение нагрузки и задач, репликация и резервное копирование.
  • Многоплатформенность и разнообразие клиентов: RavenDB работает на разных операционных системах, в контейнерах; предоставляет клиентские библиотеки для различных языков программирования, что позволяет интегрироваться в разнообразные приложения.
Подробнее