En tant que système distribué, Cassandra n’utilise pas de maître. Tous les clusters sont dotés d’autorisations identiques et peuvent traiter toutes les requêtes de bases de données qui leur sont adressées. Cela permet d’en augmenter considérablement les performances. Les données sont distribuées sur des nœuds. La facilité d’ajout de nœuds assure la bonne évolutivité du système. Après l’installation, il suffit de distribuer les fichiers de configuration vers les nouveaux nœuds. Cassandra met ici des outils adaptés à disposition des développeurs.
Pour garantir la sécurité et, en cas de besoin, la capacité de restauration des données, Apache Cassandra dispose d’un système de réplication configurable ajustable aux besoins de l’utilisateur. La tolérance aux pannes est limitée par la réplication automatique des données entre les nœuds. Les nœuds affectés par une erreur peuvent facilement être remplacés. Le système reste disponible pour toutes les requêtes.
Cassandra offre en outre une disponibilité et une tolérance à la partition élevées. Selon le théorème CAP informatique, il n’est jamais possible de garantir simultanément la cohérence (Consistency), la disponibilité (Availability) et la tolérance à la partition (Partition tolerance).
Le cas échéant, la cohérence, c’est-à-dire le fait que tous les nœuds puissent, à tout moment, accéder aux mêmes données, se voit attribuer la priorité la plus faible, comme c’est le cas pour de nombreux systèmes Big Data. En cas de panne, la cohérence peut être rapidement garantie par la restauration des données. En ce sens, les deux autres caractéristiques doivent être assurées en permanence.
Les bases de données Cassandra sont compatibles avec le modèle de programmation MapReduce développé par Google pour les calculs de gros volumes de données sur des systèmes distribués. Le langage de requête de base de données propre CQL (Cassandra Query Language) est spécialement adapté aux structures de données de Cassandra.