Berkeley DB XML Sommaire

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

Berkeley DB XML BDB Introduction Stokage Transaction Réplication

Berkeley DB XML Sleepycat, les origine de Berkeley DB Histoire

Berkeley DB is a widely used and freely-licensed database originally developed at the University of California, Berkeley for 4.4BSD . , 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 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 caching and database recovery. DB supports , C++ and .

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 , which has continued developing Berkeley DB.

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 , log, transaction and shared memory buffer pool managers, with standalone APIs.

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#, , Python, Ruby and Erlang to name a few. There is a pure-Java version of the Berkeley DB 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 ●Written in Java ●Written in C++ ●Software Library ●Java Software Archive (JAR) ●Software Library ●Key/value API ●Key/value API ●Layered on Berkeley DB ●SQL API by incorporating SQLite ●Java Direct Persistence Layer (DPL) ●XQuery API by incorporating XQilla ●BTREE, HASH, QUEUE, RECNO API ●Indexed, optimized XML storage storage ●Java Collections API ●C++, Java/JNI, C#, Python, Perl, ... ●C++, Java/JNI, C#, Python, Perl, ... ●Replication for High Availability ●Replication for High Availability ●Java Direct Persistence Layer (DPL) API ●Java Collections API ●Replication for High Availability

Berkeley DB XML Introduction to Berkeley DB XML

Oracle propose un ensemble de documents détaillant le fonctionnement et l'utilisation des fonctionnalités de BDB 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

Anatomy of an XML database : Oracle Berkeley DB XML. Oracle White paper, september 2006. 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 Programmatic APIs ●Xqilla ●ZLIB, optional support for compression in BDB XML

Berkeley DB XML Getting Started with XML Storage and XQuery Access

Berkeley DB XML Getting Started with XML Storage and XQuery Access

Exception Handling and Debbuging XMLManager (BDB Environnments) XMLContainers Adding XML Documents to Containers Using Xquery with BDB XML Managing 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}

Berkeley DB XML Getting Started with XML Storage and XQuery Access

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. Transaction Recoverability. 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 Isolation Allow non-Durable transaction

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 Handling DB Replication Manager framework or Replication Base APIs.

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