卡桑德拉备忘录:复制策略
以下是我根据阅读Cassandra v3.0文档并进行调查所做的笔记。
由于我并没有实际运行和确认,所以可能会有错误。如果您有任何意见,请指出。
数据的复制
创建键空间时可以指定复制因子。指定的复制因子数决定了数据的复制(副本)数量。
在Cassandra中,所有的副本都是等价的,没有主副关系,如主副本或次要副本之类的。
此外,在创建键空间时,您需要指定副本配置策略(Replication Strategy)。有两种策略可供选择:「简单策略」(SimpleStrategy)和「网络拓扑策略」(NetworkToplogyStrategy)
在解释各方策之前,我们先列举一些有关在Cassandra中对节点进行分组的概念。以下是原文的说明。
-
- ノード:データを物理的に保管する場所のことです。物理的なマシン、物理的なサーバーと捉えれば良いかと思います。
-
- データセンター:ノードの集合です。必ずしも物理的なデータセンターと一致させる必要はありません。物理的に1つのデータセンター内に、Cassandraのデータセンターを複数定義することが可能です。ただし、Cassandraのデータセンター1つを構成するノードは地理的に同一のロケーションにあるノードのみとします。
-
- クラスター:データセンターの集合です。クラスター1つを構成するデータセンターは、地理的に複数のロケーションにあるもので構いません。
- ラック:データセンター内における、ノードをグループ化したものです。
基于这些术语,以下是对复制策略的解释。
简单策略
一個資料中心只有一個機架的方針。將第一個副本放在Partitioner選定的節點上。隨後的副本將依照節點環(將節點視為一個圓環)順時針方向進行配置。
网络拓扑策略
这个策略认为如果有两个或更多的数据中心或多个机架,则视为存在。在创建集群时,即使只有一个数据中心或一个机架,如果存在将来增加的可能性,也会选择这个策略。
在这个策略中,您可以指定将多少个副本放置在每个数据中心。您可以为每个数据中心指定不同的副本数量。
在这个策略中,为了寻找第二个副本配置节点,跟踪节点环时,会跳过与第一个副本配置的节点相同机架上的节点,并将副本配置到不同机架的节点。
这是因为我们认为位于同一个机架上的节点由于电源、冷却和网络问题可能同时发生故障的可能性。