• Aucun résultat trouvé

Cloud Computing Les bases de données NoSQL Année académique 2014/15

N/A
N/A
Protected

Academic year: 2022

Partager "Cloud Computing Les bases de données NoSQL Année académique 2014/15"

Copied!
18
0
0

Texte intégral

(1)

© 2015 Marcel Graf

Cloud Computing —

Les bases de données NoSQL

Année académique 2014/15

HEIG-VD | TIC – Technologies de l’Information et de la Communication

Cloud Computing | Les bases de données NoSQL | Année académique 2014/15

© 2015 Marcel Graf

Bases de données

Aperçu historique

2

1980

1990

2000

2010

Montée des bases de données relationnelles

Bases de données orientées-objet

Dominance des bases de données relationnelles

Apparition des bases de données NoSQL

Préhistoire : Bases de données hiérarchiques ou orientées réseau

(2)

Cloud Computing | Les bases de données NoSQL | Année académique 2014/15

(C) 2012

Bases de données SQL

Rappel : Avantages des bases de données SQL

■ Stockage de données persistant

■ La base de données stocke un grand nombre de données sur disque.

■ Les applications prennent les morceaux dont elles ont besoin à travers des requêtes.

■ Intégration d'applications

■ Souvent les applications ont besoin de partager de l'information.

■ En les faisant utiliser la même base de données, nous assurons que les applications ont des données cohérentes et mises à jour.

■ Plutôt standardisé

■ Le modèle relationnel est largement utilisé et compris.

■ L'interaction avec la base de données se fait à travers SQL, un langage standardisé (principalement).

■ Gestion des accès concurrents

■ Plusieurs utilisateurs accèdent simultanément à la même information.

■ La gestion des accès concurrents est difficile à programmer, c'est pourquoi les bases de données offrent des transactions pour aider à assurer une interaction cohérente.

■ Reporting

■ Le modèle de données SQL est simple et la standardisation a fait de lui la base d'un grand nombre d'outils de reporting.

3

HEIG-VD | TIC – Technologies de l’Information et de la Communication

Bases de données SQL

Rappel : Modélisation relationnelle — Exemple de données et schéma

Customer

Id Name

1 Anne

2 Bob

3 Claire

Product

Id Name

27 Garden chair 28 Cushion 29 Umbrella

Order Id CustomerID

99 1

100 3

101 1

Shipping AddressId 77 78 79

BillingAddress

Id AddressId

55 77

56 78

57 79

CustomerID 1 2 3

Address Id 77 78 79

City London

Nice Milano OrderItem

Id ProductId

210 27

211 29

212 27

OrderID 99 99 100

Price 49.90 12.80 49.90

name

Customer Order

Billing Address

street city state

Address

cardNumber transactionId Order Payment

price Order Item

name Product

1 *

1

*

*

1

1 *

1

* 1

*

*

1

1

1

(3)

Cloud Computing | Les bases de données NoSQL | Année académique 2014/15

© 2015 Marcel Graf

Bases de données SQL

Problèmes des bases de données SQL — Désadaptation d'impédance

5 ptg9987953

line items:

ID: 1001 customer: Ann

$48 2 0321293533

$39 1 0321601912

$51 1 0131495054

$96

$39

$51

payment details:

Card: Amex CC Number: 12345 expiry: 04/2001

orders

customers

order lines

credit cards

Figure 1.1 An order, which looks like a single aggregate structure in the UI, is split into many rows from many tables in a relational database

a lot of grunt work, but can become a problem of their own when people try too hard to ignore the database and query performance suffers.

Relational databases continued to dominate the enterprise computing world in the 2000s, but during that decade cracks began to open in their dominance.

1.3 Application and Integration Databases

The exact reasons why relational databases triumphed over OO databases are still the subject of an occasional pub debate for developers of a certain age. But in our view, the primary factor was the role of SQL as an integration mechanism between applications. In this scenario, the database acts as an integration database—with multiple applications, usually developed by separate teams, storing their data in a common database. This improves communication because all the applications are operating on a consistent set of persistent data.

