CouchDB

Apache CouchDB
Típusú dokumentum-orientált DBMS
Szerző Damien Katz_ _
Fejlesztő Apache Software Foundation
Beírva Erlang [1] [2] , JavaScript [2] , C++ [2] és C [2]
Operációs rendszer Linux , Microsoft Windows és macOS
Első kiadás 2005
legújabb verzió
Állapot aktív
Engedély Apache License 2.0 [4]
Weboldal couchdb.apache.org
 Médiafájlok a Wikimedia Commons oldalon

A CouchDB  egy nyílt forráskódú dokumentum-orientált adatbázis-kezelő rendszer , amely nem igényli az adatséma leírását, szabadon terjeszthető , Erlang nyelven írva . Először 2005-ben jelent meg, 2008 óta - az Apache Alapítvány projektje .

Megközelítés

A NoSQL megközelítés részeként valósítva meg . A JSON az adatok tárolására , a JavaScript pedig a MapReduce lekérdezések megvalósítására szolgál . Erlang nyelven bármilyen logikát írhatunk . A DBMS egyik jellemzője a több főkiszolgálós replikáció támogatása.

A CouchDB webalkalmazás-szervernek tekinthető; ennek az ötletnek a megvalósításához egy hatékony webszervert építenek be a CouchDB -be , és a programkódot az adatokhoz hasonlóan ugyanabban az adatbázisban tárolják. Az alkalmazásokkal végzett munka automatizálásához a CouchApp segédprogramot használják.

A NoSQL megközelítést követve a CouchDB nem tárol adatokat és kapcsolatokat táblákban. Ehelyett minden adatbázis független dokumentumok gyűjteménye. Minden dokumentum saját adatokat és független sémát tartalmaz. Az alkalmazás több adatbázishoz is hozzáférhet, például a felhasználó mobiltelefonján és a szerveren tárolt adatbázisokhoz. A dokumentum metaadatai verzióinformációkat tartalmaznak, lehetővé téve az adatok egyesítését, valamint az adatbázisok szétválasztásakor esetlegesen felmerülő inkonzisztenciák feloldását.

Az MVCC mechanizmus az egyidejű hozzáférés vezérlésére szolgál , így nincs szükség az adatbázisfájl zárolására írás közben. Az ütközések megoldása az alkalmazáslogika feladata, a konfliktusok megoldása általában az adatok egy dokumentumba való összevonását, majd a régi dokumentum törlését jelenti.

Rendszer architektúra

Más dokumentum-orientált DBMS-ekhez ( Mnesia , Lotus Notes , MongoDB ) hasonlóan és a relációs DBMS -ekkel ellentétben a CouchDB-t úgy tervezték, hogy félig strukturált információkkal működjön, és a következő jellemzőkkel rendelkezik:

Történelem

A CouchDB projektet az IBM korábbi Lotus Notes -alkalmazottja, Damien Katz hozta létre 2005 áprilisában, a szerző a projektet "nagyméretű objektumadatbázis tárolási rendszereként" határozta meg. Az adatbázis ötlete egy webes adatbázis volt, amelyet a nulláról kellett írni egy webes alkalmazásszerverre. Közel két évig önfinanszírozta a projektet, és nyílt forráskódú projektként adta ki a GNU GPL alatt .

A CouchDB projektet 2008 februárjában fogadták be az Apache inkubátorba . Néhány hónappal később a projekt felső szintű projekt státuszba került, ami stabil megjelenést eredményezett 2010 júliusában. Annak ellenére, hogy a CouchDB-t eredetileg Linux operációs rendszeren szánták , ennek a rendszernek a változatait is kifejlesztették Microsoft Windows [7] és Mac OS operációs rendszerekhez . Sőt, az Ubuntu Linux disztribúció 9.10 óta (Karmic Koala) CouchDB rendszerrel érkezik.

2012 elején Katz otthagyta a projektet, hogy a Couchbase Serverre összpontosítson .

Katz távozása után az Apache CouchDB projekten az 1.2-es verzió 2012 áprilisában, majd az 1.3-as verzió 2013. áprilisi kiadásával folytatódott a munka. 2013 júniusában a CouchDB közösség összekapcsolta a kódbázist a BigCouch -al és a CouchDB Cloudant fürtözött verziójával az Apache-ban. projekt.

CouchDB használata

A CouchDB-t számos szoftvertermékben és webhelyen használják [8] , többek között:

