Jump to content

Беркли ДБ

Беркли ДБ
Оригинальный автор(ы) Марго Зельцер и Кейт Бостик из Sleepycat Software
Разработчик(и) Sleepycat Software , позже Oracle Corporation
Первоначальный выпуск 1994 год ; 30 лет назад ( 1994 )
Стабильная версия
18.1.40 [1] / 29 мая 2020 г .;
4 года назад
( 29.05.2020 )
Написано в С
Операционная система Windows , Unix-подобный
Размер ~1244 КБ , скомпилировано в Windows x86.
Тип Встроенная база данных , База данных NoSQL
Лицензия Двойная лицензия ( GNU Affero General Public License и проприетарная лицензия).
Веб-сайт www .оракул /база данных /технологии /связанный /berkeleydb .html

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]

  1. Berkeley DB, библиотека базы данных C, которая является предметом этой статьи.
  2. Беркли БД Java Edition, [15] чистая библиотека Java, дизайн которой смоделирован по образцу библиотеки C, но в остальном не связан с ней
  3. Беркли БД XML, [16] программа C++, поддерживающая XQuery и включающая устаревшую версию библиотеки базы данных C.

Программы с открытым исходным кодом все еще используют Berkeley DB

[ редактировать ]

BDB когда-то была очень широко распространена, но с 2013 года ее использование резко упало (см. раздел лицензирования ). Известное программное обеспечение, которое до сих пор использует Berkeley DB для хранения данных, включает:

Операционные системы и языки с открытым исходным кодом, такие как 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 и выше доступна по двойной лицензии :

  1. Коммерческая лицензия Oracle [23]
  2. GNU AGPL v3 . [24]

Переход с лицензии с открытым исходным кодом в 2013 году с лицензии Sleepycat на AGPL оказал серьезное влияние на программное обеспечение с открытым исходным кодом. Поскольку BDB — это библиотека, любое приложение, ссылающееся на нее, должно находиться под лицензией, совместимой с AGPL. Многие приложения с открытым исходным кодом и все приложения с закрытым исходным кодом необходимо будет повторно лицензировать, чтобы они стали совместимыми с AGPL, что было неприемлемо для многих разработчиков и операционных систем с открытым исходным кодом. К 2013 году существовало много альтернатив BDB, и Debian Linux был типичным в своем решении полностью отказаться от Berkeley DB, отдав предпочтение базе данных Lightning Memory-Mapped Database (LMDB). [25]

  1. ^ «Загрузки Oracle Berkeley DB» . Проверено 27 сентября 2020 г.
  2. ^ Справочное руководство Berkeley DB: Чем не является Berkeley DB? . Doc.gnu-darwin.org (31 мая 2001 г.). Проверено 18 сентября 2013 г.
  3. ^ «Основной выпуск: Berkeley DB 12gR1 (12.1.6.0)» . Проекты с открытым исходным кодом в Oracle . 10 июня 2013 г. Архивировано из оригинала 5 декабря 2013 г. Проверено 11 апреля 2021 г.
  4. ^ Натан, Уиллис (10 июля 2013 г.). «Debian, Berkeley DB и AGPLv3» . Еженедельные новости Linux . Архивировано из оригинала 22 июля 2013 г.
  5. ^ Jump up to: а б Олсон, Майкл А.; Бостик, Кейт; Зельцер, Марго (1999). «Беркли ДБ» (PDF) . Учеб. FREENIX Track, Ежегодная техническая конференция USENIX. Конф . Архивировано (PDF) из оригинала 9 октября 2022 г. Проверено 20 октября 2009 г.
  6. ^ Зельцер, Марго; Йигит, Озан (1991). «Новый пакет хеширования для UNIX» . Учеб. USENIX Зимняя технология. Конф . Проверено 20 октября 2009 г.
  7. ^ Брунелли, Марк (28 марта 2005 г.). «Букварь по Беркли DB» . Новости корпоративного Linux . Архивировано из оригинала 6 сентября 2008 года . Проверено 28 декабря 2008 г.
  8. ^ [Объявление Berkeley DB] Основной выпуск: Berkeley DB 12gR1 (12.1.6.0) . Проверено 5 июля 2013 г. (Несмотря на упоминание AGPL, в исходном архиве все еще декларируются условия пункта BSD-4 в версии 6.0.19.)
  9. ^ «Снимок исходного кода версии 6.0.19 на тот момент» . 13 июня 2013 г.
  10. ^ «Лицензия Sleepycat» . Инициатива открытого исходного кода . 31 октября 2006 года . Проверено 28 декабря 2008 г.
  11. ^ «Лицензии» . Фонд свободного программного обеспечения . 10 декабря 2008 года. Архивировано из оригинала 16 декабря 2008 года . Проверено 28 декабря 2008 г.
  12. ^ «Совместимость с историческими интерфейсами UNIX» . docs.oracle.com . Проверено 20 ноября 2019 г.
  13. ^ «Твиттер/Грегори Берд: @humanications Мы не р...»
  14. ^ «Загрузки Oracle Berkeley DB: последние производственные выпуски» .
  15. ^ «Oracle Berkeley DB Java Edition» . Архивировано из оригинала 11 июля 2017 г.
  16. ^ «Беркли БД XML» . Архивировано из оригинала 18 июля 2016 г.
  17. ^ «bogofilter — код быстрого байесовского фильтра спама (Git)» . sourceforge.net . Проверено 17 мая 2024 г.
  18. ^ "dbopen(3)" . Страницы руководства FreeBSD . Проверено 18 апреля 2023 г.
  19. ^ «Страницы руководства OpenBSD» . dbopen(3) . Проверено 18 апреля 2023 г.
  20. ^ "pwd_mkdb(8)" . Страницы руководства OpenBSD . Проверено 18 апреля 2023 г.
  21. ^ Веб-мастер, Debian. «Debian — Подробная информация о пакете libdb5.3 в sid» . Debian — Пакеты . Проверено 18 апреля 2023 г.
  22. ^ «Обзор — rpms/libdb» . src.fedoraproject.org . Проверено 18 апреля 2023 г.
  23. ^ «Загрузка, информация о лицензии и продажах» . 30 ноября 2017 г.
  24. ^ «Основной выпуск: Berkeley DB 12gR1 (12.1.6.0)» . 10 июня 2013 года . Проверено 15 июля 2013 г.
  25. ^ Ондржей Суры (19 июня 2014 г.). «Цель нового проекта: избавиться от Berkeley DB (после Джесси)» . debian-devel (список рассылки). Дебиан .
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 2b657433949373f6d5e61decf2036ed2__1716742860
URL1:https://arc.ask3.ru/arc/aa/2b/d2/2b657433949373f6d5e61decf2036ed2.html
Заголовок, (Title) документа по адресу, URL1:
Berkeley DB - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)