Jump to content
Main menu
Main menu
move to sidebar
hide
Navigation
Main page
Recent changes
Random page
Help about MediaWiki
Special pages
Niidae Wiki
Search
Search
Appearance
Create account
Log in
Personal tools
Create account
Log in
Pages for logged out editors
learn more
Contributions
Talk
Editing
Berkeley DB
(section)
Page
Discussion
English
Read
Edit
View history
Tools
Tools
move to sidebar
hide
Actions
Read
Edit
View history
General
What links here
Related changes
Page information
Appearance
move to sidebar
hide
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
==Origin== Berkeley DB originated at the [[University of California, Berkeley]] as part of [[Berkeley Software Distribution|BSD]], Berkeley's version of the [[Unix]] operating system. After 4.3BSD (1986), the BSD developers attempted to remove or replace all code originating in the original [[AT&T Corporation|AT&T]] Unix from which BSD was derived. In doing so, they needed to rewrite the Unix database package.<ref name="freenix">{{cite conference |last1=Olson |first1=Michael A. |last2=Bostic |first2=Keith |last3=Seltzer |first3=Margo |title=Berkeley DB |book-title=Proc. FREENIX Track, USENIX Annual Tech. Conf. |year=1999 |url=http://www.usenix.org/events/usenix99/full_papers/olson/olson.pdf |archive-url=https://ghostarchive.org/archive/20221009/http://www.usenix.org/events/usenix99/full_papers/olson/olson.pdf |archive-date=2022-10-09 |url-status=live |access-date=October 20, 2009}}</ref> Seltzer and Yigit<ref>{{cite conference |last1=Seltzer |first1=Margo |last2=Yigit |first2=Ozan |title=A New Hashing Package for UNIX |book-title=Proc. USENIX Winter Tech. Conf. |year=1991 |url=http://www.eecs.harvard.edu/margo/papers/usenix91/paper.ps |access-date=October 20, 2009}}</ref> created a new database, unencumbered by any AT&T patents: an on-disk [[hash table]] that outperformed the existing [[DBM (computing)|dbm]] libraries. Berkeley DB itself was first released in 1991 and later included with 4.4BSD.{{r|freenix}} In 1996 [[Netscape]] requested that the authors of Berkeley DB improve and extend the library, then at version 1.86, to suit Netscape's requirements for an [[LDAP]] server<ref>{{cite news |last=Brunelli |first=Mark |url=http://searchenterpriselinux.techtarget.com/originalContent/0,289142,sid39_gci1071880,00.html |title=A Berkeley DB primer |journal=Enterprise Linux News |date=March 28, 2005 |access-date=December 28, 2008 |archive-date=September 6, 2008 |archive-url=https://web.archive.org/web/20080906125402/http://searchenterpriselinux.techtarget.com/originalContent/0,289142,sid39_gci1071880,00.html |url-status=dead }}</ref> and for use in the [[Netscape (web browser)|Netscape browser]]. That request led to the creation of [[Sleepycat Software]]. This company was acquired by [[Oracle Corporation]] in February 2006.<ref>{{Cite web |title=Getting To Know Berkeley DB Java Edition |url=https://objectcomputing.com/resources/publications/sett/november-2006-getting-to-know-berkeley-db-java-edition |access-date=2025-03-07 |website=objectcomputing.com |language=en}}</ref> 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.{{Cn|date=March 2025}} Starting with the 6.0.21 (Oracle 12c) release, all Berkeley DB products are licensed under the [[GNU Affero General Public License|GNU AGPL]].<ref>[https://oss.oracle.com/pipermail/bdb/2013-June/000056.html [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.)</ref><ref>{{cite web| url = https://build.opensuse.org/package/show/devel:libraries:c_c++/libdb-6_0?rev=2| title = Snapshot of the 6.0.19 source at the time| date = 13 June 2013}}</ref> Previously, Berkeley DB was redistributed under the 4-clause [[BSD license]] (before version 2.0), and the Sleepycat Public License, which is an [[Open Source Initiative|OSI]]-approved [[open-source license]] as well as an [[Free Software Foundation|FSF]]-approved [[free software license]].<ref>{{cite web|url=http://www.opensource.org/licenses/sleepycat.php |title=The Sleepycat License | publisher=[[Open Source Initiative]] |date=October 31, 2006 |access-date=December 28, 2008}}</ref><ref>{{cite web |url=http://www.fsf.org/licensing/licenses/index_html#GPLCompatibleLicenses |title=Licenses |publisher=[[Free Software Foundation]] |date=December 10, 2008 |access-date=December 28, 2008 |url-status=dead |archive-url=https://web.archive.org/web/20081216005913/http://www.fsf.org/licensing/licenses/index_html#GPLCompatibleLicenses |archive-date=December 16, 2008 }}</ref> 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 of [[free 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 another [[proprietary software license|proprietary license]] for redistribution from [[Oracle Corporation]]. This technique is called [[Dual license|dual licensing]]. Berkeley DB includes compatibility interfaces for some historic Unix database libraries: [[DBM (computing)|dbm]], ndbm and hsearch (a [[UNIX System V|System V]] and [[POSIX]] library for creating in-memory [[hash table]]s).<ref>{{Cite web|url=https://docs.oracle.com/cd/E17276_01/html/programmer_reference/program_compatible.html|title=Compatibility with historic UNIX interfaces|website=docs.oracle.com|access-date=2019-11-20}}</ref>
Summary:
Please note that all contributions to Niidae Wiki may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see
Encyclopedia:Copyrights
for details).
Do not submit copyrighted work without permission!
Cancel
Editing help
(opens in new window)
Search
Search
Editing
Berkeley DB
(section)
Add topic