Vamos a examinar la arquitectura de Apache Cassandra, para entender como trabaja. Los nodos interactúan de un modo peer-to-peer o punto a punto, y para conocer donde están los datos utilizan técnicas de gossip, anti-entropy y hinted handoff que vamos a ir desarrollando en este post y los próximos.
Cassandra nos permite separar nuestros nodos en racks y datacenters, esto nos da ventajas a la hora de tener los datos separados en diferentes ubicaciones geográficas. Un rack en un conjunto de nodos , físicamente tiene en cuenta que un rack siempre son maquinas que están próximas, idealmente en un mismo rack. Un datacenter es un conjunto de rack que se encuentran en el mismo edificio físico y conectadas a la misma red.
Cassandra aprovecha la información que proporciona sobre la topología de su clúster para determinar dónde almacenar los datos y cómo encaminar las consultas de manera eficiente. Cassandra intenta almacenar copias de sus datos en múltiples centros de datos para maximizar la disponibilidad y la tolerancia de partición, mientras que prefiere enrutar las consultas a los nodos en el centro de datos local para maximizar el rendimiento.