Movatterモバイル変換


[0]ホーム

URL:


Jump to content
WikipediaThe Free Encyclopedia
Search

Berkeley DB

From Wikipedia, the free encyclopedia
Software library providing embedded database for key/value data
Berkeley DB
Original author(s)Margo Seltzer andKeith Bostic ofSleepycat Software
Developer(s)Sleepycat Software, laterOracle Corporation
Initial release1994; 31 years ago (1994)
Stable release
18.1.40[1] / May 29, 2020;
4 years ago
 (2020-05-29)
Written inC
Operating systemWindows,Unix-like
Size~1244kB compiled onWindowsx86
TypeEmbedded database,NoSQL Database
LicenseDual licensed (GNU Affero General Public License andproprietary license
Websitewww.oracle.com/database/technologies/related/berkeleydb.html

Berkeley DB (BDB) is anembedded databasesoftwarelibrary forkey/value data, historically significant inopen-source software. Berkeley DB is written inC with API bindings for many otherprogramming languages. BDB stores arbitrary key/data pairs as byte arrays and supports multiple data items for a single key. Berkeley DB is not arelational database,[2] although it has database features includingdatabase transactions,multiversion concurrency control andwrite-ahead logging. BDB runs on a wide variety ofoperating systems, including mostUnix-like andWindows systems, andreal-time operating systems.

BDB was commercially supported and developed bySleepycat Software from 1996 to 2006. Sleepycat Software was acquired byOracle Corporation in February 2006, who continued to develop and sell the C Berkeley DB library. In 2013 Oracle re-licensed BDB under theAGPL license[3][4] and released new versions until May 2020.Bloomberg L.P. continues to develop afork of the 2013 version of BDB within theirComdb2 database, under the originalSleepycat permissive license.

Origin

[edit]

Berkeley DB originated at theUniversity of California, Berkeley as part ofBSD, Berkeley's version of theUnix operating system. After 4.3BSD (1986), the BSD developers attempted to remove or replace all code originating in the originalAT&T Unix from which BSD was derived. In doing so, they needed to rewrite the Unix database package.[5] Seltzer and Yigit[6] created a new database, unencumbered by any AT&T patents: an on-diskhash table that outperformed the existingdbm libraries. Berkeley DB itself was first released in 1991 and later included with 4.4BSD.[5] In 1996Netscape requested that the authors of Berkeley DB improve and extend the library, then at version 1.86, to suit Netscape's requirements for anLDAP server[7] and for use in theNetscape browser. That request led to the creation ofSleepycat Software. This company was acquired byOracle Corporation in February 2006.[8]

Berkeley DB 1.x releases focused on managing key/value data storage and are referred to as "Data Store" (DS). The 2.x releases added a locking system enabling concurrent access to data. This is what is known as "Concurrent Data Store" (CDS). The 3.x releases added a logging system for transactions and recovery, called "Transactional Data Store" (TDS). The 4.x releases added the ability to replicate log records and create a distributed highly available single-master multi-replica database. This is called the "High Availability" (HA) feature set. Berkeley DB's evolution has sometimes led to minor API changes or log format changes, but very rarely have database formats changed. Berkeley DB HA supports online upgrades from one version to the next by maintaining the ability to read and apply the prior release's log records.[citation needed]

Starting with the 6.0.21 (Oracle 12c) release, all Berkeley DB products are licensed under theGNU AGPL.[9][10] Previously, Berkeley DB was redistributed under the 4-clauseBSD license (before version 2.0), and the Sleepycat Public License, which is anOSI-approvedopen-source license as well as anFSF-approvedfree software license.[11][12] The product ships with complete source code, build script, test suite, and documentation. The comprehensive feature along with the licensing terms have led to its use in a multitude offree and open-source software. Those who do not wish to abide by the terms of the GNU AGPL, or use an older version with the Sleepycat Public License, have the option of purchasing anotherproprietary license for redistribution fromOracle Corporation. This technique is calleddual licensing.

Berkeley DB includes compatibility interfaces for some historic Unix database libraries:dbm, ndbm and hsearch (aSystem V andPOSIX library for creating in-memoryhash tables).[13]

Architecture

[edit]

Berkeley DB has an architecture notably simpler thanrelational database management systems. LikeSQLite andLMDB, it is not based on aserver/client model, and does not provide support for network access – programs access the database using in-processAPI calls. Oracle added support for SQL in 11g R2 release based on the popular SQLite API by including a version of SQLite in Berkeley DB (it uses Berkeley DB for storage).[14]

A program accessing the database is free to decide how the data is to be stored in a record. Berkeley DB puts no constraints on the record's data. The record and its key can both be up to four gigabytes long.

Berkeley DB supports database features such asACIDtransactions, fine-grainedlocking, hotbackups andreplication.

Oracle Corporation use of name "Berkeley DB"

[edit]

The name "Berkeley DB" is used by Oracle Corporation for three different products, only one of which is BDB:[15]

  1. Berkeley DB, the C database library that is the subject of this article
  2. Berkeley DB Java Edition,[16] a pure Java library whose design is modelled after the C library but is otherwise unrelated
  3. Berkeley DB XML,[17] a C++ program that supportsXQuery, and which includes a legacy version of the C database library

Open-source programs still using Berkeley DB

[edit]

BDB was once very widespread, but usage dropped steeply from 2013 (seelicensing section). Notable software that still uses Berkeley DB for data storage include:

Open-source operating systems and languages such asPerl andPython still support old BerkelyDB interfaces. TheFreeBSD andOpenBSD operating systems ship Berkeley DB 1.8x to support thedbopen()[19][20] operating system call used by password programs such aspwb_mkdb.[21] Linux operating systems, including those based on Debian,[22] and Fedora[23] ship Berkeley DB 5.3 libraries.

Licensing

[edit]

Berkeley DB V2.0 and higher is available under adual license:

  1. Oracle commercial license[24]
  2. TheGNU AGPL v3.[25]

Switching the open source license in 2013 from theSleepycat license to the AGPL had a major effect on open source software. Since BDB is a library, any application linking to it must be under an AGPL-compatible license. Many open source applications and all closed source applications would need to be relicensed to become AGPL-compatible, which was not acceptable to many developers and open source operating systems. By 2013 there were many alternatives to BDB, andDebian Linux was typical in their decision to completely phase out Berkeley DB, with a preference for theLightning Memory-Mapped Database (LMDB).[26]

See also

[edit]

References

[edit]
  1. ^"Oracle Berkeley DB Downloads". Retrieved27 September 2020.
  2. ^Berkeley DB Reference Guide: What is Berkeley DB not?. Doc.gnu-darwin.org (2001-05-31). Retrieved on 2013-09-18.
  3. ^"Major Release: Berkeley DB 12gR1 (12.1.6.0)".Open Source Projects at Oracle. 2013-06-10.Archived from the original on 2013-12-05. Retrieved2021-04-11.
  4. ^Nathan, Willis (2013-07-10)."Debian, Berkeley DB, and AGPLv3".Linux Weekly News.Archived from the original on 2013-07-22.
  5. ^abOlson, Michael A.; Bostic, Keith; Seltzer, Margo (1999)."Berkeley DB"(PDF).Proc. FREENIX Track, USENIX Annual Tech. Conf.Archived(PDF) from the original on 2022-10-09. RetrievedOctober 20, 2009.
  6. ^Seltzer, Margo; Yigit, Ozan (1991)."A New Hashing Package for UNIX".Proc. USENIX Winter Tech. Conf. RetrievedOctober 20, 2009.
  7. ^Brunelli, Mark (March 28, 2005)."A Berkeley DB primer".Enterprise Linux News. Archived fromthe original on September 6, 2008. RetrievedDecember 28, 2008.
  8. ^"Getting To Know Berkeley DB Java Edition".objectcomputing.com. Retrieved2025-03-07.
  9. ^[Berkeley DB Announce] Major Release: Berkeley DB 12gR1 (12.1.6.0). Retrieved July 5, 2013. (Despite AGPL mentions there, the source archive still declares BSD-4-Clause terms in 6.0.19.)
  10. ^"Snapshot of the 6.0.19 source at the time". 13 June 2013.
  11. ^"The Sleepycat License".Open Source Initiative. October 31, 2006. RetrievedDecember 28, 2008.
  12. ^"Licenses".Free Software Foundation. December 10, 2008. Archived fromthe original on December 16, 2008. RetrievedDecember 28, 2008.
  13. ^"Compatibility with historic UNIX interfaces".docs.oracle.com. Retrieved2019-11-20.
  14. ^"Twitter / Gregory Burd: @humanications We didn't r ..."
  15. ^"Oracle Berkeley DB Downloads: Latest Production Releases".
  16. ^"Oracle Berkeley DB Java Edition".Archived from the original on 2017-07-11.
  17. ^"Berkeley DB XML".Archived from the original on 2016-07-18.
  18. ^"bogofilter -- Fast Bayesian Spam Filter Code (Git)".sourceforge.net. Retrieved2024-05-17.
  19. ^"dbopen(3)".FreeBSD Manual Pages. Retrieved2023-04-18.
  20. ^"OpenBSD manual pages".dbopen(3). Retrieved2023-04-18.
  21. ^"pwd_mkdb(8)".OpenBSD manual pages. Retrieved2023-04-18.
  22. ^Webmaster, Debian."Debian -- Details of package libdb5.3 in sid".Debian -- Packages. Retrieved2023-04-18.
  23. ^"Overview - rpms/libdb".src.fedoraproject.org. Retrieved2023-04-18.
  24. ^"Download, license and sales information". Nov 30, 2017.
  25. ^"Major Release: Berkeley DB 12gR1 (12.1.6.0)". June 10, 2013. RetrievedJuly 15, 2013.
  26. ^Ondřej Surý (June 19, 2014)."New project goal: Get rid of Berkeley DB (post jessie)".debian-devel (Mailing list).Debian.

External links

[edit]
Corporate directors
Acquisitions (list)
Databases
Programming languages
IDEs
Middleware
Operating systems
Computer hardware
Computer appliances
Education and recognition
Software
Applications
Programming languages
Databases
Frameworks and
development tools
Operating systems
Other
Related
Retrieved from "https://en.wikipedia.org/w/index.php?title=Berkeley_DB&oldid=1280009511"
Categories:
Hidden categories:

[8]ページ先頭

©2009-2025 Movatter.jp