RethinkDB

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

Сайт: rethinkdb.com

RethinkDB — распределённая документно-ориентированная база данных с поддержкой хранения документов в формате JSON и встроенных механизмов доставки изменений в режиме реального времени. Разработанная для упрощения создания интерактивных приложений, она предоставляет интуитивный язык запросов, ориентированный на работу с потоками данных, и средства горизонтального масштабирования. Архитектура RethinkDB включает репликацию, шардирование и автоматическое восстановление при сбоях, что позволяет обеспечивать устойчивость и доступность данных в распределённых кластерах.

Проект появился как открытое программное обеспечение и широко использовался в проектах, где требовалось немедленное уведомление клиентов об изменениях данных без дополнительного уровня интеграции. RethinkDB обеспечивает клиентыми драйверами для нескольких языков программирования и позволяет выполнять запросы как синхронно, так и в виде подписок на изменения (changefeeds). Хотя развитие проекта и его сообщество подвергались изменениям, принципы дизайна RethinkDB — ориентация на документную модель, встроенные потоки обновлений и простота масштабирования — продолжают влиять на подходы к реальному времени в современных базах данных.

  • Модель данных: документно-ориентированная, хранение записей в формате JSON с гибкой схемой.
  • Язык запросов: функциональный и composable API для построения запросов и преобразования потоков данных.
  • Changefeeds: встроенные подписки на изменения, позволяющие получать в реальном времени вставки, обновления и удаления.
  • Репликация и шардирование: поддержка разделения данных по шартам и реплик для обеспечения отказоустойчивости и масштабируемости.
  • Горизонтальное масштабирование: возможность добавления узлов в кластер для увеличения ёмкости и пропускной способности.
  • Транзакции и согласованность: модель с возможностью настройки уровней согласованности и поддержкой атомарных операций на документном уровне.
  • Интеграция: клиентские драйверы для различных языков и простые интерфейсы для соединения с веб-приложениями и сервисами в режиме реального времени.
  • Управление кластером: инструменты для мониторинга, балансировки и автоматического восстановления при отказах узлов.
Подробнее