Является ли Berkeley DB XML жизнеспособной бэкэнд базы данных?

StackOverflow https://stackoverflow.com/questions/1493341

Вопрос

По-видимому, BDB-XML существует как минимум с 2003 года, но я только недавно наткнулся на него на веб-сайте Oracle: Беркли DB XML. Анкет Вот реклама:

Oracle Berkeley DB XML-это открытая база данных XML с открытым исходным кодом с доступом на основе Xquery к документам, хранящимся в контейнерах и индексированной на основе их содержания. Oracle Berkeley DB XML построен на вершине Оракула Беркли Д.Б. и наследует свои богатые функции и атрибуты. Как и Oracle Berkeley DB, он работает в процессе с приложением без необходимости администрирования человека. Oracle Berkeley DB XML добавляет анализатор документов, индексатор XML и двигатель Xquery на вершине DB Oracle Berkeley, чтобы обеспечить самый быстрый, наиболее эффективный поиск данных.

Для меня кажется, что основные идеи технически обоснованы и, вероятно, более зрелыми, чем более новые DBS на основе документов, такие как CouchDB или MongoDB. Насколько я могу определить, он поддерживает C, C ++, Ruby и Perl. У него даже есть HA-капущения, такие как автоматическая репликация, используя модель Master/Slave с автоматическими выборами.

Тем не менее, я не могу найти никаких проектов, которые их используют. Есть ли что -то в корне не так? Лицензия слишком обременительно? Это слишком сложно?

Почему он не используется?

Это было полезно?

Решение

Раньше я был менеджером по продуктам для Berkeley DB Products в Oracle. Я работаю над этими базами данных BDB уже более восьми лет, я написал «Blurb», которую вы скопировали в свой вопрос.

Коммерчески мы используем в (неэксупный список, недалеко от моей головы): - Autodesk использует BDB XML в MapQuest - Farelogix использует BDB XML для системы резервирования - Starwood Hotels использует BDB XML для управления информацией о свойствах, которыми они управляют. - Juniper Networks использует BDB XML в Netscreen Security Manager - многие из которых я не могу назвать из -за ограничений по контракту ... - и так далее ...

Berkeley DB XML был относительно игнорирован в мире с открытым исходным кодом, почему я понятия не имею. Есть несколько проектов здесь и там использовали его, ничего, что я знаю, я знаю. Я недавно видел изящное сообщение в блоге о том, как использовать BDB XML из EMACS. После настройки вы можете запустить операторы Xquery над XML интерактивно в текстовом редакторе. Тем не менее, это очень жизнеспособно для коммерческого и открытого исходного использования.

XQILLA - это проект, созданный инженерами BDB XML из нескольких других проектов XML, которые мы объединили вместе на протяжении многих лет. Мы открываем Sourced (Apache 2.0 License) XQILLA, потому что это отличная библиотека XQUERY и XML. Мы компания базы данных, поэтому часть, которая берет XML после того, как она была проанализирована и организует ее в наши базы данных BTREE, а также работу по оптимизации запросов, индексации, статистике и целу Над BDB BTREE, склеивая их вместе в BDB XML. Не стесняйтесь использовать его, если он решает вашу проблему, это вообще нет базы данных.

Продукт, созданный с нуля для XML, обычно имеет несколько транзакционных структур данных в своем ядре, которые управляют информацией на диске. Не так много оптимизации, которую мы еще не сделали в Беркли, и использовали в Беркли DB XML. Сказать, что база данных, созданная с нуля для управления XML, будет значительно лучше, чем BDB XML говорит, что в Беркли не хватает, я не думаю, что здесь не существует защитный аргумент, но я готов узнать, если У кого -то есть информация о одновременной транзакционной структуре данных, критической для эффективного хранения XML, которое BDB еще не реализует.

Существует база данных Java XML, у нас есть JAVA JNI API, если хотите, и мы, как правило, отбиваем штаны, существуют в тестах производительности, стабильности и масштабируемости.

Sedna-хорошая база данных XML, это Apache 2.0, так что это не двойная лицензия, это просто программное обеспечение Floss. Я бы предложил вам сравнить это с BDB XML, вы можете быть удивлены.

MarkLogic - это отличный сервер базы данных XML/XQUERY, они создали очень прочный продукт. Это не библиотека программного обеспечения, это сервер. Существуют значительные различия между BDB XML и MarkLogic, но они оба являются коммерчески доступными - только BDB XML является открытым исходным кодом.

Кто -то упомянул блог Эллиота Расти Гарольда о состоянии баз данных о состоянии XML, будьте осторожны с ним около 2007 года - эй, разве это не до того, как существовала какая -либо база данных NOSQL? ;-)

Взгляните на Кимбро Сткен Старый, но все еще актуальный обзор (превратился в белый документ от Oracle), это хорошо, но также датировано. «Используйте собственную базу данных XML для ваших данных XML: решить, когда нативная база данных XML на основе XQUERY лучше базы данных SQL»

Реальная власть за эти годы была Рон Бурретт. Анкет Ему есть что сказать по этому вопросу.

MongoDB и CouchDB находятся в другом сегменте рынка. Они делают распределение, разделенные, в конечном итоге последовательное управление данными в базовом стиле (некислоты), а некоторые думают, что делают это очень хорошо. Я думаю, что они молоды, присяжные все еще нет. Они хорошо стартуют, и я надеюсь, что они продолжат расти, хранение данных - это трудно получить правильно, а один размер не соответствует проблеме/потребностям каждого. Распределенная история BDB XML построена на одном мастере, Multe-Replica всегда последовательная (если хотите) на основе журнала репликации и алгоритмы выборов на основе Paxos, когда мастер снят сбой. Мы не разделяем данные, каждый узел содержит одни и те же данные (вся база данных). Мы не разрешаем писать повсюду, только у мастера. Мы поддерживаем больше, чем TCP/IP для репликации (черт возьми, вы можете использовать на своем сервере аппаратную шину на свой сервер). Мы построили наш продукт HA, чтобы решить масштабируемость чтения, доступность системы и неисправность. Распределенные системы NOSQL предназначены для управления данными. Выбор хорош, верно? :)

