web-dev-qa-db-fra.com

En quoi l'aérospike est-elle différente des autres bases de données nosql à valeurs-clés?

Aerospike est une base de données NoSQL clé-valeur opérationnelle en mémoire avec des propriétés ACID qui prennent en charge des objets complexes et faciles à mettre à l'échelle. Mais j'ai déjà utilisé quelque chose qui fait absolument la même chose.

Redis est également une base de données NoSQL en valeur-clé (mais persistante sur le disque). Il prend également en charge différents objets complexes. Mais par rapport à Aerospike, Redis a été utilisé pendant beaucoup de temps, a déjà une communauté active et beaucoup de projets développés en elle.

Quelle est donc la différence entre l'aérospike et d'autres bases de données de valeurs clés sans sql comme redis. Y a-t-il un endroit particulier qui convient mieux à l'aérospike.

P.S. Je cherche une réponse de personnes qui ont utilisé au moins un de ces dbs (de préférence les deux) dans le monde réel et ont une expérience de la vie réelle (pas des copies-pâtes du site officiel).

48
Salvador Dali

S'il faut y répondre en un seul mot, c'est sa "performance". Les performances d'Aerospike sont bien meilleures que toutes les solutions en cluster nosql. Des performances plus élevées par nœud signifient un cluster plus petit, ce qui réduit le coût total de possession (TCO) et la maintenance. Aerospike effectue le clustering automatique, le partage automatique, le rééquilibrage automatique (lorsque l'état du cluster change), dont la plupart nécessitent des étapes manuelles dans d'autres bases de données.

J'ai dit "clusterisé" parce que je ne veux pas mélanger les redis dans ce groupe (bien que le clustering des redis soit en version bêta). Les performances en mémoire pure d'Aerospike et de redis seront comparables. Mais Redis s'attend à ce que beaucoup de choses soient gérées au niveau de la couche application comme le sharding, la redirection de requête, etc. Aerospike est développé nativement avec la persistance à l'esprit. Le regroupement de redis implique également la configuration d'un maître-esclave, etc. Vous voudrez peut-être y jeter un œil talk comparer et contraster redis vs aerospike.

47
sunil

J'utilise Redis depuis des années et je viens de commencer à utiliser Aerospike comme substitut pour de nombreuses raisons.

Bien que Redis et Aerospike aient toutes deux d'excellentes performances, le principal problème de Redis est qu'il ne stocke que les données en mémoire et n'a pas de solution de clustering officiellement publiée. Il limite la taille de votre base de données à la taille RAM de votre serveur, tandis qu'Aerospike peut être configuré pour utiliser SSD pour stocker des informations sans perte de vitesse du tout. La latence Aerospike est incroyablement faible, même avec débit de lecture/écriture élevé.

Aerospike me convient le mieux car il est capable d'évoluer avec des performances et sans travail acharné, et différent de Redis, il est également conçu pour conserver vos données complètement, minimisant la perte de données en tout état de cause. Ils ont publié une grande vidéo montrant à quel point il est facile de faire évoluer et de gérer un cluster Aerospike, et aussi comment il se configure automatiquement même en cas de situation de "catastrophe".

30
Victor Canô

Étonnamment, Redis, l'une des bases de données en mémoire les plus populaires, n'avait pas de partition automatique il y a 3 mois. Ils ont récemment ajouté cette fonctionnalité. Redi 3.0 a un partage automatique.

AS prend en charge le clustering automatique en ayant une fonction de redémarrage rapide, où tous les index sont conservés sans augmenter le débit et la base de données peut être affichée en quelques minutes (par exemple; une taille de base de données de 50 To peut être affichée en quelques minutes) .). Tout cela peut être réalisé sur du matériel de base. L'ajout de capacité n'est rien d'autre que l'ajout d'un nouveau nœud au cluster. Fonctionne à travers les centres de données et les environnements cloud plus important encore, il fonctionne pour n'importe quel environnement local.

Prend en charge la création de correspondances en ligne (gestion de la demande et de l'offre).

La base de données No-SQL doit gérer les cas d'utilisation en temps réel pour répondre aux SLA agressifs requis par le monde de la publicité d'aujourd'hui, les portails d'achat en ligne, les fournisseurs de services logistiques tels que OLA cab (Identifier le taxi le plus proche qui est prêt pour un ramassage et peut atteindre le client de moins de 5 minutes est calculé en moins de <3 ms), les applications d'enchères en ligne (précision de 99,7% dans la finalisation d'un AdBid en <3 ms), les systèmes de détection de fraude, etc. qui doivent identifier un utilisateur malveillant en <5 ms (millisecondes) .

  • Aerospike est conforme au niveau d'enregistrement ACID, ce qui est vrai pour la plupart des bases de données No-SQL.
  • Aerospike est conçu pour un environnement en cluster,
  • Conçu pour une mise à l'échelle horizontale,
  • Prend en charge l'équilibrage des données (automatique/manuel),
  • Partage automatique - niveau application ou transparent pour l'utilisateur final.

