The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

Выпуск документ-ориентированной БД Apache CouchDB 2.0

20.09.2016 22:47

После нескольких лет разработки представлен релиз распределенной, документ-ориентированной базы данных Apache CouchDB 2.0.0, относящейся к классу NoSQL-систем. Выпуск 2.0 вобрал в себя улучшения, разработанные в рамках проекта BigCouch, который развивался компанией Cloudant и был передан Фонду Apache после поглощения компанией IBM. Исходные тексты проекта распространяются под лицензией Apache 2.0.

Запросы к CouchDB и индексация данных могут выполняться в соответствии с парадигмой MapReduce, используя для формирования логики выборки данных язык JavaScript. Ядро системы написано на языке Erlang, оптимизированного для создания обслуживающих множество параллельных запросов распределенных систем. View-сервер написан на языке Си и базируется на JavaScript-движке Mozilla Spidermonkey. Доступ к БД производится при помощи протокола HTTP с использованием RESTful JSON API, что позволяет обращаться к данным в том числе из выполняемых в браузере web-приложений.

В качестве единицы хранения данных выступает документ, имеющий уникальный идентификатор, версию и содержащий произвольный набор именованных полей в формате ключ/значение. Для организации псевдо-структурированного набора данных из произвольных документов (агрегирования и формирования выборок) применяется концепция формирования представлений (view), для определения которых используется язык JavaScript. На JavaScript также можно определять функции для проверки корректности данных при добавлении новых документов в рамках определенного представления.

CouchDB хранит данные в формате упорядоченного списка и позволяет производить частичную репликацию данных между несколькими БД в режиме «мастер-мастер» с одновременным обнаружением и разрешением конфликтных ситуаций. Каждый сервер хранит свой локальный набор данных, синхронизированный с другими серверами, которые могут переводиться в offline-режим и периодически реплицировать изменения. В частности, данная возможность делает CouchDB привлекательным решением для организации синхронизации настроек программ между разными компьютерами. Решения на базе CouchDB внедрены в таких компаниях как BBC, Apple и CERN.

