Apache CouchDB

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

Сайт: couchdb.apache.org

Apache CouchDB — открытая документно-ориентированная СУБД, предназначенная для хранения, обработки и репликации данных в формате JSON. СУБД реализует модель документов с назначаемыми уникальными идентификаторами и версиями, предоставляет доступ через REST/HTTP API и ориентирована на обеспечение отказоустойчивости, согласованности на уровне документов и гибкой репликации между узлами. CouchDB разработана с учётом сценариев распределённых систем, мобильных приложений и офлайн-работы, где важна возможность синхронизации изменений между автономными экземплярами.

Проект реализован на языке Erlang, что накладывает особенности архитектуры: акцент на конкурентность, обработку отказов и горячую замену компонентов. CouchDB поддерживает встроенные механизмы репликации и конфликт-менеджмента, настраиваемые представления и индексы на основе механизмов MapReduce, а также предоставляет REST-интерфейс для администрирования и взаимодействия с данными. В экосистеме вокруг СУБД развиты клиенты для различных языков и инструментов, обеспечивающих интеграцию с приложениями и сервисами.

  • Тип данных: документно-ориентированное хранилище с документами в формате JSON.
  • Доступ: нативный REST/HTTP API для CRUD-операций, запросов и администрирования.
  • Репликация: асинхронная одно- и двунаправленная репликация между экземплярами, поддержка топологий master-master и master-slave.
  • Офлайн-синхронизация: механизм синхронизации изменений и разрешения конфликтов при соединении узлов после автономной работы.
  • Язык реализации: реализована на Erlang, использует преимущества отказоустойчивости и высокой параллельности этой платформы.
  • Индексация и запросы: представления на основе MapReduce для создания индексированных представлений и выполнения выборок; поддержка Mango — декларативного языка запросов.
  • Модель версий: контроль версий документов с внутренним управлением ревизиями и возможностью разрешения конфликтов на уровне приложений.
  • Безопасность и аутентификация: поддержка механизмов аутентификации, управления доступом и ролей на уровне сервера и баз данных.
  • Интеграция: клиенты и библиотеки для популярных языков программирования, инструменты для миграции и резервного копирования.
  • Использование: подходит для распределённых систем, приложений с требованием офлайн-доступа, мобильных приложений и сервисов, где нужны гибкая репликация и простая модель документов.
Подробнее