13.07.2013 Views

L'élasticité des bases de données sur le cloud computing - CoDE

L'élasticité des bases de données sur le cloud computing - CoDE

L'élasticité des bases de données sur le cloud computing - CoDE

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Choix CAP et PACELC Les systèmes respectant la propriété ACID sont <strong><strong>de</strong>s</strong> systèmes CA<br />

(point <strong>de</strong> vue CAP), c’est-à-dire que pour préserver l’intégrité <strong>de</strong> <strong>le</strong>urs <strong>données</strong>, ils sont prêts<br />

à sacrifier la tolérance à la partition. MySQL Cluster a choisi <strong>de</strong> préserver la consistance au<br />

détriment <strong><strong>de</strong>s</strong> performances et <strong>de</strong> la tolérance à la partition. Ces systèmes sont donc PC/LC.<br />

En cas <strong>de</strong> partition, vu son modè<strong>le</strong> <strong>de</strong> réplication synchrone, MySQL cluster empêchera <strong>le</strong>s<br />

opérations <strong>de</strong> mises-à-jour.<br />

Réplication Pour éviter <strong>de</strong> propager la fail<strong>le</strong> d’une instance, <strong>le</strong>s <strong>données</strong> sont répliquées <strong>de</strong><br />

façon synchrone[8] c’est-à-dire que lors <strong>de</strong> l’écriture (insertion ou mise-à-jour) d’une entrée,<br />

l’information est propagée <strong>sur</strong> toutes <strong>le</strong>s répliques et l’opération n’est validée que lorsque<br />

toutes <strong>le</strong>s répliques l’ont validée.<br />

Dans <strong>le</strong> cas où toutes <strong>le</strong>s répliques d’une donnée sont à jour, si une instance subit une défaillance,<br />

on peut alors rediriger son trafic <strong>sur</strong> une réplique et éviter ainsi que cette défaillance<br />

soit fata<strong>le</strong> pour tout <strong>le</strong> système.<br />

Modè<strong>le</strong> <strong>de</strong> consistance MySQL Cluster, vu son respect <strong><strong>de</strong>s</strong> propriétés ACID, opte pour<br />

une consistance transactionnel<strong>le</strong>. En pratique, MySQL Cluster ne propose pas <strong>de</strong> consistance<br />

transactionnel<strong>le</strong> complète mais une consistance transactionnel<strong>le</strong> Read Committed [8]. Lors<br />

d’une <strong>le</strong>cture, la requête voit <strong>le</strong>s <strong>données</strong> tel<strong>le</strong>s qu’el<strong>le</strong>s sont avant que la requêtes ait été<br />

effectuée : <strong>le</strong>s modifications validées par <strong>le</strong>s transactions concurrentes sont retournées par la<br />

<strong>le</strong>cture.<br />

Le modè<strong>le</strong> <strong>de</strong> requêtes MySQL Cluster gar<strong>de</strong> toute la richesse <strong><strong>de</strong>s</strong> versions non distribuées<br />

<strong>de</strong> MySQL. On peut effectuer toutes <strong>le</strong>s requêtes SQL comme si la BD n’était pas distribuée<br />

et tous <strong>le</strong>s mécanismes internes sont transparents pour l’utilisateur.<br />

3.2.4 Autres solutions SQL<br />

Dans cette section, nous passerons en revue quelques initiatives SQL entreprises. Nous<br />

ne nous attar<strong>de</strong>rons pas <strong>sur</strong> cel<strong>le</strong>s-ci car, même si <strong>le</strong>urs concepts sont très intéressants, ces<br />

solutions ne sont pas encore matures. Il est donc fort diffici<strong>le</strong> <strong>de</strong> juger <strong>de</strong> <strong>le</strong>ur efficacité.<br />

De manière théorique, nous suivons l’avis <strong>de</strong> Catell pour dire que <strong>le</strong>s SGBDRs <strong>de</strong>vraient<br />

être capab<strong>le</strong>s <strong>de</strong> passer à l’échel<strong>le</strong> tant que <strong>le</strong>s applications évitent <strong>le</strong>s opérations traversant<br />

plusieurs nœuds et <strong><strong>de</strong>s</strong> transactions <strong>de</strong> gran<strong>de</strong> amp<strong>le</strong>ur [20]. On remarque que cette concession<br />

n’affecte pas <strong>le</strong>ur capacité à concurrencer <strong>le</strong>s solutions NoSQL (étudiées en section 3.3) qui<br />

traitent aussi diffici<strong>le</strong>ment (voire ne sont pas du tout capab<strong>le</strong>s <strong>de</strong> traiter) <strong>de</strong> tel<strong>le</strong>s opérations.<br />

Sca<strong>le</strong>DB [11] se veut la version MySQL <strong>de</strong> Orac<strong>le</strong> RAC. Tout comme MySQL Cluster, il<br />

se place <strong>sur</strong> une version <strong>de</strong> MySQL en remplaçant InnoDB. Son principe est <strong>de</strong> se reposer <strong>sur</strong><br />

une architecture à mémoire partagée (shared memory en anglais) : tout nœud a accès à tout<br />

disque. La distribution <strong><strong>de</strong>s</strong> <strong>données</strong> est automatique au travers <strong><strong>de</strong>s</strong> serveurs. Sca<strong>le</strong>DB n’utilise<br />

pas <strong>de</strong> réplication mais <strong><strong>de</strong>s</strong> sauvegar<strong><strong>de</strong>s</strong> sont faites <strong>sur</strong> disque (pour récupérer <strong>le</strong>s <strong>données</strong> en<br />

cas <strong>de</strong> défaillances).<br />

19

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!