There are downsides to shared database integration. A structure that’s designed to integrate many applications ends up being more complex—indeed, often dra- matically more complex—than any single application needs. Furthermore, should an application want to make changes to its data storage, it needs to coordinate with all the other applications using the database. Different applications have different structural and performance needs, so an index required by one 6 Chapter 1 Why NoSQL?

From the Library of Marcel Graf

HEIG-VD | TIC – Technologies de l’Information et de la Communication

Cloud Computing | Les bases de données NoSQL | Année académique 2014/15

© 2015 Marcel Graf

Bases de données orientées-objet

L'échec des bases de données orientées-objet

6

■ Inventées au milieu des années 1990, les bases de données orientées-objet promettaient de résoudre le problème de la désadaptation d'impédance.

■ Mais contrairement à ce que l'on attendait, elles ne connurent pas beaucoup de succès.

■ Les bases de données SQL restèrent dominantes.

■ Raison majeure : leur utilisation comme bases de données d'intégration entre applications différentes

Facturation

Inventaire

Base de

données

d'intégration

(4)

Cloud Computing | Les bases de données NoSQL | Année académique 2014/15

(C) 2012

Bases de données SQL

Aujourd'hui la dominance de SQL est en train de craquer

7

■ Les bases de données relationnelles sont conçues pour tourner sur une seule machine. Pour étendre la capacité de la base de données on doit acheter une machine plus puissante.

■ Il est moins cher et on peut étendre la capacité de stockage davantage en achetant beaucoup de machines : un cluster

■ Individuellement les machines ne sont pas fiables, mais le cluster continue de fonctionner si une machine meurt — le cluster en total est fiable.

■ Mais les bases de données relationnelles ne sont pas adaptés à des clusters.

HEIG-VD | TIC – Technologies de l’Information et de la Communication

■ Google et Amazon furent les premiers à utiliser des grands clusters, et évitèrent les bases de données relationnelles

■ Google : Bigtable

■ Amazon : Dynamo

■ Leurs efforts ont été une grande inspiration pour la communauté NoSQL

Bases de données NoSQL

Une nouvelle approche pour les bases de données

Dynamo: Amazon’s Highly Available Key-value Store

Giuseppe DeCandia, Deniz Hastorun, Madan Jampani, Gunavardhan Kakulapati, Avinash Lakshman, Alex Pilchin, Swaminathan Sivasubramanian, Peter Vosshall

and Werner Vogels Amazon.com

ABSTRACT

Reliability at massive scale is one of the biggest challenges we face at Amazon.com, one of the largest e-commerce operations in the world; even the slightest outage has significant financial consequences and impacts customer trust. The Amazon.com platform, which provides services for many web sites worldwide, is implemented on top of an infrastructure of tens of thousands of servers and network components located in many datacenters around the world. At this scale, small and large components fail continuously and the way persistent state is managed in the face of these failures drives the reliability and scalability of the software systems.

This paper presents the design and implementation of Dynamo, a highly available key-value storage system that some of Amazon’s core services use to provide an “always-on” experience. To achieve this level of availability, Dynamo sacrifices consistency under certain failure scenarios. It makes extensive use of object versioning and application-assisted conflict resolution in a manner that provides a novel interface for developers to use.

Categories and Subject Descriptors D.4.2 [Operating Systems]: Storage Management; D.4.5 [Operating Systems]: Reliability; D.4.2 [Operating Systems]:

Performance;

General Terms

Algorithms, Management, Measurement, Performance, Design, Reliability.

1. INTRODUCTION Amazon runs a world-wide e-commerce platform that serves tens of millions customers at peak times using tens of thousands of servers located in many data centers around the world. There are strict operational requirements on Amazon’s platform in terms of performance, reliability and efficiency, and to support continuous growth the platform needs to be highly scalable. Reliability is one of the most important requirements because even the slightest outage has significant financial consequences and impacts customer trust. In addition, to support continuous growth, the platform needs to be highly scalable.