XML как схема данных и Xquery как язык для доступа и управления контентом XML был и по -прежнему остается очень успешным решением. Может быть, не столько на более публичных веб -сайтах, использующих решения NOSQL в наши дни (что для меня нормально и интересно), но в большей степени в управлении документами, финансами, геномике, биоинформатике, обменом данными, обменом сообщениями и многим другим. XML может быть нишевой базой данных по сравнению с SQL/реляционными продуктами, но, безусловно, гораздо более успешна, чем базы данных объектов, или любой новый ребенок в решении базы данных Block NOSQL. Каждое решение для хранения имеет свое место, XML будет продолжать делать полезные вещи далеко в будущем.

В конце концов, я надеюсь, что вы выберете базу данных, соответствующие вашим потребностям.

Другие советы

Одна вещь, которую нужно помнить, это лицензия Беркли Б.Б. Если вы не собираетесь открыть свой проект, вам нужно будет купить лицензию у Oracle, поэтому я подозреваю, что вы не видите его больше. В противном случае все базы данных Беркли DB довольно превосходны. Я склонен использовать их для всего, что я не собираюсь распространять (в домашних проектах).

Из моего опыта в Berkeley DB XML имеет много обещаний и много соответствующих вариантов использования. Но вы должны быть осторожны, чтобы не ожидать, что это будет работать во всех случаях. Обратите внимание, что последним выпуском был Беркли DB XML 2.5.16 22 декабря 2009 года.

Технология, на которой она основана, Berkeley DB, очень надежная и ослепительно быстрая, если вы правильно настроите ее для своего варианта использования. Есть много деталей, чтобы получить правильно (например, включение транзакций, ведение журнала, понимание всех флагов, необходимых для работы MVCC). Я считаю, что у большинства людей есть проблемы из -за этой сложности.

Я столкнулся с несколькими другими недостатками, хотя. Самым большим является то, что планировщик запросов не будет использовать индексы при сортировке. Это означает, что вы не можете сделать довольно распространенный шаблон доступа к данным, который эквивалентен:

SELECT * FROM table ORDER BY time DESC LIMIT 100;

Если вы сделаете этот Berkeley DB проверит все значения времени на диске перед заказом, что делает его медленным, когда вы выйдете за пределы нескольких десятков тысяч узлов. Кто -то еще сообщил об этом здесь:

https://forums.oracle.com/forums/message.jspa?messageid=9754987#9754987

Вы также можете перечислить любые индексы напрямую, но тогда вы теряете возможность выполнять специальные запросы.

Также сообщается на форумах, это странное поведение, связанное с типами индексов и производительности:

https://forums.oracle.com/forums/message.jspa?messageid=97530222#9753022

Таким образом, хотя доступ к ключе является быстрым и надежным, будьте осторожны с его незрелым планировщиком запросов.

Зависит от того, каковы ваши потребности. Я не буду рекомендовать ни одного нативного XML DB над другим, но я могу сказать вам, что издательская индустрия является примером целого сектора, который в значительной степени оставил реляционные базы данных и перенесла большое время в нативные базы данных XML для обработки содержания своих публикаций Анкет Наиболее заметный (и самый дорогой) - тот, который от Marklogic. EssectDB - это открытый открытый, который, кажется, получает некоторую тягу.

Вот отличная статья на эту тему одного из выдающихся гуру XML, Эллиота Расти Гарольда.http://cafe.elharo.com/xml/the-state-ofnative-xml-databases/

Лучшие репозитории XML - это те, которые построены с нуля, чтобы поддержать XML, как Марклогик или же существует.

Тем не менее, двигатель хранения BDB-XML является почтенным двигателем Беркли DB, одним из самых широко распространенных встроенных баз-двигателей. Это маленькое, быстрое и стабильное.

BDB-XML Сам, безусловно, способный продукт. Ранее он был продан под названием SleepyCat, если это поможет вам найти какие -либо ссылки. Это комбинация двигателя хранения BDB с Xqilla Xquery Engine.

Также вы можете найти больше информации о поиске Xqilla. Анкет Это довольно мощный двигатель, и все еще открытый исходный код.

*] «Лучшее», конечно, является субъективным термином.

Итак, в заключение, это все причины, по которым BDB-XML не кажется широко используемым:

  • Только позволяет только встроенные, локальные базы данных (хотя есть положения для репликации мастер-раба)
  • Не бесплатно для коммерческого использования
  • Многие конкурирующие продукты, которые были построены с нуля, чтобы поддержать XML

Кажется, нет никакой причины не использовать его, но также не так много, чтобы выделить его из конкурентов. Кроме того, недавний соревнование имеет больше «ох, блестящий!» Апелляция и базы данных XML сами по -прежнему являются нишевым рынком.

Я был за то же самое в последнее время и наткнулся на Седна XML СУБД.

"Есть ли что -то в корне не так?"

Да. Это XML.

И, к сожалению, это означает, что те, кто изобрел его, не удосужились взглянуть на силу уже существующих концепций и технологий, таких как, скажем, реляционная алгебра и реляционное исчисление.

Делать лучше, чем это, это не тривиальная задача (и это вежливо), и каждый, кто пробовал до сих пор, потерпел неудачу.

Это должно что -то сказать.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top