oracle’s berkeley db

Post on 13-Jan-2016

53 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

Oracle’s Berkeley DB. Νικόλας Εξαρχάκος. Μία embedded database που παρέχει υψηλή απόδοση, αξιοπιστία και προσαρμοστικότητα . Μία non-relational system engine To application χρησιμοποιεί απλά function calls. Μία βιβλιοθήκη που συνδέεται άμεσα με το application. - PowerPoint PPT Presentation

TRANSCRIPT

Oracle’s Berkeley DB

Νικόλας Εξαρχάκος

Τι είναι το Oracle’s Berkeley DB

Μία embedded database που παρέχει υψηλή απόδοση, αξιοπιστία και προσαρμοστικότητα.

Μία non-relational system engine To application χρησιμοποιεί απλά function

calls. Μία βιβλιοθήκη που συνδέεται άμεσα με το

application. Δεν είναι ένα client-server architecture.

Ιστορική αναδρομή

Δημιουργήθηκε και αναπτύχθηκε στο University of California at Berkeley (1986-1994)

H έρευνα συνεχίστηκε στο Harvard University. Δημιουργία Sleepycat Software μετά από

αίτημα για επέκταση του Berkeley DB (1996). Αγοράστηκε το Φεβρουάριο του 2006 από την

Oracle.

Πλεονεκτήματα

Library/Not a language Μικρό μέγεθος Γρήγορη και ασφαλής αποθήκευση Δε χρειάζεται ξεχωριστός server Δε χρειάζεται κάποιος administrator H διεπαφή προγραμματισμού είναι γενική και εύκολη Πολλά APIs (C,C++,Perl,Tcl,Java) Μεγάλα keys/data (μέχρι 2^32 bytes) Είναι open source

Μειονεκτήματα

Δεν είναι εύκολη η επικοινωνία με σχεσιακές βάσεις Δεν υπάρχει SQL interface O προγραμματιστής πρέπει να γνωρίζει επακριβώς τις

ανάγκες της εφαρμογής Πρόβλεψη στατικών queries Δυσκολία οταν η εφαρμογή απαιτεί πολλών ειδών

queries.

Εκδόσεις του Berkeley DB

Berkeley DB Berkeley DB XML Berkeley DB Java Edition

Εγκατάσταση Berkeley DB

Download Oracle’s Berkeley DBhttp://www.oracle.com/database/berkeley-db/index.html

Prepare Berkeley DB for compilationcd build_unix../dist/configure --prefix=/usr --enable-compat185 --enable-cxx

Compile the package:Make

Install the package:make docdir=/usr/share/doc/db-4.7.25 install

Εγκατάσταση Berkeley DB

Το Berkeley DB είναι μία βιβλιοθήκη

Ίδια διεύθυνση μνήμης με το application. Το Berkeley DB ενσωματώνεται άμεσα στο

εκτελέσιμο αρχείο. Δεν υπάρχει ένας ξεχωριστός server (embedded). Υποστήριξη χιλιάδων ταυτόχρονων threads. Έλεγχος ταυτοχρονίας,επαναφερσιμότητα.

Το Berkeley DB δεν είναι query language

Προσφέρει APIs για insert,update,retrieve και delete.

Διαφορετικά interfaces για κάθε ενέργεια, μέσω method calls:– open() open the database in a prescribed fashion– close() closes the database– put() puts a record in database– get() gets record from database– del() deletes a record from the database

Το Berkeley DB χρησιμοποιεί το Application’s Data Model

Το format ενός record σε μια σχεσιακή βάση εξυπηρετεί τη βάση δεδομένων.

Δεν εξυπηρετεί την εφαρμογή. Αν θέλουμε να μετακινήσουμε δεδομένα

από και προς τη βάση τότε:– Η εφαρμογή πρέπει να μεταφράζει ανάμεσα

στο format του record της εφαρμογής και της βάσης δεδομένων.

Key/data pairs

Ένα record αποτελείται από ένα key και ένα data. Keys και data είναι bit strings μεταβλητού μεγέθους.

– Οι εφαρμογές καθορίζουν το περιεχόμενο και τη σημασία τους.

– Το Berkeley DB δε γνωρίζει τίποτα για την εσωτερική δομή των keys/data.

– To Berkeley DB ενσωματώνει λειτουργίες των hash functions για τα keys.

Keys/data αποθηκεύονται σε απλές δομές(DBTs).

DBT

Indexing

Δε χρειάζεται administration

Πολλοί χρήστες δε χρειάζεται να ξέρουν πως να κάνουν administration μια βάση.

Όλες οι εργασίες του administration γίνονται μέσω των Berkleys DB APIs.

Οι χρήστες δε γνωρίζουν ότι το Berkeley DB είναι μέρος των συστημάτων που χρησιμοποιούν.

Υψηλή παραμετροποίηση

Τροποποίηση του μεγέθους των pages/cache. Buffer replacement policy. Policies για duplicate keys στα tables. Ενεργοποίηση ταυτοχρονίας,locking και transactions. Μηχανισμοί εντοπισμού και αποφυγής του deadlock κ.α.

Η παραμετροποίηση γίνεται σύμφωνα με τις ανάγκες του application.

Δυνατότητες του Berkeley DB

Messaging Storage Systems Switching and Routing Logging Caching για Scalable Web Applications Devices

Environments, Databases and Files

Create/Open/Recover Environment

Create/Open Database

Transaction Read/Modify/Write

Ένα απλό application

Αποθήκευση στοιχείων

Ανάκτηση/Διαγραφή στοιχείων

Κλείσιμο της βάσης

Dynamic data, static queries

Άριστες επιδόσεις με προβλέψιμο data access. Ιδανικό σε applications, όπου τα queries είναι

στατικά. Οι developers πρέπει να μπορούν να

προβλέψουν τα data access της εφαρμογής. Οι σχεσιακές βάσεις αντίθετα, είναι πολύ καλές

στο να απαντούν νέα queries.

Σύγκριση σχεσιακών,embedded και Berkeley DB

Συνεργασία σχεσιακής και embedded

Μελλοντικές εκδοχές

Δημιουργία embedded βάσεων από ένα RDBMS.

Συγχρονισμός με τον γονέα RDBMS. Εντοπισμός, που μια εφαρμογή θα

εξυπηρετούνταν καλύτερα από μία embedded βάση.

Συμπεράσματα

Γρήγορο αξιόπιστο και αποδοτικό για ένα πλήθος εφαρμογών σήμερα.

Μία ενδιάμεση λύση μεταξύ μιας πολύπλοκης σχεσιακής βάσης και ενός low-level file system.

Χρησιμοποιεί ένα πολύ απλό και προσαρμόσιμο σχεδιασμό και παρέχει τα storage services μίας σχεσιακής βάσης

Το “small-footprint” του Berkeley DB είναι ένα σημαντικό πλεονέκτημα στον περιορισμένο κόσμο των καταναλωτικών συσκευών.

Βιβλιογραφία

– http://www.oracle.com/database/berkeley-db/index.html

– Α Comparison of Berkeley DB and Relational Databases

– How Berkeley DB Fits into Oracle’s Overall Embedded Database Strategy

– http://en.wikipedia.org/wizi/Berkeley_DB– http://www.accu-usa.org/2001-08.html– http://pybsddb.sourceforge.net/reftoc.html

Τέλος

Ευχαριστώ για την προσοχή σας!

– ΑΠΟΡΙΕΣ;– ΕΡΩΤΗΣΕΙΣ;

top related