One of the lessons our organization has learned from operating Amazon’s platform is that the reliability and scalability of a system is dependent on how its application state is managed.

Amazon uses a highly decentralized, loosely coupled, service oriented architecture consisting of hundreds of services. In this environment there is a particular need for storage technologies that are always available. For example, customers should be able to view and add items to their shopping cart even if disks are failing, network routes are flapping, or data centers are being destroyed by tornados. Therefore, the service responsible for managing shopping carts requires that it can always write to and read from its data store, and that its data needs to be available across multiple data centers.

Dealing with failures in an infrastructure comprised of millions of components is our standard mode of operation; there are always a small but significant number of server and network components that are failing at any given time. As such Amazon’s software systems need to be constructed in a manner that treats failure handling as the normal case without impacting availability or performance.

To meet the reliability and scaling needs, Amazon has developed a number of storage technologies, of which the Amazon Simple Storage Service (also available outside of Amazon and known as Amazon S3), is probably the best known. This paper presents the design and implementation of Dynamo, another highly available and scalable distributed data store built for Amazon’s platform.

Dynamo is used to manage the state of services that have very high reliability requirements and need tight control over the tradeoffs between availability, consistency, cost-effectiveness and performance. Amazon’s platform has a very diverse set of applications with different storage requirements. A select set of applications requires a storage technology that is flexible enough to let application designers configure their data store appropriately based on these tradeoffs to achieve high availability and guaranteed performance in the most cost effective manner.

There are many services on Amazon’s platform that only need primary-key access to a data store. For many services, such as those that provide best seller lists, shopping carts, customer preferences, session management, sales rank, and product catalog, the common pattern of using a relational database would lead to inefficiencies and limit scale and availability. Dynamo provides a simple primary-key only interface to meet the requirements of these applications.

Dynamo uses a synthesis of well known techniques to achieve scalability and availability: Data is partitioned and replicated using consistent hashing [10], and consistency is facilitated by object versioning [12]. The consistency among replicas during updates is maintained by a quorum-like technique and a decentralized replica synchronization protocol. Dynamo employs Permission to make digital or hard copies of all or part of this work for

personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies bear this notice and the full citation on the first page. To copy otherwise, or republish, to post on servers or to redistribute to lists, requires prior specific permission and/or a fee.

SOSP’07, October 14–17, 2007, Stevenson, Washington, USA.

Copyright 2007 ACM 978-1-59593-591-5/07/0010...$5.00.

195 205 4

Bigtable: A Distributed Storage System for Structured Data

FAY CHANG, JEFFREY DEAN, SANJAY GHEMAWAT, WILSON C. HSIEH, DEBORAH A. WALLACH, MIKE BURROWS, TUSHAR CHANDRA, ANDREW FIKES, and ROBERT E. GRUBER Google, Inc.

Bigtable is a distributed storage system for managing structured data that is designed to scale to a very large size: petabytes of data across thousands of commodity servers. Many projects at Google store data in Bigtable, including web indexing, Google Earth, and Google Finance. These applications place very different demands on Bigtable, both in terms of data size (from URLs to web pages to satellite imagery) and latency requirements (from backend bulk processing to real- time data serving). Despite these varied demands, Bigtable has successfully provided a flexible, high-performance solution for all of these Google products. In this article, we describe the simple data model provided by Bigtable, which gives clients dynamic control over data layout and format, and we describe the design and implementation of Bigtable.

Categories and Subject Descriptors: C.2.4 [Computer Communication Networks]: Distributed Systems—distributed databases

General Terms: Design

Additional Key Words and Phrases: Large-Scale Distributed Storage ACM Reference Format:

Chang, F., Dean, J., Ghemawat, S., Hsieh, W. C., Wallach, D. A., Burrows, M., Chandra, T., Fikes, A., and Gruber, R. E. 2008. Bigtable: A distributed storage system for structured data. ACM Trans. Comput. Syst. 26, 2, Article 4 (June 2008), 26 pages. DOI = 10.1145/1365815.1365816.

