Berkeley DB

редактировать
Программная библиотека, предоставляющая встроенную базу данных для данных типа "ключ-значение"
Berkeley DB
Автор (ы) Марго Зельцер и Кейт Бостик из Sleepycat Software
Разработчик (и) Sleepycat Software, позже Oracle Corporation
Первоначальный выпуск1994; 26 лет назад (1994)
Стабильный выпуск
Core18.1.40
JE7.5.11
XML6.1.4
Написано наC
Операционная система Windows, Unix-like
Размер ~ 1244 kB скомпилирована в Windows x86
Тип Встроенная база данных, База данных NoSQL
Лицензия Двойная лицензия (Стандартная общественная лицензия GNU Affero и коммерческая разрешительная лицензия) (версия 6.x и выше). Лицензия Sleepycat (версии 2.0-5.x). Лицензия BSD с 4 пунктами (версии 1.x) / JE под лицензией Apache License, Версия 2.0.
Веб-сайтwww.oracle.com / database / berkeley-db /

Berkeley DB (BDB ) - это программное обеспечение библиотека, предназначенная для обеспечения высокопроизводительной встроенной базы данных для данных ключ / значение. Berkeley DB написан на C с привязками API для C ++, C#, Java, Perl, PHP, Python, Ruby, Smalltalk, Tcl и многие другие языки программирования. BDB хранит произвольные пары ключ / данные в виде массивов байтов и поддерживает несколько элементов данных для одного ключа. Berkeley DB не является реляционной базой данных, хотя имеет расширенные функции базы данных, включая транзакции базы данных, управление параллельным выполнением нескольких версий и ведение журнала с упреждающей записью.

BDB может поддерживать тысячи одновременных потоков управления или параллельных процессов, управляющих базами данных размером до 256 терабайт, в самых разных операционных системах, включая большинство Unix-подобных и Windows систем и операционных систем реального времени.

BDB коммерчески поддерживалась и разрабатывалась Sleepycat Software с 1996 по 2006 год. Эта компания была приобретена Oracle Corporation в Февраль 2006 г., когда продолжается разработка и продажа продукции Berkeley DB.

Содержание

  • 1 Origin
  • 2 Архитектура
  • 3 Редакции
  • 4 Программы, использующие Berkeley DB
    • 4.1 Предыдущие пользователи
  • 5 Лицензирование
  • 6 См. Также
  • 7 Ссылки
  • 8 Внешние ссылки

Источник

Berkeley DB возник в Калифорнийском университете в Беркли как часть BSD, версии Беркли. Операционная система Unix. После 4.3BSD (1986) разработчики BSD попытались удалить или заменить весь код, происходящий из исходного ATT Unix, от которого была получена BSD. При этом им пришлось переписать пакет базы данных Unix. Зельцер и Йигит создали новую базу данных, не обремененную никакими патентами ATT: дисковую хэш-таблицу , которая превзошла существующие библиотеки dbm. Сама Berkeley DB была впервые выпущена в 1991 году, а затем была включена в 4.4BSD. В 1996 году Netscape попросил авторов Berkeley DB улучшить и расширить библиотеку до версии 1.86, чтобы удовлетворить требованиям Netscape к серверу LDAP и для использования в Netscape. браузер. Этот запрос привел к созданию Sleepycat Software. Эта компания была приобретена Oracle Corporation в феврале 2006 года, которая продолжает разрабатывать и продавать Berkeley DB.

С момента своего первого выпуска Berkeley DB прошла через различные версии. Каждый основной цикл выпуска представляет собой одну новую основную функцию, которая обычно накладывается на более ранние функции, чтобы добавить функциональность к продукту. Релизы 1.x ориентированы на управление хранением данных типа ключ / значение и называются «хранилищем данных» (DS). В выпусках 2.x добавлена ​​система блокировки, обеспечивающая одновременный доступ к данным. Это то, что известно как «одновременное хранилище данных» (CDS). В выпусках 3.x добавлена ​​система регистрации транзакций и восстановления, которая называется «Хранилище транзакционных данных» (TDS). В выпусках 4.x добавлена ​​возможность репликации записей журнала и создания распределенной высокодоступной базы данных с одним главным и несколькими репликами. Это называется набором функций «Высокая доступность» (HA). Развитие Berkeley DB иногда приводило к незначительным изменениям API или форматов журналов, но очень редко меняли форматы баз данных. Berkeley DB HA поддерживает онлайн-обновления от одной версии к другой, сохраняя возможность читать и применять записи журнала предыдущего выпуска.

Операционные системы FreeBSD и OpenBSD продолжают использовать Berkeley DB 1.8x по соображениям совместимости; Операционные системы на основе Linux обычно включают несколько версий для приложений, все еще использующих старые интерфейсы / файлы.

Начиная с версии 6.0.21 (Oracle 12c), все продукты Berkeley DB лицензируются в соответствии с GNU AGPL. Berkeley DB JE 7.3.7 находится под лицензией Apache License версии 2.0. Ранее Berkeley DB распространялся в соответствии с 4-пунктами лицензии BSD (до версии 2.0) и общественной лицензии Sleepycat, которая является OSI -утвержденной лицензией с открытым исходным кодом., а также одобренная FSF лицензия на свободное программное обеспечение. Продукт поставляется с полным исходным кодом, сценарием сборки, набором тестов и документацией. Качество кода и общая полезность наряду с условиями лицензирования привели к его использованию во множестве бесплатного программного обеспечения с открытым исходным кодом. Те, кто не желает соблюдать условия GNU AGPL или использовать старую версию с общественной лицензией Sleepycat, имеют возможность приобрести другую проприетарную лицензию для распространения у Oracle Corporation. Этот метод называется двойным лицензированием. Различные версии Berkeley DB (DB, JE, XML) могут иметь разные условия лицензирования.