További példák találhatók az Apache projekt wikijén.

Adatkezelés

A CouchDB JSON -dokumentumok gyűjteményét kezeli . A dokumentumok nézetek szerint vannak rendezve .  A nézeteket aggregált függvények és párhuzamosan számított szűrők határozzák meg, mint például a MapReduce .

A nézetek az adatbázisban tárolódnak, indexeik pedig folyamatosan frissülnek. A CouchDB olyan prezentációs rendszert támogat, amely külső socket szervereket és JSON alapú protokollt használ. Ennek eredményeként számos nyelven fejlesztettek ki nézetszervereket ( a JavaScript  az alapértelmezett, de létezik PHP , Ruby , Python és Erlang is ).

HTTP hozzáférés

Az alkalmazások HTTP-n keresztül kommunikálnak a CouchDB-vel. Az alábbiakban néhány példa látható a cURL parancssori segédprogram használatára. Ezek a példák feltételezik, hogy a CouchDB a localhost (127.0.0.1) 5984-es porton fut.

Akció Kérés Válasz
Hozzáférés a szerver információihoz curl http://127.0.0.1:5984/ { "couchdb" : "Üdvözöljük" , "verzió" : "1.1.0" }
Wiki nevű adatbázis létrehozása curl -X PUT http://127.0.0.1:5984/wiki { "ok" : igaz }
Megpróbál létrehozni egy második wiki nevű adatbázist curl -X PUT http://127.0.0.1:5984/wiki { "error" : "file_exists" , "reason" : "Az adatbázist nem sikerült létrehozni, a fájl már létezik." }
Információszerzés a wiki adatbázisról curl http://127.0.0.1:5984/wiki { "db_name" : "wiki" , "doc_count" : 0 , "doc_del_count" : 0 , "update_seq" : 0 , "purge_seq" : 0 , "compact_running" : false , "disk_size" : 79 , "tart_"_ : " instance "_s 1272453873691070" , "lemez_formátum_verzió" : 5 }
A wiki adatbázis törlése curl -X TÖRLÉS http://127.0.0.1:5984/wiki { "ok" : igaz }
Hozzon létre egy dokumentumot úgy, hogy megkéri a CouchDB-t, hogy adja meg a dokumentumazonosítót curl -X POST -H "Content-Type: application/json" --data \ '{ "text" : "Wikipédia a CouchDB-n", "értékelés": 5 }' \ http://127.0.0.1:5984/wiki { "ok" : igaz , "id" : "123BAC" , "rev" : "946B7D1C" }

Nyílt forráskódú összetevők

A CouchDB számos további nyílt forráskódú összetevőt tartalmaz az alapértelmezett csomag részeként, nevezetesen a SpiderMonkey JavaScript motort, a jQuery böngészők közötti JavaScript-könyvtárat , az ICU Unicode támogatási könyvtárát , az OpenSSL -t és az Erlang programozási nyelv disztribúcióját .

Jegyzetek

  1. A couchdb nyílt forráskódú projekt az Open Hubon: Nyelvek oldala - 2006.
  2. 1 2 3 4 https://projects.apache.org/json/projects/couchdb.json
  3. https://github.com/apache/couchdb/releases/tag/3.2.2
  4. https://couchdb.apache.org/
  5. A szerverek dokumentációjának megtekintése (lefelé mutató link) . Letöltve: 2010. február 12. Az eredetiből archiválva : 2008. október 20.. 
  6. [https://web.archive.org/web/20100218055610/http://plugins.jquery.com/project/jqcouch Archiválva : 2010. február 18. a Wayback Machine Plugin for jQuery -nél ]
  7. CouchdDB: Windows bináris telepítő (lefelé irányuló kapcsolat) . Hozzáférés dátuma: 2010. február 13. Az eredetiből archiválva : 2011. december 26. 
  8. CouchDB-t használó projektek (hivatkozás nem érhető el) . Hozzáférés dátuma: 2010. február 12. Az eredetiből archiválva : 2017. július 20. 
  9. A CouchDB integrálása az Ubuntu One-nal: Teljes specifikáció . Letöltve: 2010. február 13. Az eredetiből archiválva : 2021. március 2.
  10. Raindrop szoftverarchitektúra . Letöltve: 2010. február 13. Az eredetiből archiválva : 2010. július 6..

Irodalom

Linkek