http://doi.acm.org/10.1145/1365815.1365816.

This article was originally published as an award paper in theProceedings of the 7th Symposium on Operating Systems Design and Implementation[Chang et al. 2006]. It is being republished here with minor modifications and clarifications.

Authors’ address: Google Inc., 1600 Amphitheatre Parkway, Mountain View, CA 94043; email:{fay, jeff, sanjay, wilsonh, kerr, m3b, tushar, fikes, gruber}@google.com.

Permission to make digital or hard copies of part or all of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or direct commercial advantage and that copies show this notice on the first page or initial screen of a display along with the full citation. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credits is permitted. To copy otherwise, to republish, to post on servers, to redistribute to lists, or to use any component of this work in other works requires prior specific permission and/or a fee. Permissions may be requested from the Publications Dept., ACM, Inc., 2 Penn Plaza, Suite 701, New York, NY 10121-0701 USA, fax +1 (212) 869-0481, or [email protected].

c

⃝2008 ACM 0734-2071/2008/06-ART4 $5.00 DOI: 10.1145/1365815.1365816. http://doi.acm.org/

10.1145/1365815.1365816.

ACM Transactions on Computer Systems, Vol. 26, No. 2, Article 4, Pub. date: June 2008.

(5)

Cloud Computing | Les bases de données NoSQL | Année académique 2014/15

© 2015 Marcel Graf

Bases de données NoSQL

Définition

■ Il n'y a pas de définition précise du terme NoSQL

■ Utilisé la première fois en 2009 pour nommer un workshop de développeurs de nouvelles bases de données.

■ Mais il y a un nombre de caractéristiques communes aux bases de données NoSQL

■ Elles sont issues des sites web du 21ème siècle.

■ Elles n'utilisent pas le modèle de données relationnel, et n'utilisent donc pas le langage SQL.

■ Elles sont conçues pour tourner sur un cluster.

■ Elles sont souvent Open Source.

■ Elles n'ont pas un schéma fixe, ce qui permet de stocker n'importe quel type de données dans un enregistrement.

9

HEIG-VD | TIC – Technologies de l’Information et de la Communication

Cloud Computing | Les bases de données NoSQL | Année académique 2014/15

(C) 2012

Bases de données NoSQL

Pourquoi les bases de données relationnelles vont continuer à exister

■ Il y a des bonnes raisons pour la survie des bases de données relationnelles :

■ Le modèle relationnel est toujours pertinent

■ S'adapte à beaucoup de types de données, spécialement quand il faut décortiquer les données et les reconstituer de manière différente pour des usages différents.

■ Transactions ACID

■ Pour pouvoir tourner sur un cluster, la majorité des bases de données NoSQL ont des capacités transactionnelles limitées. C'est souvent suffisant... mas pas toujours.

■ Outils

■ La longue dominance de SQL signifie que grand nombre d'outils ont été créés pour fonctionner avec des BD relationnelles.

■ Familiarité

■ Les systèmes NoSQL sont encore nouveaux, et les développeurs ne les connaissent pas encore bien.

10

(6)

Cloud Computing | Les bases de données NoSQL | Année académique 2014/15

© 2015 Marcel Graf

Bases de données NoSQL

Modèle de données

11

Document Famille de

colonnes

Graphe

Clé-valeur

HEIG-VD | TIC – Technologies de l’Information et de la Communication

Bases de données NoSQL

Modèle de données clé-valeur

■ La base de données permet de stocker des objets quelconques (un nombre, une image, un document, ...) et de les retrouver grâce à une clé

■ C'est le principe d'un hashmap, mais stocké

de manière persistante sur un disque. 837094

071943

812792

(7)

Cloud Computing | Les bases de données NoSQL | Année académique 2014/15

© 2015 Marcel Graf

Bases de données NoSQL

Modèle de données orienté document

13

■ La base de données permet de stocker des documents, où chaque document est une structure de données complexe.

■ Structure hiérarchique (comme un document XML)

■ Structure souvent représentée en JSON

■ Le développeur peut faire des requêtes dans la structure de données

