Sleepycat, les origine de Berkeley DB Oracle, Berkeley DB...

13
Berkeley DB XML Sommaire Sleepycat, les origine de Berkeley DB Oracle, Berkeley DB aujourd'hui Berkeley DB XML BDB Introduction Stokage Transaction Réplication

Transcript of Sleepycat, les origine de Berkeley DB Oracle, Berkeley DB...

Page 1: Sleepycat, les origine de Berkeley DB Oracle, Berkeley DB ...cedric.cnam.fr/~rigaux/docs/vivier_BerkeleyDB.pdfBerkeley DB XML Sleepycat, les origine de Berkeley DB technique Database

Berkeley DB XML Sommaire

Sleepycat, les origine de Berkeley DBOracle, Berkeley DB aujourd'hui

Berkeley DB XMLBDB IntroductionStokageTransactionRéplication

Page 2: Sleepycat, les origine de Berkeley DB Oracle, Berkeley DB ...cedric.cnam.fr/~rigaux/docs/vivier_BerkeleyDB.pdfBerkeley DB XML Sleepycat, les origine de Berkeley DB technique Database

Berkeley DB XML Sleepycat, les origine de Berkeley DB Histoire

Berkeley DB is a widely used and freely-licensed database software originally developed at the University of California, Berkeley for 4.4BSD Unix.Sleepycat Software, Inc. was the company primarily responsible for maintaining the Berkeley DB packages from 1996 to 2006.

Google Archives Sleepycat web site : The Berkeley DB is a programmatic toolkit that provides embedded database support for both traditional and client/server applications. It includes B+tree, Extended Linear Hashing, Fixed and Variable-length record access methods, transactions, locking, logging, shared memory caching and database recovery. DB supports C, C++ and Java APIs.

In 2003, Sleepycat added a second product to its offerings, Berkeley DB XML, a native XML database. In 2004, Sleepycat added a third, Berkeley DB Java Edition, a pure Java version of Berkeley DB.

In February 2006, Sleepycat was acquired by Oracle Corporation, which has continued developing Berkeley DB.

Page 3: Sleepycat, les origine de Berkeley DB Oracle, Berkeley DB ...cedric.cnam.fr/~rigaux/docs/vivier_BerkeleyDB.pdfBerkeley DB XML Sleepycat, les origine de Berkeley DB technique Database

Berkeley DB XML Sleepycat, les origine de Berkeley DB technique

Database access methods: ●B+tree. ●Hash (Extended Linear Hashing)●Fixed/Variable Length Records ●Duplicate records per key in the B+tree and Hash access methods. ●Retrieval by record number in the B+tree access method. ●Keyed and sequential (forward and reverse) retrieval, insertion, modification and deletion. [...]

Transaction support: ●Multiple readers/single writer locking. ●Two-phase, page-level locking. ●Degree 3 Isolation. ●Before and after-image logging.

Database recovery: ●Database recovery after application or system failure, including catastrophic recovery. ●Online database backups.

Administrative functionality is provided both via standalone utilities as well as directly accessible within the DB API.General purpose lock, log, transaction and shared memory buffer pool managers, with standalone APIs.

Page 4: Sleepycat, les origine de Berkeley DB Oracle, Berkeley DB ...cedric.cnam.fr/~rigaux/docs/vivier_BerkeleyDB.pdfBerkeley DB XML Sleepycat, les origine de Berkeley DB technique Database
Page 5: Sleepycat, les origine de Berkeley DB Oracle, Berkeley DB ...cedric.cnam.fr/~rigaux/docs/vivier_BerkeleyDB.pdfBerkeley DB XML Sleepycat, les origine de Berkeley DB technique Database

Berkeley DB XML Oracle, Berkeley DB aujourd'hui Berkeley DB family

Berkeley DB APIs are available in almost all programming languages including ANSI-C, C++, Java, C#, Perl, Python, Ruby and Erlang to name a few. There is a pure-Java version of the Berkeley DB library designed for products that must run entirely within a Java Virtual Machine (JVM). We support the Microsoft .NET environment and the Common Language Runtime (CLR) with a C# API.

Berkeley DB Berkeley DB Java Edition Berkeley DB XML●Written in C●Software Library●Key/value API●SQL API by incorporating SQLite●BTREE, HASH, QUEUE, RECNO storage●C++, Java/JNI, C#, Python, Perl, ...●Java Direct Persistence Layer (DPL) API●Java Collections API●Replication for High Availability

●Written in Java●Java Software Archive (JAR)●Key/value API●Java Direct Persistence Layer (DPL) API●Java Collections API●Replication for High Availability

●Written in C++●Software Library●Layered on Berkeley DB●XQuery API by incorporating XQilla●Indexed, optimized XML storage●C++, Java/JNI, C#, Python, Perl, ...●Replication for High Availability

