Riak 2.0

Que reste-t'il aux autres ?

Rémi Alvado / @remialvado / Shopping Adventure

Quelques rappels sur Riak 1.x

  • Sharding automatique
  • Réplication
  • Masterless
  • Schemaless
  • Stockage, Recherche et Map/Reduce
  • Eventually consistent
  • Résolution de conflit par Vector Clock

On perd quoi ?

RIEN
On ne fait que gagner de nouvelles fonctionnalités :)

Storage - Consistency Mode

  • Objectif : Choisir la meilleure stratégie pour les écritures
  • Modes : Eventually et Strong
  • Eventually : Nombre ou liste de followers, panier, blog post, stockage de log, ...
  • Strong : Systèmes Temps Réel, transaction financière, ...

Storage - Data Types

  • Objectif : gestion automatique des conflits
  • Basé sur les CRDT développé par l'INRIA
  • Types : counter, set, map, string et boolean
  • Exemples Fonctionnels : un compteur de pages vues, un panier, une liste de followers, ...
  • Exemples Techniques : un auto-increment distribué, un Merkle Tree, ...

Storage - Bucket Types

  • Objectifs : partager des attributs entre les buckets
  • Basé sur les meta-propriétés des Buckets
  • Surchargeable pour chaque bucket
  • Utile pour la gestion de la sécurité et le mode d'écriture

Storage - Technical Changes

  • LevelDB : gros changements dans la gestion de la mémoire
  • Réplication Multi Datacenter
  • Résolution des conflits côté applicatif
  • Améliorations dans le compactage des données

Search - Solr

  • Objectif : améliorer la couverture fonctionnelle du Search
  • Riak 2 embarque un cluster Solr 4 auto-géré
  • 100% compatible avec l'API Solr
  • Mapping automatique entre les KV et les index

Search - Security

  • Objectifs : Limiter l'accès aux données et leur modification
  • Authentication : Anonymous, Password, PAM et Active Directory
  • Authorization : ACL
  • Exemple :
    
    riak-admin security grant riak_kv.get ON eggbasket_* to victor
    riak-admin security grant riak_kv.put ON eggbasket_* to luc
                                

Autres

  • Configuration normalisée
  • Accès à Riak en Elixir
  • Généralisation du Protocol Buffer

Riak Cloud Storage

  • Dédié au stockage d'objets volumineux
  • Découpage des objets avant dispersion
  • API compatible S3
  • Compatible Open Stack et Cloud Stack

Questions ?

Fork me on GitHub