■ pour en extraire des parties

■ ou mettre à jour des parties

{""id":"1001,

"""customer_id":"7231,

"""line8items":"[

""""{""product_id":"4555,""quantity":"8"},

""""{""product_id":"7655,""quantity":"4"},

""],

"""discount8code":"Y }

{""id":"1002,

"""customer_id":"9831,

"""line8items":"[

""""{""product_id":"4555,""quantity":"3"},

""""{""product_id":"2155,""quantity":"4"},

""""{""product_id":"6384,""quantity":"1"},

""], }

HEIG-VD | TIC – Technologies de l’Information et de la Communication

Cloud Computing | Les bases de données NoSQL | Année académique 2014/15

© 2015 Marcel Graf

Bases de données NoSQL

Modèle de données famille de colonnes

■ Clé ligne (row key)

■ Une clé unique par ligne.

■ Une ligne contient plusieurs familles de colonnes.

Accessibles par le biais de la clé.

■ Famille de colonnes (column family)

■ Une combination de colonnes qui vont ensemble.

■ Porte un nom.

■ Contient plusieurs paires clé colonne / valeur colonne.

■ Clé colonne / valeur colonne (column key / column value)

■ Paire clé-valeur qui contient les données.

14

...

071943

...

name "Martin"

billingAddress données...

payment données...

OR1001 données...

OR1002 données...

OR1003 données...

OR1004 données...

Clé colonne Valeur colonne

Clé ligne

profile

orders

Famille de colonnes

(8)

Cloud Computing | Les bases de données NoSQL | Année académique 2014/15

© 2015 Marcel Graf

Bases de données NoSQL

Modèle de données orienté graphe

■ Structure d'un graphe composé de sommets et arcs.

■ Peut être orienté ou non.

■ Très avantageux pour suivre des relations entre objets.

■ Les bases de données relationnelles ne sont pas très bonnes pour cela. Il faut faire des joins qui peuvent devenir très complexes.

■ Le terme "relationnel" vient de la théorie des ensembles.

■ Langage d'interrogation adapté à la structure de graphe.

15

Alice

Fred

Anne Yann

est ami(e) avec

est ami(e) avec

est la fille de

est ami(e) avec

Marie est marié avec

HEIG-VD | TIC – Technologies de l’Information et de la Communication

Bases de données NoSQL

Modèle de données orienté graphe — Langage d'interrogation

■ Exemple : Langage Cypher de Neo4j

Barbara friend of Elizabeth

Anna Carol

BigCo

friend of friend of

employee of employee of

(9)

Cloud Computing | Les bases de données NoSQL | Année académique 2014/15

(C) 2012

Bases de données NoSQL

Comment les utiliser ?

■ Exemple d'une plateforme e-commerce

■ Traditionnellement elle utilise une base de données relationnelle pour tout ses besoins de stockage.

■ Les bases de données NoSQL offrent un nombre de modèles de données différents.

■ La plateforme e-commerce peut utiliser pour chaque composante la base de données la mieux adaptée à ses besoins.

17

Plateforme e-commerce

Base de données relationnelle Caddie électronique

Données session

Commandes

Business intelligence Data warehouse

Plateforme e-commerce

BD clé-valeur

BD documents

BD relationnelle

BD graphe Données session

Caddie électronique

Commandes

Inventaire Prix

Graphe social clients

HEIG-VD | TIC – Technologies de l’Information et de la Communication

Cloud Computing | Les bases de données NoSQL | Année académique 2014/15

(C) 2012

Bases de données NoSQL

Utilisations recommandées

■ Modèle clé-valeur

■ Stockage d'information de session web

■ Profils et préférences d'utilisateurs

■ Données du caddie électronique

■ Modèle orienté document

■ Logging d'événements

■ Gestion électronique des documents, plateformes de blog

■ Collecte de données pour analytique web

■ Applications e-commerce : données de produits et de commandes

■ Modèle famille de colonnes

■ Logging d'événements

■ Gestion électronique des documents, plateformes de blog