Berkeley DB включает интерфейсы совместимости для некоторых исторических библиотек баз данных Unix: dbm, ndbm и hsearch (библиотека System V и POSIX для создания in-memory хэш-таблицы ).

Архитектура

Berkeley DB имеет архитектуру заметно проще, чем у других систем баз данных, таких как системы управления реляционными базами данных. Например, как SQLite, он не основан на модели сервер / клиент и не обеспечивает поддержку сетевого доступа - программы обращаются к базе данных с помощью внутрипроцессных вызовов API. Добавлен Oracle поддержка SQL в выпуске 11g R2 на основе популярного API SQLite путем включения версии SQLite в Berkeley DB (для хранения используется Berkley DB). Существует сторонняя поддержка PL / SQL в Berkeley DB через коммерческий продукт под названием Metatranz StepSqlite.

Программа, имеющая доступ к базе данных, может свободно решать, как данные должны быть сохранены в записи. Berkeley DB не накладывает ограничений на запись данные d. И запись, и ее ключ могут иметь длину до четырех гигабайт.

Несмотря на простую архитектуру, Berkeley DB поддерживает многие расширенные функции базы данных, такие как ACID транзакции, детализированная блокировка, горячая резервные копии и репликация.

Редакции

Имя «Berkeley DB» присваивается трем различным продуктам:

  1. Berkeley DB - текущая версия по состоянию на июнь 2018 года - 18.1.
  2. Berkeley DB Java Edition - текущая версия по состоянию на ноябрь 2017 г. - 7.5.11
  3. Berkeley DB XML - текущая версия по состоянию на ноябрь 2017 г. - 6.1.4

Каждая редакция имеет отдельную базу данных библиотеки, несмотря на общий брендинг. Первая - это традиционная Berkeley DB, написанная на C. Она содержит несколько реализаций базы данных, включая B-tree и одну построенную на основе расширяемого хеширования. Он поддерживает несколько языковых привязок, включая C / C ++, Java (через JNI), C #.NET, Perl и Python.

Berkeley DB Java Edition (JE) - это чистая библиотека управления базами данных Java.. Его дизайн напоминает Berkeley DB, но не повторяет его в точности, и имеет набор функций, который включает в себя многие из тех, что есть в традиционной Berkeley DB, и другие, специфичные для Java Edition. Он имеет архитектуру хранения со структурированными журналами, что придает ему различные характеристики производительности и параллелизма. Доступны три API: уровень прямого сохранения, который представляет собой «обычные старые объекты Java» (POJO); тот, который основан на Java Collections Framework (подход с сохранением объекта); и один основан на традиционном API Беркли DB. Доступна опция высокой доступности Berkeley DB Java Edition (репликация). Обратите внимание, что традиционный Berkeley DB также поддерживает Java API, но делает это через JNI и, следовательно, требует установленной собственной библиотеки.

База данных XML Berkeley DB специализируется на хранении XML-документов, поддерживая XQuery через. Он реализован как дополнительный уровень поверх (устаревшей версии) Berkeley DB и библиотеки Xerces. DB XML написан на C ++ и поддерживает привязки нескольких языков, включая C ++, Java (через JNI), Perl и Python.

. Программы, использующие Berkeley DB

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

  • Bitcoin Core - первая реализация биткойн криптовалюты сохраняет использование Berkeley DB 4.8 2009 года для одной функции
  • Bogofilter - Бесплатный / открытый фильтр спама, который сохраняет свои списки слов с использованием Berkeley DB по умолчанию
  • - Уровень доступа к реляционной базе данных с открытым исходным кодом, который может дополнительно использовать Berkeley DB
  • Citadel - Бесплатная платформа с открытым исходным кодом для группового программного обеспечения, которая хранит все свои хранилища данных, включая базу сообщений, в Berkeley DB
  • Jabberd2 - Сервер XMPP
  • KDevelop - IDE для Unix-подобных операционных систем
  • Oracle NoSQL - Распределенная база данных ключей NoSQL
  • Oracle Retail Predictive Сервер приложений (RPAS) - платформа, используемая Oracle Retail для реализации решений для розничного финансового планирования, планирования / ранжирования товаров и планирования цепочки поставок
  • Sendmail - популярный MTA для Linux / Unix systems
  • Spamassassin - приложение для защиты от спама
  • Sun Grid Engine - бесплатная распределенная система управления ресурсами с открытым исходным кодом
  • Voldemort - A NoSQL распределенная база данных «ключ-значение», которая может дополнительно использовать BDB в качестве внутреннего хранилища

Предыдущие пользователи

Лицензирование

Berkeley DB V2.0 и выше доступен под двойная лицензия :

  1. коммерческая лицензия Oracle с профессиональной поддержкой
  2. Лицензия с открытым исходным кодом

переход на AGPL привел к тому, что основные дистрибутивы GNU / Linux, такие как Debian, полностью отказались от использования Berkeley DB, отдав предпочтение Lightning Memory-Mapped Database (LMDB). Обоснование этого состоит в том, что использование кода AGPL коммерческими пользователями было бы неприемлемым, поскольку они были бы вынуждены предоставлять свой исходный код пользователям путем простого обновления программного обеспечения.

См. Также

  • Портал бесплатного программного обеспечения с открытым исходным кодом

Ссылки

Внешние ссылки

Последняя правка сделана 2021-05-12 12:59:18
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте