The OpenNET Project / Index page

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

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

17.12.2018 22:12

Доступен релиз распределённой документоориентированной базы данных Apache CouchDB 2.3.0, относящейся к классу NoSQL-систем. Исходные тексты проекта распространяются под лицензией Apache 2.0.

В новом выпуске устранена уязвимость (CVE-2018-17188), позволяющая удалённо поднять свои привилегии в системе (пользователь с правами администратора СУБД может получить доступ к окружению операционной системы с правами пользователя, под которым запускается CouchDB). Так как за последние два года это пятая уязвимость, связанная изменением конфигурации СУБД во время работы (ранее были исправлены похожие уязвимости CVE-2018-8007, CVE-2018-11769, CVE-2017-12636 и 2017-12635), разработчики Apache CouchDB приняли решение полностью запретить изменение ключевых настроек СУБД через API. Настройки теперь могут быть изменены только при наличии shell-доступа к серверу.

Улучшения, реализованные в Apache CouchDB 2.3.0:

  • Добавлена поддержка кластерной очистки (clustered purge), позволяющая полностью удалить из БД любой документ (удалённый или не удалённый) с любым числом ревизий и конфликтов;
  • Реализована новая настройка (seedlist), позволяющая администратору задать начальный список узлов, к которым новый узел должен обратиться на этапе запуска. Узлы из данного списка, в случае доступности, автоматически будут добавлены в БД _nodes и использованы для репликации внутренних системных БД;
  • Добавлена возможность репликации с обращением к пирам, доступным только по IPv6;
  • Возвращено старое поведение CouchDB 1.x, связанное с указанием UUID сервера/кластера в ответе на запрос "GET /";
  • В реализации операции пакетного выполнения запроса (_bulk_get) появилась поддержка типов контента multipart/mixed и multipart/related;
  • Прекращено жёсткое задание размера буфера TCP для приёма данных (ранее устанавливался в 256KB), что позволяет операционной системе динамически корректировать размер буфера. Данное изменение существенно увеличило производительность передачи по сети больших вложений;
  • Упрощено включение SSL в файле конфигурации, теперь достаточно создать секцию "[ssl]" с опцией "enable = true";
  • Все скрипты, написанные на языке Python, включая couchup и dev/run, для своего выполнения отныне требуют наличия Python 3.x;
  • Обеспечена совместимость с Erlang 21.x.
  • Встраиваемая версия инструментария rebar, используемого для сборки CouchDB, обновлена до последней версии ветки rebar2, что улучшило поддержку сборки на платформах, отличных от x86.

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

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

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

  1. Главная ссылка к новости (https://seclists.org/oss-sec/2...)
  2. OpenNews: Уязвимость в Apache CouchDB, позволяющая совершить атаку на реестр пакетов NPM
  3. OpenNews: Следом за MongoDB начались атаки на CouchDB, Hadoop и ElasticSearch
  4. OpenNews: Выпуск документ-ориентированной БД Apache CouchDB 2.0
  5. OpenNews: Выпуск СУБД Couchbase Server 4.0, сочетающей возможности CouchDB, memcached и Membase
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/49798-couchdb
Ключевые слова: couchdb
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (39) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (1), 23:29, 17/12/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • –4 +/
    Для тех, кто не осилил SQL.
     
     
  • 2.2, Аноним (2), 23:44, 17/12/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Угу, вот только обычно SQL осилить проще чем очередной нескучный синатксис носкуэли.
     
     
  • 3.7, лютый лютик_ (?), 05:52, 18/12/2018 [^] [^^] [^^^] [ответить]  
  • –8 +/
    >Угу, вот только обычно SQL осилить проще чем очередной нескучный синатксис носкуэли.

    SQL как и HTML это языки не для программистов, а околокомпутерного сброда.
    У нормального программиста многостраничные портянки с RANK да PARTITION BY вызывает батхёрт.
    Ещё и под каждую РСУБД совершенно свой велоси^W синтаксис.

    Посему все живые проекты на РСУБД используют ORM.

    А вот у той же Монго java API это просто прорыв по сравнению с замшелым SQL. И встроенный ORM с версии 3.5

     
     
  • 4.9, Anonim (??), 08:49, 18/12/2018 [^] [^^] [^^^] [ответить]  
  • +/
    При использовании ORM производительность существенно ниже, чем без них с SQL
     
  • 4.10, Аноним (10), 09:28, 18/12/2018 [^] [^^] [^^^] [ответить]  
  • +5 +/
    Извините за переход на личности, но Вы, батенька, неосилятор SQL с чрезмерно завышенным ЧСВ.
     
     
  • 5.11, Аноним (11), 09:46, 18/12/2018 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Нет. Скорее вы фанатик смузи-SQL.
     
     
  • 6.13, Аноним (10), 10:23, 18/12/2018 [^] [^^] [^^^] [ответить]  
  • +3 +/
    > Нет. Скорее вы фанатик смузи-SQL.

    Нет, все объясняется проще - я уже стар для этих ваших ORM, а SQL - наше всё. Можете обзывать меня старым пеpдуном-ретроградом. Плюс уже пару раз был свидетелем, как более молодые коллеги применяли этот самый ORM (Hibernate), взахлеб, с восторгом, рассказывали, как все замечательно. Но потом, когда проект вырастал и усложнялся, накапливал кучу данных и все начинало тормозить, товарищи скисали и в новых проектах или конторах тихо переходили на JDBC/SQL (или чуть более высокоуровневые обертки над SQL - типа iBatis, JdbcTemplate...). В приложениях-"пет-шопах" ORM, конечно, рулит. Кстати, в очередной раз напоминаю себе что пора бы хоть раз попробовать это ваше смузи.

     
     
  • 7.14, Аноним (11), 10:28, 18/12/2018 [^] [^^] [^^^] [ответить]  
  • +/
    > Нет, все объясняется проще - я уже стар для этих ваших ORM, а SQL - наше всё. Можете обзывать меня старым пеpдуном-ретроградом.

    Настоящие ретрограды застали времена, когда ваш SQL был очередной хипстерской поделкой, а все базы был нереляционные. Не льстите себе.

     
     
  • 8.16, anonymous (??), 10:35, 18/12/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Выходит все эти новые NoSQL СУБД просто возврат к хорошо забытому старому ... текст свёрнут, показать
     
     
  • 9.17, Аноним (11), 10:51, 18/12/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Да, с подключением ... текст свёрнут, показать
     
     
  • 10.28, anonymous (??), 15:02, 18/12/2018 [^] [^^] [^^^] [ответить]  
  • +/
    В итоге я запутался кто тогда ретроградные смузи-хипсто-хлёбы Кто за RDBMS или... текст свёрнут, показать
     
  • 9.22, Аноним (10), 11:47, 18/12/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Всё развивается по спирали ... текст свёрнут, показать
     
  • 7.23, лютый жабист__ (?), 11:50, 18/12/2018 [^] [^^] [^^^] [ответить]  
  • +/
    >Плюс уже пару раз был свидетелем, как более молодые коллеги применяли этот самый ORM (Hibernate), взахлеб, с восторгом, рассказывали, как все замечательно

    Про Хибернейт с восторгом? Так они напросто идиёты :) Очевидно, что голый SQL это дно, а Хибернейт лишь костыль для дна. Проблемы не решает, а только прячет.

    А нормальные люди переходят на более современные и вменяемые API, которые по странному совпадению, в РСУБД не завезли. Про criteria api не надо.

     
  • 5.12, лютый жабист__ (?), 10:03, 18/12/2018 [^] [^^] [^^^] [ответить]  
  • –9 +/
    >Вы, батенька, неосилятор SQL с чрезмерно завышенным ЧСВ.

    Бизнес уже давно расставил всё по своим местам, SQL это много багов на ровном месте - пока не запустишь прожку, неизвестно выполнится запрос или не распарсится. Особенно феерично когда аргументы генерятся из кода, ни preparedStatement сделать низя, ни гарантировать, что запрос корректный.

    Поэтому сейчас РСУБД уже почти вымерло, сколько минус не жамкай :)))

     
     
  • 6.18, Gemorroj (ok), 10:56, 18/12/2018 [^] [^^] [^^^] [ответить]  
  • +4 +/
    ну ты и олень
     
  • 6.19, Лютый жабадавист__ (?), 11:14, 18/12/2018 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Чего, уже все банки перешли на No-SQL? Или исследователи и наука начали подзабивать на структурированность и математическую точность? No-SQL уже как-то стандартизирован и сертифицирован для того, чтобы быть использованным большим бизнесом, оборонкой и госкомпаниями? Чего у вас там за бизнес, который все уже расставил, и по каким местам? По туалетам что ли?
     
     
  • 7.20, лютый жабист__ (?), 11:19, 18/12/2018 [^] [^^] [^^^] [ответить]  
  • –1 +/
    >No-SQL уже как-то стандартизирован

    А этот ваш SQL когда стандартизируют? :D А то в орацле8 один запрос, в орацле11 другой, в слона третий, а мускуль вообще половину не умеет.

     
  • 6.21, Аноним (10), 11:39, 18/12/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Вот уж нет Лови минус Тоже частично жабист, но больше быдлоораклоид Запросы т... большой текст свёрнут, показать
     
     
  • 7.24, лютый жабист__ (?), 12:05, 18/12/2018 [^] [^^] [^^^] [ответить]  
  • –3 +/
    >но больше быдлоораклоид

    Не думаю, что вышенаписанная отвратительная простыня сработает для например API ElasticSearch

    QueryBuilder qbPersonal = QueryBuilders.boolQuery()
                        .must(queryDate)
                        .should(QueryBuilders.boolQuery()
                                .should(QueryBuilders.matchPhraseQuery("text", "тут фразко"))
                                .should(QueryBuilders.matchQuery("text", "словечко"))
                                .should(QueryBuilders.matchQuery("text", "другое"))
                                .must(QueryBuilders.matchQuery("text", "печалька"))
                                .minimumShouldMatch(1))
                        .should(QueryBuilders.boolQuery()
                                .should(QueryBuilders.queryStringQuery("\"перестановочка допускается\"~2"))
                                .should(QueryBuilders.queryStringQuery("\"иНечеткийПоиск\"~"))
                                .minimumShouldMatch(1))
                        .minimumShouldMatch(1);

    А внезапно бывают и другие NOSQL, например монго API:
    List<BasicDBObject> argsList = new ArrayList<>();
    туда просто накидал разных аргументов, потом как угодно склеили (or/and/exists/in итд)
    argsListUL.add(new BasicDBObject("blabla1", bubu));
    и выполнили, на входе сразу собранные объекты.

    Про api Neo4j вообще молчу, можно наследовать траверсер и по графу ходить по своим правилам.

    Ваш лохматый SQL закапывайте уже, осиляторы....

     
     
  • 8.32, Аноним (10), 16:59, 18/12/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Вот оно, перескакивание на другую тему обсуждения, когда поймали на лжи Лови ... текст свёрнут, показать
     
     
  • 9.44, VladSh (?), 13:19, 19/12/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Всё нужно рассматривать в комплексе И учитывать скорость операций тоже ... текст свёрнут, показать
     
  • 7.25, VladSh (?), 13:22, 18/12/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Поддерживаю лютого жабиста - для динамических выборок всё это безнадёжно устарело.
     
     
  • 8.33, Аноним (10), 17:20, 18/12/2018 [^] [^^] [^^^] [ответить]  
  • +/
    А если большинство разработчиков - ораклопогроммисты , логика обработки данных ... текст свёрнут, показать
     
     
  • 9.43, VladSh (?), 13:18, 19/12/2018 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Вот это-то и печально Когда логика вне БД, то можно без серьёзных проблем мигри... текст свёрнут, показать
     
     
  • 10.48, Аноним (48), 22:51, 19/12/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Когда вся логика в БД можно без проблем мигрировать с одного сервера приложений ... текст свёрнут, показать
     
     
  • 11.50, лютый жабист__ (?), 09:25, 20/12/2018 [^] [^^] [^^^] [ответить]  
  • –2 +/
    Тут SQLщикам надо было просто помолчать Переносимость кода в javaEE просто на п... текст свёрнут, показать
     
     
  • 12.52, Аноним (48), 14:46, 21/12/2018 [^] [^^] [^^^] [ответить]  
  • +/
    У Оракла переносимость PL SQL идеальная Куда встанет СУБД Оракл там и будет раб... текст свёрнут, показать
     
  • 11.51, Аноним (10), 13:33, 20/12/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Вот именно На одном из прошлых мест работы сначала была двузвенка, но основная ... текст свёрнут, показать
     
  • 6.26, anonymous (??), 13:40, 18/12/2018 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Жирнота-то какая, жирнота.
     
  • 4.31, Аноним84701 (ok), 16:47, 18/12/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > SQL как и HTML это языки не для программистов, а околокомпутерного сброда.
    > У нормального программиста многостраничные портянки с RANK да PARTITION BY вызывает батхёрт.

    "Нормальный" – это который в свое время прогулял реляционную алгебру и исчисление и теперь считает бывший Structured English Query Language (да-да, само название говорит уже о целевой аудитории - оно делалось для пользователей) непонятной и запутанной магией? :)

     
  • 4.45, Аноним (48), 22:46, 19/12/2018 [^] [^^] [^^^] [ответить]  
  • +/
    жЫр
     
  • 2.3, Аноним (3), 23:58, 17/12/2018 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Когда не понимаешь, что области применения реляционок и nosql - различаются
     
     
  • 3.4, brzm (ok), 00:54, 18/12/2018 [^] [^^] [^^^] [ответить]  
  • –9 +/
    Когда не понимаешь, что нет :)
     
     
  • 4.29, Аноним (3), 15:07, 18/12/2018 [^] [^^] [^^^] [ответить]  
  • +/
    Ну если в вашем мире - нет, то я могу лишь пособолезновать
     
  • 2.8, bunta (?), 07:19, 18/12/2018 [^] [^^] [^^^] [ответить]  
  • +/
    SQL и документоорентированные БД решают разные задачи. Это как говорить "машина для тех, кто не освол самолет"
     

  • 1.5, Аноним (5), 01:47, 18/12/2018 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    > приняли решение полностью запретить изменение ключевых настроек СУБД через API. Настройки теперь могут быть изменены только при наличии shell-доступа к серверу

    Замшелые ретрограды! Прогресс не остановить!!!!1

     
     
  • 2.15, Аноним (15), 10:29, 18/12/2018 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Что мешает написать cgi-скрипт?
     
     
  • 3.38, Аноним (38), 18:55, 18/12/2018 [^] [^^] [^^^] [ответить]  
  • +/
    >> Прогресс не остановить!!!!1
    > Что мешает написать cgi-скрипт?

    Скрипт остановки прогресса? :)

     
  • 2.41, Аноним (10), 09:28, 19/12/2018 [^] [^^] [^^^] [ответить]  
  • +/
    (бабка на скамейке у подъезда, шёпотом, глядя исподлобья): - Ничего, ничего... Сейчас ваш прогресс прокрутит Большую чОрную Дыру в Большом Адронном Коллайдере и сам собой остановится... Или киданёт одну страпельку и усё, станет прогресс странным...
     

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



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

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