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
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