■ Compteurs

■ Modèle orienté graphe

■ Réseaux sociaux

■ Applications de routage et expédition basées sur la géolocalisation

■ Moteurs de recommandations

18

(10)

Cloud Computing | Les bases de données NoSQL | Année académique 2014/15

© 2015 Marcel Graf

Bases de données NoSQL

Principes de distribution — Sharding et réplication

19

Alice Fred

Iris Sylvie

Alain

René

Louis Alice Fred

Iris Sylvie

Alain

René

Louis Sharding : L'espace de stockage est subdivisé en plusieurs zones. Chaque zone est affectée à une machine.

Réplication : Pour un objet on crée plusieurs copies. Chaque copie est stockée sur une machine différente.

Fred

Alain

Fred Fred Fred

Alain Alain Alain

HEIG-VD | TIC – Technologies de l’Information et de la Communication

Bases de données NoSQL

Sharding : Découpage de la base de données

au lieu d'un grand espace

de stockage

une multitude de machines

élasticité : ajout de nouvelles machines Au lieu de traiter la base de données comme un éspace monolithique, les données sont découpées en zones (shards = éclats de verre) qui sont assignées à des machines.

<clé> <valeur>

Alice Fred ...

<photo de Alice>

<photo de Fred>

...

Supposons que les données soient du type clé-valeur, p.ex. des photos d'utilisateurs identifiés par leurs noms.

Fred

Iris Sylvie

Alain

René

Louis Alice Fred

Iris Sylvie

Alain

René

Louis

La question est comment découper

l'espace des clés entre les machines pour

équilibrer la charge.

(11)

Cloud Computing | Les bases de données NoSQL | Année académique 2014/15

© 2015 Marcel Graf

Bases de données NoSQL

Placement équilibré d'objets

21

A B C D

machines

distributeur 1 distributeur 2

assigner l'objet à

quelle machine ? récupérer l'objet de

quelle machine ? stocker objet avec clé Alice récupérer objet avec clé Alice

■ Les requêtes des utilisateurs pour stocker ou récupérer les objets sont reçues par des distributeurs. Ils déterminent les machines qui sont

responsables du stockage des objets.

■ Les distributeurs doivent prendre une décision très rapidement.

■ Ils ne peuvent pas

communiquer entre eux, cela prendrait trop de temps.

HEIG-VD | TIC – Technologies de l’Information et de la Communication

Cloud Computing | Les bases de données NoSQL | Année académique 2014/15

© 2015 Marcel Graf

Bases de données NoSQL

Placement équilibré d'objets — Le hachage traditionnel

■ Une table de hachage distribue les objets a stocker dans un tableau grâce à une fonction de hachage calculée sur la clé.

■ Une bonne fonction de hachage distribue les objets plus ou moins uniformément pour minimiser les collisions.

22

0 1 2 3

table de hachage avec 4 positions

position = hash(clé) mod 4

(12)

Cloud Computing | Les bases de données NoSQL | Année académique 2014/15

© 2015 Marcel Graf

A B C D A B C D A B C D A B C D A B C

A B C D E A B C D E A B C D E A B C D

Bases de données NoSQL

Placement équilibré d'objets — Le hachage traditionnel

■ Le même principe peut s'appliquer au placement des objets sur les machines.

Seul problème : Quand on rajoute une machine, les positions de presque tous les objets changent. Cela causerait un trafic de migration inacceptable !

23

position = hash(clé) mod 4 Alice Fred Sylvie

Alain

hash( ) Fred

hash( ) Alain

hash( ) Sylvie

hash( ) Alice

0 1 2 3 4 ...

HEIG-VD | TIC – Technologies de l’Information et de la Communication

Bases de données NoSQL

Placement équilibré d'objets — Le hachage cohérent

■ Le hachage cohérent (consistent hashing) évite les déplacements des objets en cas d'addition ou d'enlèvement de machines.

■ Les clés son mappées par la même fonction de hachage, mais la valeur de hachage est mappée dans un cercle.

