Беркли ДБ
Оригинальный автор(ы) | Марго Зельцер и Кейт Бостик из Sleepycat Software |
---|---|
Разработчик(и) | Sleepycat Software , позже Oracle Corporation |
Первоначальный выпуск | 1994 год |
Стабильная версия | 18.1.40 [1] / 29 мая 2020 г |
Написано в | С |
Операционная система | Windows , Unix-подобный |
Размер | ~1244 КБ , скомпилировано в Windows x86. |
Тип | Встроенная база данных , База данных NoSQL |
Лицензия | Двойная лицензия ( GNU Affero General Public License и проприетарная лицензия). |
Веб-сайт | www |
Berkeley DB ( BDB ) — это баз данных программного обеспечения встроенная библиотека для данных «ключ-значение» , исторически значимая для программного обеспечения с открытым исходным кодом . Berkeley DB написан на языке C с привязками API для многих других языков программирования . BDB хранит произвольные пары ключ/данные в виде массивов байтов и поддерживает несколько элементов данных для одного ключа. Berkeley DB не является реляционной базой данных . [2] хотя он имеет функции базы данных, включая транзакции базы данных , управление многоверсионным параллелизмом и ведение журнала с упреждающей записью . BDB работает в самых разных операционных системах , включая большинство Unix-подобных и Windows -систем, а также операционных систем реального времени .
BDB получала коммерческую поддержку и разрабатывалась компанией Sleepycat Software с 1996 по 2006 год. Sleepycat Software была приобретена корпорацией Oracle в феврале 2006 года, которая продолжала разрабатывать и продавать библиотеку C Berkeley DB. В 2013 году Oracle повторно лицензировала BDB по AGPL. лицензии [3] [4] и выпустила новые версии до мая 2020 года. Bloomberg LP продолжает разработку форка версии BDB 2013 года в своей базе данных Comdb2 под исходной разрешительной лицензией Sleepycat .
Источник
[ редактировать ]Berkeley DB возникла в Калифорнийском университете в Беркли как часть BSD , версии операционной системы Unix , разработанной Беркли . После версии 4.3BSD (1986 г.) разработчики BSD попытались удалить или заменить весь код, происходящий из исходной версии Unix AT&T, на основе которой была создана BSD. При этом им пришлось переписать пакет базы данных Unix. [5] Зельцер и Йигит [6] на диске, создал новую базу данных, не обремененную никакими патентами AT&T: хеш-таблицу превосходящую по производительности существующие библиотеки dbm . Сама Berkeley DB была впервые выпущена в 1991 году и позже включена в состав 4.4BSD. [5] В 1996 году Netscape обратилась к авторам Berkeley DB с просьбой улучшить и расширить библиотеку (тогда до версии 1.86), чтобы она соответствовала требованиям Netscape к LDAP . серверу [7] и для использования в браузере Netscape . Этот запрос привел к созданию Sleepycat Software . Эта компания была приобретена корпорацией Oracle в феврале 2006 года.
Выпуски Berkeley DB 1.x ориентированы на управление хранилищем данных «ключ-значение» и называются «Хранилищем данных» (DS). В версиях 2.x добавлена система блокировки, обеспечивающая одновременный доступ к данным. Это так называемое «параллельное хранилище данных» (CDS). В версиях 3.x добавлена система регистрации транзакций и восстановления, называемая «Хранилище транзакционных данных» (TDS). В версиях 4.x добавлена возможность реплицировать записи журнала и создавать распределенную высокодоступную базу данных с одним главным сервером и несколькими репликами. Это называется набором функций «Высокая доступность» (HA). Эволюция Berkeley DB иногда приводила к незначительным изменениям API или форматам журналов, но форматы баз данных менялись очень редко. Berkeley DB HA поддерживает онлайн-обновления с одной версии на другую, сохраняя возможность чтения и применения записей журнала предыдущей версии.
Начиная с версии 6.0.21 (Oracle 12c), все продукты Berkeley DB лицензируются по лицензии GNU AGPL . [8] [9] Ранее Berkeley DB распространялась под лицензией BSD из 4 пунктов (до версии 2.0) и публичной лицензией Sleepycat, которая представляет собой OSI одобренную лицензию на открытый исходный код, а также FSF одобренную лицензию на свободное программное обеспечение . [10] [11] Продукт поставляется с полным исходным кодом, сценарием сборки, набором тестов и документацией. Комплексная функция вместе с условиями лицензирования привели к его использованию во множестве бесплатного программного обеспечения с открытым исходным кодом . Те, кто не желает соблюдать условия GNU AGPL или использовать более старую версию с публичной лицензией Sleepycat, имеют возможность приобрести другую проприетарную лицензию для распространения у Oracle Corporation . Этот метод называется двойным лицензированием .
Berkeley DB включает интерфейсы совместимости с некоторыми историческими библиотеками баз данных Unix: dbm , ndbm и hsearch ( библиотека System V и POSIX в памяти для создания хеш-таблиц ). [12]
Архитектура
[ редактировать ]Berkeley DB имеет архитектуру значительно проще, чем системы управления реляционными базами данных . Подобно SQLite и LMDB , он не основан на модели сервер/клиент и не обеспечивает поддержку доступа к сети — программы получают доступ к базе данных, используя внутрипроцессные вызовы API . Oracle добавила поддержку SQL в выпуске 11g R2 на основе популярного API SQLite, включив версию SQLite в Berkeley DB (она использует Berkeley DB для хранения). [13]
Программа, обращающаяся к базе данных, может свободно решать, как данные будут храниться в записи. Berkeley DB не накладывает никаких ограничений на данные записи. Запись и ее ключ могут иметь длину до четырех гигабайт.
Berkeley DB поддерживает такие функции базы данных, как ACID транзакции , детальную блокировку , горячее резервное копирование и репликацию .
Использование корпорацией Oracle названия «Berkeley DB»
[ редактировать ]Название «Berkeley DB» используется корпорацией Oracle для трех различных продуктов, только один из которых — BDB: [14]
- Berkeley DB, библиотека базы данных C, которая является предметом этой статьи.
- Беркли БД Java Edition, [15] чистая библиотека Java, дизайн которой смоделирован по образцу библиотеки C, но в остальном не связан с ней
- Беркли БД XML, [16] программа C++, поддерживающая XQuery и включающая устаревшую версию библиотеки базы данных C.
Программы с открытым исходным кодом все еще используют Berkeley DB
[ редактировать ]BDB когда-то была очень широко распространена, но с 2013 года ее использование резко упало (см. раздел лицензирования ). Известное программное обеспечение, которое до сих пор использует Berkeley DB для хранения данных, включает:
- Bogofilter – бесплатный спам- фильтр с открытым исходным кодом, который по умолчанию сохраняет списки слов с использованием Berkeley DB. [17]
- Citadel/UX — программное обеспечение для совместной работы (программы для обмена сообщениями и групповой работы), которое является прямым потомком Citadel семейства программ , которое стало популярным в 1980-х и 1990-х годах как платформа системы досок объявлений .
- Sendmail с открытым исходным кодом — бесплатный MTA , впервые выпущенный в 1983 году для систем Linux/Unix.
- Spamassassin – бесплатное антиспам-приложение с открытым исходным кодом.
Операционные системы и языки с открытым исходным кодом, такие как Perl и Python , по-прежнему поддерживают старые интерфейсы BerkelyDB. Операционные системы FreeBSD OpenBSD и поставляются с Berkeley DB 1.8x для поддержки dbopen()
[18] [19] вызов операционной системы, используемый программами паролей, такими как pwb_mkdb
. [20] операционные системы Linux, в том числе на базе Debian, [21] и Федора [22] поставлять библиотеки Berkeley DB 5.3.
Лицензирование
[ редактировать ]Berkeley DB версии 2.0 и выше доступна по двойной лицензии :
Переход с лицензии с открытым исходным кодом в 2013 году с лицензии Sleepycat на AGPL оказал серьезное влияние на программное обеспечение с открытым исходным кодом. Поскольку BDB — это библиотека, любое приложение, ссылающееся на нее, должно находиться под лицензией, совместимой с AGPL. Многие приложения с открытым исходным кодом и все приложения с закрытым исходным кодом необходимо будет повторно лицензировать, чтобы они стали совместимыми с AGPL, что было неприемлемо для многих разработчиков и операционных систем с открытым исходным кодом. К 2013 году существовало много альтернатив BDB, и Debian Linux был типичным в своем решении полностью отказаться от Berkeley DB, отдав предпочтение базе данных Lightning Memory-Mapped Database (LMDB). [25]
Ссылки
[ редактировать ]- ^ «Загрузки Oracle Berkeley DB» . Проверено 27 сентября 2020 г.
- ^ Справочное руководство Berkeley DB: Чем не является Berkeley DB? . Doc.gnu-darwin.org (31 мая 2001 г.). Проверено 18 сентября 2013 г.
- ^ «Основной выпуск: Berkeley DB 12gR1 (12.1.6.0)» . Проекты с открытым исходным кодом в Oracle . 10 июня 2013 г. Архивировано из оригинала 5 декабря 2013 г. Проверено 11 апреля 2021 г.
- ^ Натан, Уиллис (10 июля 2013 г.). «Debian, Berkeley DB и AGPLv3» . Еженедельные новости Linux . Архивировано из оригинала 22 июля 2013 г.
- ^ Jump up to: а б Олсон, Майкл А.; Бостик, Кейт; Зельцер, Марго (1999). «Беркли ДБ» (PDF) . Учеб. FREENIX Track, Ежегодная техническая конференция USENIX. Конф . Архивировано (PDF) из оригинала 9 октября 2022 г. Проверено 20 октября 2009 г.
- ^ Зельцер, Марго; Йигит, Озан (1991). «Новый пакет хеширования для UNIX» . Учеб. USENIX Зимняя технология. Конф . Проверено 20 октября 2009 г.
- ^ Брунелли, Марк (28 марта 2005 г.). «Букварь по Беркли DB» . Новости корпоративного Linux . Архивировано из оригинала 6 сентября 2008 года . Проверено 28 декабря 2008 г.
- ^ [Объявление Berkeley DB] Основной выпуск: Berkeley DB 12gR1 (12.1.6.0) . Проверено 5 июля 2013 г. (Несмотря на упоминание AGPL, в исходном архиве все еще декларируются условия пункта BSD-4 в версии 6.0.19.)
- ^ «Снимок исходного кода версии 6.0.19 на тот момент» . 13 июня 2013 г.
- ^ «Лицензия Sleepycat» . Инициатива открытого исходного кода . 31 октября 2006 года . Проверено 28 декабря 2008 г.
- ^ «Лицензии» . Фонд свободного программного обеспечения . 10 декабря 2008 года. Архивировано из оригинала 16 декабря 2008 года . Проверено 28 декабря 2008 г.
- ^ «Совместимость с историческими интерфейсами UNIX» . docs.oracle.com . Проверено 20 ноября 2019 г.
- ^ «Твиттер/Грегори Берд: @humanications Мы не р...»
- ^ «Загрузки Oracle Berkeley DB: последние производственные выпуски» .
- ^ «Oracle Berkeley DB Java Edition» . Архивировано из оригинала 11 июля 2017 г.
- ^ «Беркли БД XML» . Архивировано из оригинала 18 июля 2016 г.
- ^ «bogofilter — код быстрого байесовского фильтра спама (Git)» . sourceforge.net . Проверено 17 мая 2024 г.
- ^ "dbopen(3)" . Страницы руководства FreeBSD . Проверено 18 апреля 2023 г.
- ^ «Страницы руководства OpenBSD» . dbopen(3) . Проверено 18 апреля 2023 г.
- ^ "pwd_mkdb(8)" . Страницы руководства OpenBSD . Проверено 18 апреля 2023 г.
- ^ Веб-мастер, Debian. «Debian — Подробная информация о пакете libdb5.3 в sid» . Debian — Пакеты . Проверено 18 апреля 2023 г.
- ^ «Обзор — rpms/libdb» . src.fedoraproject.org . Проверено 18 апреля 2023 г.
- ^ «Загрузка, информация о лицензии и продажах» . 30 ноября 2017 г.
- ^ «Основной выпуск: Berkeley DB 12gR1 (12.1.6.0)» . 10 июня 2013 года . Проверено 15 июля 2013 г.
- ^ Ондржей Суры (19 июня 2014 г.). «Цель нового проекта: избавиться от Berkeley DB (после Джесси)» . debian-devel (список рассылки). Дебиан .
Внешние ссылки
[ редактировать ]- Механизмы баз данных
- Программное обеспечение для работы с базами данных для Linux
- Встроенные базы данных
- Бесплатные системы управления базами данных
- Бесплатное программное обеспечение, написанное на C.
- Базы данных «ключ-значение»
- NoSQL
- Программное обеспечение Oracle
- Структурированное хранилище
- Программное обеспечение, использующее лицензию GNU AGPL.