Aerospike est un magasin open source en temps réel, sans SQL et à valeur-clé. Construit en C à partir de zéro, car il existe des moyens d'écrire la base de données pour tirer parti du matériel, du réseau, du SSD, de la mémoire et du noyau. Optimisé pour le stockage SSD/Flash, la raison étant que les SSD sont l'avenir des périphériques de stockage en même temps qu'il fonctionne sur les disques durs (disques rotatifs), le SSD fournit des canaux parallèles en fonction du fournisseur de SSD qui peut choisir d'utiliser 8,16 32 et ainsi de suite. sur. Les disques SSD sont usés si le même emplacement de bloc est écrit et effacé. Dans le cas d'un SSD que vous écrivez en termes de blocs, le SSD est utilisé comme système sans fichier comme magasin de blocs et utilisé comme tampon en anneau, ce qui signifie que vous écrivez au début du tampon en anneau et continuez à ajouter des données au suivant, suivant, suivant jusqu'à ce que le fin de l'entraînement. Une fois que vous atteignez la fin, vous revenez au premier emplacement du bloc, puis continuez de la même manière, ce qui garantit que le 1er emplacement ne sera pas utilisé le plus de fois mais le même temps.

Clustering ou permet de l'appeler Clustering automatique. Ajouter un nœud et le ramener dans le cluster se produit en <100 ms. Il est implémenté à l'aide de l'algorithme Paxos.

Qu'est-ce que l'algorithme Paxos?

http://www.quora.com/Distributed-Systems/What-is-a-simple-explanation-of-the-Paxos-algorithm

RIPE160MD # qui fournit 20 octets 160 bits # il est garanti d'être unique et

Le # est une distribution 4K normale,

Chaque espace de noms conserve ses arborescences de partition, chaque espace de noms a un ID de partition, chaque partition a un arbre b.

Modèle de stockage

Dans la base de données mémoire: tout est stocké dans la DRAM, ce qui représente des performances et des coûts élevés.

Stockage sur disque: Index primaires et 2dary stockés dans la DRAM, les données vont sur SSD ou HDD. Ce qui signifie une utilisation optimale du SSD mais légèrement plus lente que la DRAM mais au moins ~ 10 fois moins chère que la DRAM.

Stockage hybride: Tout ce qui est stocké dans la DRAM. Les données ont persisté sur SSD ou HDD. Performances DRAM soutenues par la persistance SSD ou HDD. Coût DRAM plus élevé sans perte de performances.

Indice de référence

1,6 million de TPS avec YCSB (benchmark source cloud yahoo) sur 4 nœuds, en mémoire.

Garantie de performance SSD donnée par Aerospike:

ACT (Aerospike Compliance test): il est défini et développé pour tester les performances des SSD. Aujourd'hui, c'est la norme ou la certification pour SSD. Intel a publié un blog déclarant qu'ils sont les seuls fournisseurs de SSD au monde à prendre en charge 1 million de TPS utilisant ACT.

Google Cloud a fait un travail pour afficher le débit du moteur de calcul Google. Google a publié sur son blog ce que Cassandra prend 300 nœuds à produire, quel AS le fait avec 50 nœuds.

Aerospike traite les problèmes en temps réel de manière très efficace.

17
Pavan Gupta

Lynn Langit vient de publier un très benchmark tête-à-tête détaillé d'Aerospike vs. Redis fonctionnant dans différentes configurations sur le cloud AWS. Son résumé: " TL; DR - à l'échelle Aerospike gagne ".

La façon dont elle est parvenue à cette conclusion est très intéressante. Elle donne des instructions étape par étape sur la façon dont elle a produit ses résultats pour ceux qui cherchent à mieux comprendre comment faire leurs propres repères de performance. Les tests devaient être configurés comme une banque de données pure RAM, ainsi que pour la base de données persistante SSD.

Ses principales observations:

  • Aerospike est aussi rapide que Redis avec près de 1 MTPS pour des charges de travail à 100% en lecture sur un seul nœud sur AWS R3.8xlarge avec aucune persistance.
  • Aerospike est légèrement plus rapide que Redis pour les charges de travail en lecture/écriture 100/0 et 80/20 sur un seul nœud soutenu par le stockage EBS SSD (gp2) pour la persistance.
7
Peter Corless

Lorsque vous tenez compte du basculement et de la façon dont Aerospike se guérit automatiquement lorsque vous débranchez la prise d'alimentation de n'importe quel rack du centre de données, les performances restantes à un million d'opérations de lecture par seconde et par nœud sans coordinateur de trafic, de sorte que vous êtes toujours au maximum le commutateur ou un autre matériel (sauf si vous réduisez la carte des agrégats), je veux dire que rien d'autre ne se rapproche de l'analyse dynamique en temps réel auto-équilibrée avec des données sécurisées. Toutes les autres plates-formes vous obligent à vous hybrider pour obtenir tous vos attributs directement dans le triangle CAP. Sans mise en mémoire tampon ni files d'attente, sans cache pour les données, les images fantômes ne sont plus une catégorie. Autant d'avantages en plus d'être le plus performant. Nous devons juste l'admettre. Aerospike est délicieusement ridicule!

5
Michael