Couchbase
| Couchbase Server | |
|---|---|
| | |
| Тип | распределённая система управления данных в формате ключ-значение и документов |
| Автор | |
| Разработчики | Couchbase, Inc. |
| Написана на | C++, Erlang, C [1], Go |
| Операционная система | кроссплатформенное программное обеспечение |
| Последняя версия | 6.5.1 (апрель 2020) |
| Репозиторий | github.com/couchbase/man… |
| Лицензия | Apache License (Community edition), владельческое (Enterprise edition) |
| Сайт | couchbase.com |
Couchbase (Couchbase Server) — система управления базами данных класса NoSQL, предоставляет сходные с Apache CouchDB средства для создания документоориентированных баз данных в сочетании с Membase-подобными хранилищами в формате «ключ — значение». Благодаря поддержке стандартного протокола memcached, система остаётся совместимой с большим числом унаследованных приложений и может выступать в роли прозрачной замены ряда других NoSQL-систем. Исходный код системы распространяется под лицензией Apache.
Создана объединённой командой разработчиков CouchDB и Membase, созданной в результате слияния компаний CouchOne и Membase. В основе движка хранения используются технологии Membase, поверх которого добавлены инструменты для индексации и формирования запросов, заимствованные из CouchDB. Таким образом удалось добиться как совместимости с Apache CouchDB на уровне языка запросов и индексов, так и совместимости с Membase на уровне протокола доступа к данным и управляющего API. Критические части CouchDB были переписаны на языке C++, но многие подсистемы по-прежнему остаются на языке Erlang. Для разработки приложений на языке Java, Ruby, .NET, C/C++, PHP, Node.js, Go и Python подготовлены специальные SDK.
Позволяет организовать хранение данных как на одном узле, так и в форме распределённой системы, которая размещает данные поверх группы серверов. Есть встроенные средства для обеспечения высокой доступности, самовосстановления в случае сбоя обслуживающих хранилище узлов (данные могут дублироваться на разных узлах) и построения сегментированных хранилищ, копии которых разнесены по разным дата-центрам. Поддерживаются как однонаправленные («ведущий — ведомый»), так и двунаправленные («ведущий — ведущий») режимы репликации. Поддерживается создание первичных и вторичных индексов, а также индексов по нескольким ключам. Для дополнительной оптимизации производительности применяются встроенные механизмы кэширования в оперативной памяти и средства автоматической генерации индексов.
Кроме возможности хранения данных в формате «ключ — значение», Couchbase позволяет использовать концепцию документоориентированного хранилища, в котором в качестве единицы хранения данных выступает документ, который имеет уникальный идентификатор, версию и содержит произвольный набор именованных полей в формате «ключ — значение». Используемая модель данных позволяет определять документы в формате JSON, снимая с разработчика необходимость определения схемы хранения. Запросы и индексация данных могут выполняться в соответствии с парадигмой MapReduce. Для организации псевдоструктурированного набора данных из произвольных документов предлагается концепция формирования представлений (view).
Для формирования логики выборки используется язык JavaScript. Также для доступа к JSON-данным реализован специализированный SQL-подобный язык запросов N1QL (от англ. N1NF QL; non-1st normal form query language; произносят сходно с nickel), поддерживающий операторы SELECT (с группировками и ограниченными типами соединений), INSERT, UPDATE, DELETE, UPSERT (вставка или обновление при наличии записи с данным ключом, впоследствии был поддержан и более общий оператор — MERGE).
Примечания
- ↑ Posted January 8, 2013 1:00 PM. The Unreasonable Effectiveness of C. Damien Katz (8 января 2013). Дата обращения: 4 июня 2013. Архивировано 31 мая 2013 года.
Ссылки
- couchbase.com — официальный сайт Couchbase
Content Disclaimer
Informasi ini disarikan dari Wikipedia dan disajikan kembali untuk tujuan edukasi. Konten tersedia di bawah lisensi CC BY-SA 3.0. Kami tidak bertanggung jawab atas ketidakakuratan data yang bersumber dari kontribusi publik tersebut.
- The information displayed on this website is sourced in part or in whole from Wikipedia and has been adapted for the purpose of restating it. We strive to provide accurate and relevant information, however:
- There is no guarantee of absolute accuracy. Wikipedia is an open, collaborative project that can be edited by anyone, so information is subject to change.
- It is not intended to constitute professional advice. The content displayed is for informational and educational purposes only. For important decisions (e.g., medical, legal, or financial), please consult a professional.
- Content copyright. Wikipedia is licensed under the Creative Commons Attribution-ShareAlike License (CC BY-SA). This means that content may be reused with appropriate attribution and shared under a similar license.
- Responsible use. Any risk arising from the use of information from this website is entirely the responsibility of the user.