Page 6: Sleepycat, les origine de Berkeley DB Oracle, Berkeley DB ...cedric.cnam.fr/~rigaux/docs/vivier_BerkeleyDB.pdfBerkeley DB XML Sleepycat, les origine de Berkeley DB technique Database
Page 7: Sleepycat, les origine de Berkeley DB Oracle, Berkeley DB ...cedric.cnam.fr/~rigaux/docs/vivier_BerkeleyDB.pdfBerkeley DB XML Sleepycat, les origine de Berkeley DB technique Database

Berkeley DB XML Introduction to Berkeley DB XML

●Datasheet●Introduction to Berkeley DB XML ●Getting Started with XML Storage and XQuery Access ●Getting Started with Transactional Processing of XML using XQuery ●Getting Started with Berkeley DB Replication

●Berkeley DB XML Reference Guide●Programmatic APIs

Oracle propose un ensemble de documents détaillant le fonctionnement et l'utilisation des fonctionnalités de BDB XML

Anatomy of an XML database : Oracle Berkeley DB XML. Oracle White paper, september 2006.

Page 8: Sleepycat, les origine de Berkeley DB Oracle, Berkeley DB ...cedric.cnam.fr/~rigaux/docs/vivier_BerkeleyDB.pdfBerkeley DB XML Sleepycat, les origine de Berkeley DB technique Database

Berkeley DB XML Getting Started with XML Storage and XQuery Access

XML feature ●Containers (Whole documents or As document nodes)●Indices based on the structure of your XML documents.●Queries are performed using the XQuery 1.0 language.●Query results are always returned as a set.●Storage●Metadata attribute support. ●Document modification.

Databases features●In-process data access. ●Ability to manage databases up to 256 terabytes in size. ●Database environment support. ●Atomic operations.●Isolated operations.●Recoverability.●Concurrent access.

Library dependencies●Berkeley DB●Xerces ●Xqilla●ZLIB, optional support for compression in BDB XML

Programmatic APIs

Page 9: Sleepycat, les origine de Berkeley DB Oracle, Berkeley DB ...cedric.cnam.fr/~rigaux/docs/vivier_BerkeleyDB.pdfBerkeley DB XML Sleepycat, les origine de Berkeley DB technique Database

Berkeley DB XML Getting Started with XML Storage and XQuery Access

Page 10: Sleepycat, les origine de Berkeley DB Oracle, Berkeley DB ...cedric.cnam.fr/~rigaux/docs/vivier_BerkeleyDB.pdfBerkeley DB XML Sleepycat, les origine de Berkeley DB technique Database

Berkeley DB XML Getting Started with XML Storage and XQuery Access

Exception Handling and DebbugingXMLManager (BDB Environnments)

XMLContainersAdding XML Documents to Containers

Using Xquery with BDB XMLManaging documents

XML Indices

Zoom XML Indices

Index Types : ●Uniqueness indicates whether the indexed value must be unique within the container●Path Types (node or edge)●Node Types (element, attribut or metadata)●Key Types (equality, presence, substring)

Syntax Types identifies the syntax to use for the indexed value.

Specifying Index Strategies : [unique]-{path type}-{node type}-{key type}-{syntax type}

Page 11: Sleepycat, les origine de Berkeley DB Oracle, Berkeley DB ...cedric.cnam.fr/~rigaux/docs/vivier_BerkeleyDB.pdfBerkeley DB XML Sleepycat, les origine de Berkeley DB technique Database

Berkeley DB XML Getting Started with XML Storage and XQuery Access

Page 12: Sleepycat, les origine de Berkeley DB Oracle, Berkeley DB ...cedric.cnam.fr/~rigaux/docs/vivier_BerkeleyDB.pdfBerkeley DB XML Sleepycat, les origine de Berkeley DB technique Database

Berkeley DB XML Getting Started with Transactional Processing of XML using XQuery

Benefits : Atomicity, Consistency, Isolation, Durability

Application Requirements●Environments●Transaction subsystem●Logging subsystem●XmlTransaction handles●Container open requirements●Deadlock detection

Concurrency. Multi-threaded and Multi-process Applications.TransactionRecoverability. Managing BDB XML files (containers, log files, regions files), Checkpoints, Backup procedure (utilies, API), Recovy procedure

Performance tuning

It is possible to use Berkeley DB databases along side of BDB XML containers. When you do this, you will typically use both the databases and the containers from within the same environment so that you

can combine operations to both using transactions.

Manage degrees of IsolationAllow non-Durable transaction

Page 13: Sleepycat, les origine de Berkeley DB Oracle, Berkeley DB ...cedric.cnam.fr/~rigaux/docs/vivier_BerkeleyDB.pdfBerkeley DB XML Sleepycat, les origine de Berkeley DB technique Database

Berkeley DB XML Getting Started with Berkeley DB Replication

Replication Benefits improve application reliability, read performance, transactional commit performance, data durability guarantee.

single master, multiple replica replication strategy.

Requirements.●Transactional Application●Replication Environments. ●Replication Databases●Communications Layer●Selecting a Master. Holding Elections. Switching Masters●Permanent Message HandlingDB Replication Manager framework or Replication Base APIs.

Additionnal Features●Delayed Synchronisation●Managing Block Operations●Stop Auto-Initialization●Client to Client Tranfert●Bulk Transfert