■ Les machines sont mappées de la même manière dans le cercle en utilisant leur nom comme clé.

■ On établit la convention suivante : Un objet est assigné á la machine qui le suit dans le

Alice Fred Sylvie Alain

hash( ) Fred

hash( ) Alain

hash( ) Sylvie hash( ) Alice

A B C D

hash( ) A

hash( ) D hash( ) C

hash( ) B

2 32

0 2 64 2 96 2 128

Alice

Fred A

B D

(13)

Cloud Computing | Les bases de données NoSQL | Année académique 2014/15

© 2015 Marcel Graf

Bases de données NoSQL

Placement équilibré d'objets — Le hachage cohérent

25

Alice

Fred

Sylvie

Alain A

B

C D

Alice

Fred

Sylvie

Alain A

B

C D

E

Alice

Fred

Sylvie

Alain A

B

C E

objets qui vont entrer dans E

objets qui vont sortir de D Situation initiale L'ajout d'une machine affecte

seulement les objets entre la nouvelle machine et la machine qui la précède.

L'enlèvement d'une machine affecte seulement les objets entre la machine enlevée et la machine qui la précède.

HEIG-VD | TIC – Technologies de l’Information et de la Communication

Cloud Computing | Les bases de données NoSQL | Année académique 2014/15

© 2015 Marcel Graf

Bases de données NoSQL

Cohérence en présence d'un conflit logique— Problème

26

GET GET

POST

POST Navigateur Serveur

d'application Base de données

Utilisateur A Utilisateur B

Utilisateurs A et B accèdent aux mêmes données

Utilisateur A modifie les données

Utilisateur B modifie les données Conflit

write-write

(14)

Cloud Computing | Les bases de données NoSQL | Année académique 2014/15

© 2015 Marcel Graf

Bases de données NoSQL

Cohérence en présence d'un conflit logique— Problème — Première solution

27

GET GET

POST

POST Navigateur Serveur

d'application Base de données

Utilisateur A Utilisateur B

Première solution : envelopper la lecture et l'écriture des données dans une transaction. La base de données va détecter le conflit, exécuter une des deux transactions avec succès et faire un rollback pour l'autre.

Probléme : Maintenir une transaction aussi longtemps va dégrader la performance.

HEIG-VD | TIC – Technologies de l’Information et de la Communication

Bases de données NoSQL

Cohérence en présence d'un conflit logique— Problème — Deuxième solution

GET GET

POST Navigateur Serveur

d'application Base de données

Utilisateur A Utilisateur B

Deuxième solution : envelopper seulement l'écriture dans une transaction. Cela va assurer que l'écriture est faite

