Developpez.com

Le Club des Développeurs et IT Pro

Oracle lance sa base NoSQL et revendique la paternité du mouvement

Sa solution ne renonce pas à la cohérence des données

Le 2011-10-25 16:21:31, par Idelways, Expert éminent sénior
Oracle et le NoSQL, c'est décidément compliqué ; en quelque mois, l'entreprise est passée du mépris à la revendication de la paternité du mouvement.

« Oracle NoSQL Database » vient de sortir après avoir été annoncée le mois passé à la conférence OpenWorld. La solution est fondée sur la version Java du moteur Berkeley DB disponible sous doubles licences, libre et commerciale.

Cette solution a été acquise par Oracle en 2005 dans le cadre du rachat d'Innobase. Un argument qui suffit à Oracle pour revendiquer la paternité du mouvement :

L'entreprise rappelle que les premières solutions NoSQL étaient fondées sur des moteurs de base de données relationnels, « en contraste, la lignée Berkeley DB était à l'origine des dépôts clé/valeur. Oracle Berkeley DB Java Edition a été commercialisé pendant huit ans. En utilisant Oracle Berkeley DB Java Edition en tant que moteur de stockage sous-jacent d'un système NoSQL, Oracle amène la robustesse et la stabilité [de niveau] entreprise au paysage NoSQL »

La solution d'Oracle cible la clientèle type du NoSQL : à savoir les entreprises qui gèrent des quantités massives de données, celles qui ne sont pas certaines des schémas des bases et veulent plus de fluidité dans la collecte des informations, fait valoir Oracle.

D'après l'entreprise, ses bases NoSQL se distinguent des autres solutions par les différentes politiques en terme de cohérence des données. Un facteur au sujet lequel Oracle s'est toujours montré intraitable.

Alors que les autres solutions clés/valeur privilégient par essence la disponibilité et la scalabilité à la cohérence entre les différents noeuds de données, celle d'Oracle permettrait à l'utilisateur de choisir le degré de cohérence qu'il souhaite, sans devoir confier cette gestion aux applications.

« Les applications peuvent spécifier une consistance absolue, qui garantit que toutes les lectures retournent la valeur la plus récemment insérée d'une clé donnée. D'un autre côté, les applications tolérantes à l'inconsistance des données peuvent spécifier une consistance faible », peut-on lire sur un livre blanc qu'a sorti Oracle pour l'occasion.

Il n’y a pas de miracles donc, choisir la consistance aura un coût en terme de latence et de performances.

Mais entre les deux extrêmes, les applications peuvent choisir une consistance relative dépendante du temps et de la version, explique Oracle qui n'hésite pas à promettre des transactions atomiques, ou autres « propriétés ACID » même en présence d'une telle variance de consistance.

En matière de propagation et de migration, le système NoSQL ne se démarque pas. Les données sont distribuées sur de multiples noeuds de données à l’aide d’un algorithme de hachage. La lecture se fait via une API client en Java qui dispose du même algorithme qui l’aide à déterminer l’identité du noeud porteur de la donnée voulue.



Oracle NoSQL Data est téléchargeable dès maintenant à partir d'Oracle Technology Network, et sera au coeur de l'Appliance Oracle Big Data prévue pour début 2012.

Télécharger Oracle NoSQL DataBase

Source : papier blanc d'Oracle
  Discussion forum
9 commentaires
  • Dr_essic
    Membre à l'essai
    Je commence vraiment a douter de la sanité des dirigeants d'Oracle ...
  • pcaboche
    Rédacteur
    Envoyé par Idelways
    Ce mot dérive de l'anglais "scalability". Il décrit la capacité d'un système informatique à évoluer pour répondre aux montées en charge, sans perte de performances.
    En Français, je crois que le terme pour "scalability" c'est "mise à l'échelle" ou "facteur d'échelle".

    Mais du coup, plus personne ne comprend...

    Google translate propose "évolutivité", terme beaucoup trop général.
    La traduction de ce mot en Français pose pas mal de problèmes, comme en témoigne cette page: http://fr.wikipedia.org/wiki/Scalability
  • Rams7s
    Membre éclairé
    Envoyé par Inarius
    N'est ce pas exactement ce que propose déjà Cassandra avec son ConsistencyLevel?
    Je ne peux pas parler pour Cassandra, mais simplement pour Oracle's NoSQL:
    Pour le D de ACID, ou bien les ecritures, il est possible de specifier, par operation:
    L'endroit ou on ecrit les donnees (qui peut etre different pour le noeud naitre, ou les noeuds esclave):
    • FORCE, ecrire sur le disque
    • OS FORCE, ecrire dans l'OS. Ca permet de sauver les infos meme en cas de crash de la JVM
    • NONE, ben la BdD ecris sur le disque quand ca l'arrange

    Et sur combien d'instances on va ecrire:
    • Sur toutes
    • Sur la majorite
    • Aucun (pas bien compris ca en fait)


    il est possible de proposer deux modes differents pour le noeud maitre, et les noeuds esclaves.
    Par exemple, ce qui semble etre recommande par Oracle , car suffisant dans la majorite des cas:
    None, none, majority.
    1. Pas d'ecriture obligatoire pour le noeud maitre
    2. Pas d'ecriture obligatoire pour les noeuds esclaves
    3. Et une ecriture sur la majorite des noeuds.


    Cette histoire de noeud qui n'est pas forcement tres clair en premiere lecture:
    On ecrit les donnes avec un taux de replication (eg: x3) dans un groupe de BdD. Ce groupe de BdD, c'est 3 bases NoSQL, avec un noeud maitre, et deux noeuds esclaves, pour une replication x3.

    Voila, j'espere que ca aide.

    PS: Tout ca, c'est si j'ai bien compris.

    Edit:
    Pour moi 'scalability', je traduit ca par passage a l'echelle. Comme l'echelle sur une carte quoi
  • Inarius
    Membre régulier
    Envoyé par Idelways
    celle d'Oracle permettrait à l'utilisateur de choisir le degré de cohérence qu'il souhaite, sans devoir confier cette gestion aux applications.

    « Les applications peuvent spécifier une consistance absolue, qui garantit que toutes les lectures retournent la valeur la plus récemment insérée d'une clé donnée. D'un autre côté, les applications tolérantes à l'inconsistance des données peuvent spécifier une consistance faible », peut-on lire sur un livre blanc qu'a sorti Oracle pour l'occasion.
    N'est ce pas exactement ce que propose déjà Cassandra avec son ConsistencyLevel?
  • Idelways
    Expert éminent sénior
    Bonjour,

    Envoyé par romatou18
    Pardonnez moi mais qu'est ce que la "scalabilité" ????
    Ce mot dérive de l'anglais "scalability". Il décrit la capacité d'un système informatique à évoluer pour répondre aux montées en charge, sans perte de performances.

    Cordialement
    Idelways
  • SQLpro
    Rédacteur
    Oracle ne manque pas d'air !!!!!

    A +
  • Fabien Celaia
    Rédacteur/Modérateur
    Envoyé par SQLpro
    Oracle ne manque pas d'air !!!!!

    A +
    Pour le champion de la coupe de l'America, c'est normal
  • Nithril
    Membre régulier
    J'attends avec impatience les premiers bench.
  • romatou18
    Nouveau membre du Club
    Pardonnez moi mais qu'est ce que la "scalabilité" ????

    Cordialement.

    Romain S