Berkeley DB - Berkeley DB
Původní autoři | Margo Seltzer a Keith Bostic z Software Sleepycat |
---|---|
Vývojáři | Software Sleepycat, později Oracle Corporation |
První vydání | 1994 |
Stabilní uvolnění | |
Napsáno | C |
Operační systém | Okna, Unixový |
Velikost | ~1244 kB sestaveno Okna x86 |
Typ | Vestavěná databáze, NoSQL databáze |
Licence | Duální licence (GNU Affero General Public License a komerční povolení) (verze 6.xa vyšší) Licence Sleepycat (verze 2.0-5.x) 4-klauzule BSD licence (verze 1.x) / JE je licencován pod Licence Apache, verze 2.0. |
webová stránka | www |
Berkeley DB (BDB) je software knihovna zamýšlel poskytnout vysoký výkon vložená databáze pro klíč / hodnota data. Berkeley DB je napsán C s vazbami API pro C ++, C#, Jáva, Perl, PHP, Krajta, Rubín, Pokec, Tcl a mnoho dalších programovací jazyky. BDB ukládá libovolné páry klíč / data jako bajtová pole a podporuje více datových položek pro jeden klíč. Berkeley DB není relační databáze,[2] i když má pokročilé databázové funkce včetně databázové transakce, multiverzní řízení souběžnosti a protokolování dopředu.
BDB může podporovat tisíce simultánních podprocesů řízení nebo souběžných procesů manipulujících s databázemi až 256 terabajtů,[3] na širokou škálu operační systémy včetně většiny Unixový a Okna systémy a operační systémy v reálném čase.
Společnost BDB byla komerčně podporována a vyvinuta společností Software Sleepycat od roku 1996 do roku 2006. Tuto společnost získala společnost Oracle Corporation v únoru 2006, který pokračuje ve vývoji a prodeji produktů Berkeley DB. Od roku 2020 Bloomberg LP nadále vyvíjí a Vidlička BDB v rámci jejich Comdb2 databáze, pod původním Sleepycat permisivní softwarová licence.
Původ
Berkeley DB vznikl v University of California, Berkeley jako část BSD Berkeleyova verze Unix operační systém. Po verzi 4.3BSD (1986) se vývojáři BSD pokusili odstranit nebo nahradit veškerý kód pocházející z originálu AT&T Unix, ze kterého byla odvozena BSD. Přitom potřebovali přepsat databázový balíček Unixu.[4] Seltzer a Yigit[5] vytvořil novou databázi, nezatíženou žádnými patenty AT&T: na disku hash tabulka který překonal stávající dbm knihovny. Samotná Berkeley DB byla poprvé vydána v roce 1991 a později zahrnuta ve verzi 4.4BSD.[4] V roce 1996 Netscape požadoval, aby autoři Berkeley DB vylepšili a rozšířili knihovnu, poté ve verzi 1.86, aby vyhovovala požadavkům Netscape na LDAP serveru[6] a pro použití v Prohlížeč Netscape. Tato žádost vedla k vytvoření Software Sleepycat. Tuto společnost získala společnost Oracle Corporation v únoru 2006, který pokračuje ve vývoji a prodeji Berkeley DB.
Od svého počátečního vydání prošla Berkeley DB různými verzemi. Každý hlavní cyklus vydání představil jednu novou hlavní funkci, která obecně navrstvuje nad dřívější funkce a přidává tak funkci produktu. Verze 1.x se zaměřily na správu datových úložišť klíč / hodnota a jsou označovány jako „Data Store“ (DS). Verze 2.x přidaly uzamykací systém umožňující souběžný přístup k datům. Toto je známé jako „souběžné úložiště dat“ (CDS). U vydání 3.x byl přidán systém protokolování transakcí a obnovy s názvem „Transactional Data Store“ (TDS). Vydání 4.x přidala možnost replikovat záznamy protokolu a vytvořit distribuovanou vysoce dostupnou databázi s více replikami s jedním hlavním serverem. Tomu se říká sada funkcí „High Availability“ (HA). Vývoj společnosti Berkeley DB někdy vedl k drobným změnám API nebo změnám formátu protokolu, ale velmi zřídka došlo ke změně databázových formátů. Berkeley DB HA podporuje online upgrady z jedné verze na druhou tím, že udržuje schopnost číst a používat záznamy protokolu předchozího vydání.
The FreeBSD a OpenBSD operační systémy z důvodu kompatibility nadále používají Berkeley DB 1.8x;[7][pochybný ] Operační systémy založené na Linuxu obvykle obsahují několik verzí, které se přizpůsobí aplikacím, které stále používají starší rozhraní / soubory.
Počínaje vydáním 6.0.21 (Oracle 12c) jsou všechny produkty Berkeley DB licencovány pod GNU AGPL.[8][9] Berkeley DB JE 7.3.7 je licencován pod licencí Apache License, verze 2.0. Dříve byla společnost Berkeley DB redistribuována na základě 4-klauzule Licence BSD (před verzí 2.0) a licence Sleepycat Public License, což je OSI -schválený open-source licence stejně jako FSF -schválený licence na bezplatný software.[10][11] Produkt je dodáván s kompletním zdrojovým kódem, skriptem sestavení, testovací sadou a dokumentací. Kvalita kódu a obecná užitečnost spolu s licenčními podmínkami vedly k jeho použití v mnoha bezplatný open source software. Ti, kteří si nepřejí dodržovat podmínky GNU AGPL nebo používat starší verzi s licencí Sleepycat Public License, mají možnost koupit si další proprietární licence k přerozdělení z Oracle Corporation. Tato technika se nazývá duální licence. Různé verze Berkeley DB (DB, JE, XML) mohou mít různé licenční podmínky.
Berkeley DB obsahuje rozhraní kompatibility pro některé historické knihovny databází Unix: dbm, ndbm a hsearch (a Systém V a POSIX knihovna pro vytváření v paměti hash tabulky ).[12]
Architektura
Berkeley DB má architekturu výrazně jednodušší než architektura jiných databázových systémů, jako je systémy pro správu relačních databází. Například jako SQLite, není založen na a server / klient model a neposkytuje podporu pro přístup k síti - programy přistupují k databázi pomocí procesu API hovory. Společnost Oracle přidala podporu pro SQL ve verzi 11g R2 na základě populárního rozhraní API SQLite zahrnutím verze SQLite do Berkeley DB (pro ukládání používá Berkley DB).[13] K dispozici je podpora třetích stran PL / SQL v Berkeley DB prostřednictvím komerčního produktu s názvem Metatranz StepSqlite.[14]
Program, který přistupuje k databázi, se může svobodně rozhodnout, jak budou data uložena do záznamu. Berkeley DB neklade na data záznamu žádná omezení. Záznam a jeho klíč mohou mít délku až čtyři gigabajty.
Navzdory jednoduché architektuře podporuje Berkeley DB mnoho pokročilých databázových funkcí, jako je KYSELINA transakce, jemnozrnný zamykání, horký zálohy a replikace.
Edice Oracle Corporation
Název „Berkeley DB“ používá společnost Oracle Corporation pro tři různé produkty:[15]
- Berkeley DB - aktuální verze z června 2018 je 18.1.
- Berkeley DB Java Edition - aktuální verze z listopadu 2017 je 7.5.11
- Berkeley DB XML - aktuální verze z listopadu 2017 je 6.1.4
Každé vydání má navzdory společné značce samostatné databázové knihovny. První je tradiční Berkeley DB napsaný v C. Obsahuje několik implementací databáze, včetně a B-strom a jeden postavený kolem rozšiřitelný hash. Podporuje více jazykových vazeb, včetně C / C ++, Java (přes JNI), C # .NET, Perl a Krajta.
Berkeley DB Java Edition (JE) je čistá knihovna pro správu databáze Java. Jeho design se podobá designu Berkeley DB, aniž by jej přesně replikoval, a má sadu funkcí, která zahrnuje mnoho z těch, které se nacházejí v tradiční Berkeley DB a další, které jsou specifické pro Java Edition. Má architekturu strukturovaného úložiště protokolu, která mu poskytuje různé charakteristiky výkonu a souběžnosti. K dispozici jsou tři API - přímá vrstva perzistence, která je „Plain Old Java Objects“ (POJO); ten, který je založen na Java Collections Framework (přístup k perzistenci objektů); a jeden založený na tradičním Berkeley DB API. K dispozici je možnost Berkeley DB Java Edition High Availability (Replication). Všimněte si, že tradiční Berkeley DB také podporuje Java API, ale dělá to prostřednictvím JNI a proto vyžaduje nainstalovanou nativní knihovnu.
Databáze Berkeley DB XML se specializuje na ukládání dokumentů XML a podporuje XQuery přes XQilla. Je implementován jako další vrstva nad (starší verze) Berkeley DB a Xerces knihovna. DB XML je napsán v C ++ a podporuje více jazykových vazeb, včetně C ++, Java (přes JNI), Perl a Krajta.
Programy, které používají Berkeley DB
Berkeley DB poskytuje základní úložný a vyhledávací systém několika LDAP servery, databázové systémy a mnoho dalších proprietárních a bezplatných / otevřených aplikací. Pozoruhodný software, který používá Berkeley DB pro ukládání dat, zahrnuje:
- Bitcoinové jádro - První implementace bitcoinu kryptoměna zachovává použití 2009 Berkeley DB 4.8 pro jednu funkci[16]
- Bogofilter - Zdarma / otevřený zdroj spam filtr, který ve výchozím nastavení ukládá své seznamy slov pomocí Berkeley DB[17]
- Carbonado - Otevřená vrstva přístupu k relační databázi, která může volitelně používat Berkeley DB[18]
- Citadela - Zdarma / otevřený zdroj groupware platforma, která udržuje všechna svá datová úložiště, včetně základny zpráv, v Berkeley DB
- Jabberd2 - An XMPP serveru
- KDevelop - An IDE pro Unixový operační systémy
- Oracle NoSQL - NoSQL distribuovaná databáze klíč – hodnota
- Oracle Retail Predictive Application Server (RPAS) - Platforma používaná společností Oracle Retail k implementaci řešení pro finanční finanční plánování v maloobchodě, plánování zboží / sortiment a plánování dodavatelského řetězce
- Poslat mail - Populární MTA pro systémy Linux / Unix
- Spamassassin - Antispamová aplikace
- Voldemort - Distribuovaná databáze klíč-hodnota NoSQL, která může volitelně používat BDB jako úložiště back-endu[19][20]
Minulí uživatelé
- RPM - Správce balíků RPM ukončuje podporu Berkeley DB ve prospěch SQLite [21]
- memcacheDB - Varianta memcached. MemcacheDB není udržován od roku 2009 a byl zrušen hlavními distribucemi Linuxu.
- Vývoj - poštovní klient zdarma / otevřený zdroj; Adresář BDB.db byl zastaralý ve prospěch SQLite kontakty.db
- MySQL databázový systém - MySQL obsahoval backend úložiště dat BDB před verzí 5.1
- Exim - An MTA vyvinutý na Univerzita v Cambridge pro použití na unixových systémech připojených k internetu. Zastaralé ve prospěch LMDB
- Cyrus IMAP server - Zdarma / otevřený zdroj IMAP a POP3 server, vyvinutý společností Univerzita Carnegie Mellon. Zastaralé ve prospěch LMDB
- OpenLDAP - Bezplatná / otevřená implementace protokolu LDAP (Lightweight Directory Access Protocol). Zastaralé ve prospěch LMDB
- OrangeFS - An open-source paralelní souborový systém, příští generace Paralelní virtuální souborový systém. Zastaralé ve prospěch LMDB
- Postfix - Rychlý, bezpečný a snadno spravovatelný MTA pro systémy Linux / Unix. Zastaralé ve prospěch LMDB
- Podvracení - Centralizovaný systém řízení verzí. Zastaralé ve prospěch FSFS
- GlusterFS - Před verzí v3.4 zahrnoval GlusterFS překladač úložišť BDB
- Sun Grid Engine - Dříve zdarma a open-source distribuovaný systém správy zdrojů, nyní ukončený
Licencování
Berkeley DB V2.0 a vyšší je k dispozici pod a duální licence:
- Komerční licence Oracle s profesionální podporou[22]
- Licence open source
- Berkeley DB a Berkeley DB XML
- V2.0 - V6.0.19 je licencován pod Licence Sleepycat
- V6.0.20 a novější je licencován pod GNU AGPL v3.[23]
- Berkeley DB JE (Java Edition)
- V2.0 - V6.0.19 je licencován pod Licence Sleepycat
- V6.0.20 - V7.3.6 je licencován pod GNU AGPL v3
- V7.3.7 a novější je licencován pod Licence Apache, verze 2.0.
- Berkeley DB a Berkeley DB XML
Přechod na AGPL způsobil velké distribuce GNU / Linux, jako např Debian zcela vyřadit jejich používání Berkeley DB s preferencí pro Lightning Memory-Mapped Database (LMDB). Důvodem je to, že používání komerčních uživatelů pomocí kódu AGPL by bylo nepřijatelné, protože by byli nuceni poskytovat svůj zdrojový kód uživatelům jednoduchým upgradem softwaru.[24]
Viz také
Reference
- ^ A b C „Oracle Berkeley DB ke stažení“. Citováno 27. září 2020.
- ^ Referenční příručka Berkeley DB: Co není Berkeley DB?. Doc.gnu-darwin.org (31.05.2001). Citováno 2013-09-18.
- ^ http://doc.gnu-darwin.org/am_misc/dbsizes.html Berkeley DB Reference Guide: Database limits Citováno dne 2013-09-19
- ^ A b Olson, Michael A .; Bostic, Keith; Seltzer, Margo (1999). „Berkeley DB“ (PDF). Proc. FREENIX Track, USENIX Annual Tech. Konf. Citováno 20. října 2009.
- ^ Seltzer, Margo; Yigit, Ozan (1991). „Nový hashovací balíček pro UNIX“. Proc. USENIX Winter Tech. Konf. Citováno 20. října 2009.
- ^ Brunelli, Mark (28. března 2005). „Základní nátěr Berkeley DB“. Enterprise Linux Novinky. Citováno 28. prosince 2008.
- ^ „db (3)“. Citováno 12. dubna 2009.
- ^ [Berkeley DB oznamuje] Hlavní vydání: Berkeley DB 12gR1 (12.1.6.0). Citováno 5. července 2013. (Navzdory zmínkám AGPL, zdrojový archiv stále deklaruje podmínky klauzule BSD-4 v 6.0.19.)
- ^ Snímek zdroje 6.0.19 v té době
- ^ „Licence Sleepycat“. Open Source Initiative. 31. října 2006. Citováno 28. prosince 2008.
- ^ „Licence“. Free Software Foundation. 10. prosince 2008. Archivováno od originál 16. prosince 2008. Citováno 28. prosince 2008.
- ^ "Kompatibilita s historickými rozhraními UNIX". docs.oracle.com. Citováno 2019-11-20.
- ^ „Twitter / Gregory Burd: @humanications Nechtěli jsme ...“
- ^ „Official Berkeley DB FAQ“. Oracle Corporation. Citováno 30. března 2010.
Podporuje Berkeley DB PL / SQL?
- ^ Stahování Oracle Berkeley DB: Nejnovější produkční vydání
- ^ Poznámky k verzi pro bitcoin 0.8.0 2013
- ^ "bogofilter - Fast Bayesian Spam Filter / Code (Git) / [93b68e] / bogofilter / README". sourceforge.net. Citováno 2020-07-17.
- ^ Projekt Github Carbonado / Carbonado, Carbonado, 04.04.2020, vyvoláno 2020-07-17
- ^ „Balíček zdrojového kódu Voldemort, který zahrnuje integraci BDB“. GitHub. Citováno 2017-03-16.
- ^ „Design - Voldemort“. www.project-voldemort.com. Citováno 2020-07-17.
- ^ [1] Změňte formát databáze RPM z Berkeley DB na nový formát Sqlite.
- ^ „Informace o stahování, licenci a prodeji“. 30. listopadu 2017.
- ^ „Hlavní vydání: Berkeley DB 12gR1 (12.1.6.0)“. 10. června 2013. Citováno 15. července 2013.
- ^ Ondřej Surý (19. června 2014). „Nový cíl projektu: Zbavit se Berkeley DB (post jessie)“. debian-devel (Poštovní seznam). Debian.