Беркли DB - Berkeley DB
Оригинальный автор (ы) | Марго Зельцер и Кейт Бостик из Sleepycat Software |
---|---|
Разработчики) | Sleepycat Software , позже Oracle Corporation |
Первый выпуск | 1994 |
Стабильный выпуск | 18.1.40 / 29 мая 2020 г .
|
Написано в | C |
Операционная система | Windows , Unix-подобный |
Размер | ~ 1244 КБ скомпилировано в Windows x86 |
Тип | Встроенная база данных , база данных NoSQL |
Лицензия |
Двойная лицензия ( Стандартная общественная лицензия GNU Affero и коммерческая (версия 6.x и выше) лицензия Sleepycat (версии 2.0-5.x) Лицензия BSD с 4 пунктами (версии 1.x) |
Веб-сайт | www |
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 год. Sleepycat Software была приобретена корпорацией Oracle в феврале 2006 года, которая продолжает разрабатывать и продавать библиотеку C Berkeley DB. В 2013 году Oracle повторно лицензировала BDB по лицензии AGPL . По состоянию на 2020 год Bloomberg LP продолжает разрабатывать форк BDB в своей базе данных Comdb2 под исходной разрешительной лицензией Sleepycat .
Источник
Berkeley DB возникла в Калифорнийском университете в Беркли как часть BSD , версии операционной системы Unix для Беркли . После 4.3BSD (1986) разработчики BSD попытались удалить или заменить весь код, происходящий из оригинальной AT&T Unix, от которой была получена BSD. При этом им пришлось переписать пакет базы данных Unix. Зельцер и Йигит создали новую базу данных, не обремененную никакими патентами AT&T: хеш-таблицу на диске, которая превосходит по производительности существующие библиотеки dbm . Сама Berkeley DB была впервые выпущена в 1991 году и позже была включена в 4.4BSD. В 1996 году Netscape обратилась к авторам Berkeley DB с просьбой улучшить и расширить библиотеку до версии 1.86, чтобы она соответствовала требованиям Netscape для сервера LDAP и для использования в браузере Netscape . Этот запрос привел к созданию Sleepycat Software . В феврале 2006 года эта компания была приобретена корпорацией Oracle Corporation , которая продолжает разрабатывать и продавать 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 распространялась под лицензией BSD с четырьмя пунктами (до версии 2.0) и общественной лицензией Sleepycat, которая является одобренной OSI лицензией с открытым исходным кодом, а также лицензией свободного программного обеспечения, одобренной FSF . Продукт поставляется с полным исходным кодом, сценарием сборки, набором тестов и документацией. Комплексная функция вместе с условиями лицензирования привели к ее использованию во множестве бесплатного программного обеспечения с открытым исходным кодом . Те, кто не желает соблюдать условия GNU AGPL или использовать старую версию с общественной лицензией Sleepycat, имеют возможность приобрести другую частную лицензию для распространения у Oracle Corporation . Этот метод называется двойным лицензированием .
Berkeley DB включает интерфейсы совместимости с некоторыми историческими библиотеками баз данных Unix: dbm , ndbm и hsearch ( библиотека System V и POSIX для создания хеш-таблиц в памяти ).
Архитектура
Berkeley DB имеет архитектуру заметно проще, чем у других систем баз данных, таких как системы управления реляционными базами данных . Например, как и SQLite , он не основан на модели сервер / клиент и не обеспечивает поддержку сетевого доступа - программы обращаются к базе данных с помощью внутрипроцессных вызовов API . Oracle добавила поддержку SQL в выпуске 11g R2 на основе популярного API SQLite, включив версию SQLite в Berkeley DB (для хранения используется Berkeley DB). Существует сторонняя поддержка PL / SQL в Berkeley DB через коммерческий продукт Metatranz StepSqlite .
Программа, обращающаяся к базе данных, может решить, как данные должны быть сохранены в записи. Berkeley DB не накладывает ограничений на данные записи. И запись, и ее ключ могут иметь длину до четырех гигабайт.
Несмотря на простую архитектуру, Berkeley DB поддерживает множество расширенных функций базы данных, таких как транзакции ACID , детальная блокировка , горячее резервное копирование и репликация .
Корпорация Oracle использует название "Berkeley DB"
Название «Berkeley DB» используется корпорацией Oracle для трех различных продуктов, два из которых не являются BDB:
- Berkeley DB, библиотека базы данных C, о которой идет речь в этой статье.
- Berkeley DB Java Edition, чистая библиотека Java, дизайн которой смоделирован по образцу библиотеки C, но в остальном не связан
- Berkeley DB XML, программа на C ++, которая поддерживает XQuery и включает устаревшую версию библиотеки базы данных C
Программы, использующие Berkeley DB
Berkeley DB предоставляет базовую систему хранения и поиска для нескольких серверов LDAP , систем баз данных и многих других проприетарных и бесплатных приложений с открытым исходным кодом. Известные программы, использующие Berkeley DB для хранения данных, включают:
- Bitcoin Core - первая реализация криптовалюты Bitcoin сохраняет использование Berkeley DB 4.8 2009 года для одной функции.
- Bogofilter - бесплатный спам- фильтр с открытым исходным кодом, который по умолчанию сохраняет свои списки слов, используя Berkeley DB.
- Citadel - бесплатная платформа для групповой работы с открытым исходным кодом, которая хранит все свои хранилища данных, включая базу сообщений, в Berkeley DB. Citadel находится под лицензией GPLv3, которая совместима с лицензированием Oracle BDB.
- Sendmail - популярный MTA для систем Linux / Unix
- Spamassassin - приложение для защиты от спама.
Лицензирование
Berkeley DB V2.0 и выше доступен по двойной лицензии :
- Коммерческая лицензия Oracle с профессиональной поддержкой
- Лицензия с открытым исходным кодом
- Berkeley DB и Berkeley DB XML
- V2.0 - V6.0.19 под лицензией Sleepycat License
- V6.0.20 и новее находится под лицензией GNU AGPL v3 .
- Berkeley DB и Berkeley DB XML
Переход на AGPL привел к тому, что основные дистрибутивы Linux, такие как Debian, полностью отказались от использования Berkeley DB, отдав предпочтение Lightning Memory-Mapped Database (LMDB). Обоснование этого состоит в том, что использование кода AGPL коммерческими пользователями было бы неприемлемым, так как они были бы вынуждены предоставлять пользователям свой исходный код путем простого обновления программного обеспечения.
использованная литература
внешние ссылки
- Oracle Berkeley DB
- Oracle Berkeley DB Загрузки
- Документация Oracle Berkeley DB
- Информация о лицензировании Oracle Berkeley DB
- Подводные камни лицензирования для технологических продуктов Oracle
- Сеть знаний о лицензировании Oracle
- Книга Беркли DB Химаншу Ядава
- Launchpad.net - Berkeley DB на Launchpad