Академический Документы
Профессиональный Документы
Культура Документы
Aujourd'hui, je me suis connect mon compte GMail, pass quelques appels professionnels, ajout quelques sources dans Subversion, install quelques RMP sur ma distribution Linux Mais pourquoi est-ce que je vous parle de a ? Eh bien tout simplement car GMail, SVN, RPM ont un lment en commun, ils stockent certaines de leurs donnes dans une base Berkeley DB. Pour ragir au contenu de cet article, un espace de dialogue vous est propos sur le forum .
Introduction Oracle Berkeley DataBase Java Edition, une base de donnes cl/valeur dveloppe en Java par Franois Ostyn (So@t) - Soat
I - Introduction..............................................................................................................................................................3 II - propos de Berkeley DB......................................................................................................................................3 III - La famille de Berkeley DB....................................................................................................................................3 III-A - Oracle BDB Core......................................................................................................................................... 3 III-B - Oracle BDB XML Edition............................................................................................................................. 3 III-C - BDB Java Edition.........................................................................................................................................3 IV - Les fonctionnalits-cls........................................................................................................................................ 3 V - Les fonctionnalits additionnelles..........................................................................................................................4 VI - Introduction Berkeley DB Java Edition............................................................................................................. 4 VI-A - Installation.................................................................................................................................................... 4 VI-B - Les API d'accs aux donnes.....................................................................................................................5 VI-C - L'API de base par la pratique..................................................................................................................... 5 VI-D - L'API DPL par la pratique........................................................................................................................... 5 VII - Description de l'environnement de Berkeley DB Java Edition............................................................................ 6 VIII - Le support des transactions............................................................................................................................... 7 IX - Monitorer une application utilisant BDB JE..........................................................................................................7 X - Les sources........................................................................................................................................................... 8 XI - Conclusion et remerciements............................................................................................................................... 8
-2Copyright 2012 SOAT. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. Cette page est dpose la SACD.
http://soat.developpez.com/articles/oracle-berkeley-database-javaedition/
Introduction Oracle Berkeley DataBase Java Edition, une base de donnes cl/valeur dveloppe en Java par Franois Ostyn (So@t) - Soat
I - Introduction
Aujourd'hui, je me suis connect mon compte GMail, pass quelques appels professionnels, ajout quelques sources dans Subversion, install quelques RMP sur ma distribution Linux Mais pourquoi est-ce que je vous parle de a ? Eh bien tout simplement car GMail, SVN, RPM ont un lment en commun, ils stockent certaines de leurs donnes dans une base Berkeley DB.
II - propos de Berkeley DB
Berkeley DB (que nous nommerons BDB) fait partie de la famille des bases de donnes cl-valeur et est sans doute le produit de cette famille le plus utilis au monde avec plusieurs dizaines de millions de dploiements revendiqus par l'diteur. La premire version de BDB remonte 1986 et est la proprit d'Oracle depuis fvrier 2006.
IV - Les fonctionnalits-cls
Chaque membre de la famille BDB possde diffrentes fonctionnalits. Dans toutes les familles de BDB, nous pouvons remarquer les fonctionnalits suivantes. Feature Set Data Store (DS) Concurrent Data Store (CDS) Transactional Data Store (TD) High Availability (HA) Description 1 Writer and n reader n writers and n snapshot reader Full ACID support on top of CDS Replication for fault tolerence. Fail over recovery support
Le tableau suivant dcrit les diffrences entre BDB "core" et BDB JE.
-3Copyright 2012 SOAT. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. Cette page est dpose la SACD.
http://soat.developpez.com/articles/oracle-berkeley-database-javaedition/
Introduction Oracle Berkeley DataBase Java Edition, une base de donnes cl/valeur dveloppe en Java par Franois Ostyn (So@t) - Soat
Locking Donnes stockes dans le format natif de l'application API et pas de SQL In Process et pas de client/serveur Zro administration Transactions ACID et rcupration Dual licences En mmoire ou sur disque Similar data access API Faible dpendance vers des bibliothques tierces Bases de donnes de grandes capacits
Et pour ce qui est BDB Java Edition, vous trouverez ses propres fonctionnalits dans le tableau ci-dessous : Fonctionnalit Fast, Indexed, B-Tree Java JEE JTA et JCA Support Efficient Direct Persistence Layer Easy Java Collections API Low Level Base API JMX Support Bnfice Rcupration des donnes trs rapide Intgration avec les serveurs d'applications Java EE Utilisation d'annotations pour stocker les graphes d'objets Java Manipulation transactionnelle des API de base au travers de Collections Java amliores Travailler avec des schmas de donnes dynamiques Possibilit de monitoring
-4Copyright 2012 SOAT. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. Cette page est dpose la SACD.
http://soat.developpez.com/articles/oracle-berkeley-database-javaedition/
Introduction Oracle Berkeley DataBase Java Edition, une base de donnes cl/valeur dveloppe en Java par Franois Ostyn (So@t) - Soat
Comme vous pouvez le remarquer, l'utilisation de cette API est trs simple mais assez verbeuse.
L'exemple que je vais vous prsenter se dcompose en deux parties. Premirement, un entity bean et une classe de management qui gre le CRUD (Create-Replace-Update-Delete) au-dessus de l'entity bean.
-5Copyright 2012 SOAT. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. Cette page est dpose la SACD.
http://soat.developpez.com/articles/oracle-berkeley-database-javaedition/
Introduction Oracle Berkeley DataBase Java Edition, une base de donnes cl/valeur dveloppe en Java par Franois Ostyn (So@t) - Soat
@Entity public class Employee { @PrimaryKey public Integer id; public String name; public String forname; @SecondaryKey(relate = Relationship.MANY_TO_MANY, relatedEntity = Project.class, onRelatedEntityDelete = DeleteAction.NULLIFY) public Set<Long> projects; public Employee(Integer id, String name, String forname, Set<Long> projects) { this.id = id; this.name = name; this.forname = forname; this.projects = projects; }
Il s'agit en effet d'un simple POJO avec quelques annotations. Ceux qui connaissent un peu JPA ne seront pas perdus ! Le code ci-dessous vous montre comment accder aux donnes prsentes dans le POJO Employee.
@Entity EnvironmentConfig environmentConfig = new EnvironmentConfig(); environmentConfig.setAllowCreate(true); // Physiquement o se trouve la base Environment environment = new Environment(new File(System.getProperty("java.io.tmpdir")), environmentConfig); StoreConfig storeConfig = new StoreConfig(); storeConfig.setAllowCreate(true); EntityStore entityStore = new EntityStore(environment, "BDBJEDPLSample", storeConfig); PrimaryIndex<Integer, Employee> employeePrimaryIndex = entityStore.getPrimaryIndex(Integer.class, Employee.class); employeePrimaryIndex.putNoReturn(new Employee(12,"francois", "ostyn", null)); Employee employee = employeePrimaryIndex.get(12); Assert.assertNotNull(employee); employeePrimaryIndex.delete(12); employee = employeePrimaryIndex.get(12); Assert.assertNull(employee); entityStore.close(); environment.close();
Dans l'exemple ci-dessus nous ne grons ni les transactions, ni des relations complexes.
-6Copyright 2012 SOAT. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. Cette page est dpose la SACD.
http://soat.developpez.com/articles/oracle-berkeley-database-javaedition/
Introduction Oracle Berkeley DataBase Java Edition, une base de donnes cl/valeur dveloppe en Java par Franois Ostyn (So@t) - Soat
Bien entendu, vous pouvez prciser un timeout transactionnel, ainsi que le retry policy
-7Copyright 2012 SOAT. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. Cette page est dpose la SACD.
http://soat.developpez.com/articles/oracle-berkeley-database-javaedition/
Introduction Oracle Berkeley DataBase Java Edition, une base de donnes cl/valeur dveloppe en Java par Franois Ostyn (So@t) - Soat
Ceci peut tre trs utile pour modifier le comportement de votre application chaud ou rcuprer certaines mtriques.
X - Les sources
Vous pourrez trouver les sources prsentes dans les exemples sur GitHub l'adresse suivante : https://github.com/ francoisostyn/bdbJeSampleFost.
XI - Conclusion et remerciements
l'heure o l'on nous parle de bon nombre de solutions NoSQL , Berkeley DB Java Edition est bien souvent oubli et tort. En effet, cette version est d'une performance redoutable. Cependant, je regrette tout de mme la double licence qui pourra freiner beaucoup de monde. En tout cas, BDB JE est parmi mes solutions NoSQL cl-valeur ! Cet article a t publi avec l'aimable autorisation de la socit So@t. Nous tenons remercier ClaudeLELOUP pour sa relecture orthographique attentive de cet article et Keulkeul pour la mise au gabarit.
-8Copyright 2012 SOAT. Aucune reproduction, mme partielle, ne peut tre faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu' trois ans de prison et jusqu' 300 000 de dommages et intrts. Cette page est dpose la SACD.
http://soat.developpez.com/articles/oracle-berkeley-database-javaedition/