Основные улучшения, добавленные в CouchDB 2.0:

  • Добавлена встроенная поддержка полноценных кластерных возможностей, позволяющих создавать системы высокой доступности и масштабировать CouchDB для создания очень больших хранилищ или распараллеливания запросов в высоконагруженных систмемах. Кластеризация реализована с использованием методов, применяемых в движке Amazon Dynamo, и позволяет развернуть на нескольких узлах единое хранилище CouchDB, выглядящее для клиентских систем как один большой сервер CouchDB;
  • Несмотря на значительные внутренние изменения удалось сохранить совместимость с прошлыми версиями для 99% вызовов API, что позволяет использовать CouchDB 2.0 с большинством старых приложений;
  • Представлен новый язык оформления запросов "Mango", который значительно быстрее и проще ранее предлагаемой системы JavaScript-представлений. Запросы в Mango формируются с использованием JSON;
  • Значительная оптимизация производительности, особенно заметная при выполнения операций репликации и упаковки;
  • Полностью переписан интерфейс администратора, который обзавёлся современным внешним видом (используется React.js и Flux) и новыми возможностями. Например, добавлены средства для разрешения конфликтов между документами, создания и использования индексов, настройки кластера.


  1. Главная ссылка к новости (https://blogs.apache.org/found...)
  2. OpenNews: Выпуск СУБД Couchbase Server 4.0, сочетающей возможности CouchDB, memcached и Membase
  3. OpenNews: Выпуск документ-ориентированной БД Apache CouchDB 1.6.0
  4. OpenNews: IBM покупает компанию Cloudant и выделяет дополнительные ресурсы для разработки Apache CouchDB
  5. OpenNews: Основатель CouchDB покинул Apache в пользу развития системы Couchbase
  6. OpenNews: Релиз документо-ориентированной СУБД MongoDB 3.2
Лицензия: CC-BY
Тип: Программы
Короткая ссылка: https://opennet.ru/45181-couchdb
Ключевые слова: couchdb, nosql
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение (18) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (-), 23:02, 20/09/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Зачем нужен этот freemium, для сравнения https://cloudant.com/product-options.
    Плюс просто ужас сколько место занимает БД.
     
     
  • 2.2, Аноним (-), 23:08, 20/09/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    CouchDB 2.0 это и есть Cloudant, IBM вернул купленные наработки в upstream и теперь пилит CouchDB, а не отдельный продукт.
     
     
  • 3.6, Аноним (-), 23:46, 20/09/2016 [^] [^^] [^^^] [ответить]  
  • +/
    >CouchDB 2.0 это и есть Cloudant

    спасибо кэп, только урезанный
    >IBM вернул купленные наработки в upstream и теперь пилит CouchDB, а не отдельный продукт.

    еще один эксперт

     

  • 1.3, Аноним (-), 23:18, 20/09/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Зачем нужен CouchbDB, когда есть Couchbase?
     
     
  • 2.10, Аноним (-), 01:07, 21/09/2016 [^] [^^] [^^^] [ответить]  
  • +/
    > Зачем нужен CouchbDB, когда есть Couchbase?

    что бы продавать Cloudant

     

  • 1.4, Аноним (-), 23:26, 20/09/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • –7 +/
    Позорище-то какое Пишется один продукт, в котором производительность в топ3 тре... большой текст свёрнут, показать
     
     
  • 2.5, vatocefal (?), 23:43, 20/09/2016 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Рыночная доля где? На рынке написания плагинов для вордпреса?

    Доля где бы то ни было никакой роли не играет для языка, на котором БД написана - лишь автор и ещё какое-то кол-во заинтересованных лиц в него могли.

    Эрланг тормозит, но кого это колышет в IO-bound задачах? Перекладывать байты по сети это то, для чего Эрланг создавался. А для CPU-bound задач у них JS. И движок, наверное, можно сменить, если очень припрёт.

     
     
  • 3.8, Аноним (-), 01:05, 21/09/2016 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Все рассуждения про IO-bound очень хорошо работают ровно до тех пор, пока кто-то не начинает писать приложение на языке с cg. Потом начинается позорище. Ты поставил SSD? У тебя весь кластер влезает в стойку? Ты хочешь ответ сразу? А потерпи, потому что настало время собирать мусор. Хочешь gc пореже? Окей, будешь чуть более IO-bound, ведь вместо файлового кэша вся память сервера будет забита трупами эрланговых объектов.

    Кстати, если решишься воспользоваться гуглом (там же находится ответ на твой вопрос про долю эрланга), посмотри заодно багрепорты CouchDB про их проблемы с gc. Спойлер: они в апачевской джире уже несколько лет висят с приоритетом major и статусом unresolved, потому что дети взяли микроскоп и не понимают, почему он не подходит для забивания гвоздей. Микроскоп ведь явно лучше молотка, правда? Можно тысячи легковесных процессов спавнить. Можно код патчить без остановки системы. Всё можно, только вот самые простые гвозди (типа внятной работы с памятью на довольно простых операциях с БД) что-то не забиваются никак. В задаче никакой проблемы нет, а вот в решении через эрланг она почему-то не только есть, но ещё и неустранимая. Странно, не правда ли?

     
  • 2.20, Аноним (-), 10:27, 22/09/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Spidermokey (в отличии от V8) собирается для всех архитектур. И он тупо быстрее чем v8.
     

  • 1.12, Аноним (-), 04:30, 21/09/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    json во всю развивается в nosql
    а мне все mysql и postgres привычен
     
     
  • 2.15, username (??), 11:55, 21/09/2016 [^] [^^] [^^^] [ответить]  
  • +1 +/
    в слонике аж два гсон движка уже, просыпайтесь.
     

  • 1.13, Аноним (-), 08:36, 21/09/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Кто использовал, чем оно лучше/хуже MongoDB?
     
     
  • 2.14, Аноним (-), 11:22, 21/09/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Проще в настройке, не нужен серверсайд, использовать строго с pouchdb. Если вам нужен просто хранение json без поиска поиска по ним, это ваш выбор. Если вам нужно веб приложение работающее в оффлайне/онлайн с бд тоже подходящий юзкейс.
    Хуже тем что, медленная, большая БД. если простым текстом у вас 50мб данных(300k записей), то в БД будет занимать где то  1гб, плюс индексы займут не меньше. Отсутствие поиска.
     
     
  • 3.16, Аноним (-), 17:21, 21/09/2016 [^] [^^] [^^^] [ответить]  
  • +/
    > если простым текстом у вас 50мб данных(300k записей), то в БД будет занимать где то  1гб

    o_O

    Какой раскудрявой жопой надо писать сериализацию, чтоб такое получить?

     
     
  • 4.17, Аноним (-), 19:21, 21/09/2016 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Спроси у разработчиков, внутрь я не смотрел, провел тесты > ахринел > понял что мне оно не надо.
     
  • 4.18, Аноним (-), 21:45, 21/09/2016 [^] [^^] [^^^] [ответить]  
  • +/
    Хранить diff каждой ревизии каждого документа.
     

  • 1.19, Аноним (-), 21:47, 21/09/2016 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    О, наконец-то 2.0, дождались! Используем в продакшене уже почти 2 года, полёт нормальный. Кушает много, да, но нам был важен master to master replication, а выбор таких БД весьма невелик.
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Спонсоры:
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2020 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру