初识GaussDB(for Cassandra)基础架构

2022-05-11 00:00:00 数据 集群 节点 分区 副本

架构原理

Cassandra旨在处理多个节点之间的大数据工作负载且无单节点故障。

Cassandra通过在同构节点之间采用p2p分布式系统来解决故障问题,其中数据分布在集群中的所有节点上。通过点对点Gossip通信协议,集群中的每个节点与其他节点频繁交换状态信息。每个节点上都有一个顺序写入的commit log用来记录写入操作,以确保数据实现持久化。然后将数据编入索引并写入内存结构,称为内存表(memtable),类似于回写缓存。当内存结构写满数据时,则把数据存储到SSTable数据文件中的磁盘。所有的写入操作会在整个集群中自动分区和备份。Cassandra通过一个称为压缩(compaction)的过程定期整合SSTable,丢弃标记为删除的旧数据。为确保整个集群中所有数据的一致性,采用了各种修复措施。

Cassandra是一个分区式行存储数据库,行被组织成具有所需主键的表。Cassandra架构允许任何授权用户连接到任一数据中心的任一节点,并使用CQL语言访问数据。为了方便使用,CQL使用与SQL类似的语法并与数据表一起使用。开发者可以通过cqlsh访问CQL。通常,对于由不同表组成的应用程序,一个集群对应一个密钥空间。

客户端读写请求可以发送到集群中的任一节点。当客户端连接到有请求的节点时,该节点用作该客户端的协调器(coordinator)。作为客户端应用程序和被请求数据所在的节点之间的代理,协调器根据集群的配置确定环(ring)中的哪些节点应该获得请求。

相关文章