EA2014-NoSQL

http://fr.slideshare.net/larsga/nosql-databases-the-cap-theorem-and-the-theory-of-relativity

= Introduction noSQL = nosql is an ensemble of concept to stocker les donnees nosql types are architectures

Concept de noSQL
= Théoreme de Brewer = Dans le monde des systèmes distribués, le théoreme de Brewer(connu aussi sous le nom théoreme de CAP) dit qu'il est impossible d'avoir simultanément la garantie des ces 3 propriétés :


 * Consistency(cohérence) - Chaque noeud/serveur voir les même données au même moment
 * Availability(disponibilité) - Toutes les requêtes reçoivent use réponse en temps fini
 * Partition tolerance(résistance au morcellement) - Apart d'une coupure totale, le système fonctionnement(répondre correctement) même s'il y a des partitionnement généré par des pannes sur un ou plusieur noeuds.

Les architectures noSQL sont distribué par nature et donc ce théoreme s'applique.

Pendant la conception d'une base noSQL, il faut bien choisir 2 parmi ces 3 propriétés qu'on veut et ensuite regarder parmi les marques de noSQL sur le marché lesquelles garanties ces 2 propriétés. (Deux marques noSQL de même type ne garantissent pas forcéments les mêmes propriétés CAP).



Heureusement dans la plupart des cas, c'est les deux dernières qui sont choisies car les données EVENTUELLEMENT cohérente sont suffisante pour notre applications. Le fait d'avoir une donées qui est FORTEMENT cohérente dans un délai de quelques secondes (ou même millisecondes) nous semble moins important que ne pas avoir de résultat du tout.

= Sharding = Dans les bases de données distribués comme noSQL, sharding décrire un ensemble de techniques qui découpe une base de données entière en plusieurs shards(tranches/noeuds/serveurs). Imaginons une vitre qui représente une base de données et on la casse en plusieurs morceaux, chaque morceaux contient les données qui ne se trouvent pas dans les autres morceaux (pas de réplication).

Il y a plusieurs techniques pour 'sharder' une base de données, par exemple :

MongoDB utilise plusieurs serveurs d'indexe pour repérer les données dans un nombre de shards, ensuite redirige les requêtes vers les shards qui contiennet les données demandés.

CassandraDB utilise un grid de serveurs ou chaque serveur gère un certain nombre de données borné par une hash(random hash distribution). Si un shard reçoit une requête pour une intervalle de hash qui n'existe pas localement ou la fin de l'intervalle ne se situe pas localement, il retranfere la requête vers un autre shard dans le réseau. 

= Les 4 grands types de noSQL =

= Les marques de noSQL sur le marché =

http://air.imag.fr/index.php?title=EA2012-NoSQL&action=edit http://davidmasclet.gisgraphy.com/post/2010/06/09/10-minutes-pour-comprendre...NoSQL http://blog.neoxia.com/nosql-5-minutes-pour-comprendre/