complètement ou pas du tout (pas d'écriture moitié faite).

Mais ni la base de

données ni

Conflit

(15)

Cloud Computing | Les bases de données NoSQL | Année académique 2014/15

© 2015 Marcel Graf

Bases de données NoSQL

Cohérence en présence d'un conflit logique— Problème — Deuxième solution — Suite

29

GET GET

POST

POST Navigateur Serveur

d'application Base de données

Utilisateur A Utilisateur B

Un mécanisme extérieur résout le problème :

L'application ajoute un champ de version aux données.

v. 101

v. 102

La version sera incrémentée par l'application chaque fois que les données sont modifiées.

v. 101

v. 101 La version est aussi retournée

par le GET et passée avec le POST.

v. 101?

Avant de modifier les données dans la base de données, l'application vérifie qu'elles sont bien à la bonne version.

v. 101

v. 101 v. 101?

Ainsi l'application va détecter qu'il y a un problème avec l'écriture de l'utilisateur B.

HEIG-VD | TIC – Technologies de l’Information et de la Communication

Cloud Computing | Les bases de données NoSQL | Année académique 2014/15

© 2015 Marcel Graf

Bases de données NoSQL

Cohérence en présence de réplication

30

■ La réplication des données en plusieurs copies introduit des nouveaux problèmes de

cohérence.

■ Tant que les replicas sont connectées, tout va bien.

■ Quand elles sont déconnectées (network partition) il peut y avoir problème.

■ Il y a différentes approches dans ce cas.

■ Refuser la modification des données pour garantir la cohérence des replicas : bases de données relationnelles

■ Permettre la modification des données et accepter une incohérence des replicas : bases de données NoSQL

Réplicas connectées

Réplicas déconnectées

(16)

Cloud Computing | Les bases de données NoSQL | Année académique 2014/15

(C) 2012

Bases de données NoSQL

Cohérence en présence de réplication — Bases de données avec commit en deux étapes

31

Replica A

Replica B Transaction

monitor Appli-

cation

Connected

x = 1 x = 1

write x = 2

prepare x = 2 prepare OK

commit

commit OK x = 2

commit

commit OK x = 2

OK

prepare x = 2 prepare OK

■ La base de données garantit un état cohérent des replicas.

HEIG-VD | TIC – Technologies de l’Information et de la Communication

Replica A

Replica B Transaction

monitor Appli-

cation

partition

Partitioned (disconnected)

Bases de données NoSQL

Cohérence en présence de réplication — Bases de données avec commit en deux étapes

x = 1 x = 1

write x = 2

prepare x = 2 prepare OK

timeout prepare x = 2

cancel

■ La base de données fait un rollback (elle refuse

de faire l'opération) et garantit un état cohérent

des replicas.

(17)

Cloud Computing | Les bases de données NoSQL | Année académique 2014/15

(C) 2012

Bases de données NoSQL

Cohérence en présence de réplication — Bases de données sans garanties de cohérence

33

Replica A

Replica B Appli-

cation

Connected

x = 1 x = 1

OK write x = 2

x = 2

sync x = 2

x = 2

■ La base de données accepte l'opération pour une replica sans se soucier de l'état de l'autre réplica.

■ Si les replicas sont connectées elles auront finalement un état cohérent

HEIG-VD | TIC – Technologies de l’Information et de la Communication

Cloud Computing | Les bases de données NoSQL | Année académique 2014/15

(C) 2012

Bases de données NoSQL

Cohérence en présence de réplication — Bases de données sans garanties de cohérence

34

Replica A

Replica B Appli-

cation

partition

Partitioned (disconnected)

x = 1 x = 1

write x = 2

OK x = 2

sync x = 2

■ Aussi longtemps que les replicas restent

déconnectées elles auront un état incohérent.

(18)

Cloud Computing | Les bases de données NoSQL | Année académique 2014/15

(C) 2012

Bases de données NoSQL

Réplication — Modèles de distribution

■ Avec la réplication des données on utilise généralement un de deux modèles

35

read write

Master

Slave

Slave

Slave replication

Réplication master-slave

read write

Peer

Peer

Peer

Peer replication

Réplication peer-to-peer

Références

Documents relatifs

Compétences d'un utilisateur averti de BD relationnelles disposant de notions de base sur la conception et l'administration d'une BD. • Bases de données relationnelles:

C’est un mécanisme de partitionnement horizontal (par tuples) des données dans lequel les objets-données sont stockées sur des nœuds serveurs différents en fonction d’une clé

 Règle 1 : Toutes les données sont représentées par des valeurs présentes dans des colonnes et des lignes de tables..  Règle 3 : Une cellule peut ne pas contenir de valeur,

 Il est obligatoire de remplir la fiche modulaire (à télécharger sur le site web) et l’envoyer avec la photo par émail. ASSIDUITÉ

G´en´erallement, la structure d’un objet g´eospatial flou doit d´efinir le type de l’objet, sa g´eom´etrie (forme et coordonn´ees) et la structure de l’ensemble de ses

La base de données (données primaires) est la matière première à partir de laquelle la bioinformatique va produire d'autres données (données secondaires) et

To compute a basis of R n relative to the linear span of several vectors, one may compute the reduced column echelon form for the matrix made of those vectors, and pick, for a

• dans le cas particulier d’une entité faible, la clé primaire de la relation correspondant à l’entité faible sera le couple constitué de la clé de l’entité forte et de