DS201学習記録:Cassandraのレプリケーションについて

DS201: Foundations of Apache Cassandra™ and DataStax Enterprise の学習記録です。

レプリケーション (Replication) とは

Cassandraは、高い可用性と耐障害性を実現するために、データを複数のノードに複製する**レプリケーション(Replication)**という仕組みを採用しています。これにより、一部のノードに障害が発生してもデータの喪失やサービスの停止を防ぎ、継続的な運用を可能にします。

レプリケーションファクタ (Replication Factor, RF)

**レプリケーションファクタ(RF)**は、各データセットがクラスター内で何回複製されるかを指定するパラメータです。RFの値は、クラスター全体または特定のキースペース(Keyspace)ごとに設定できます。

  • RF = 1: データは1つのノードにのみ保存されます。ノード障害時にデータが失われるリスクがあります。
  • RF = 2: データは2つのノードに複製されます。1つのノードがダウンしてもデータは利用可能です。
  • RF = 3: データは3つのノードに複製されます。2つのノードがダウンしてもデータは利用可能です。

RFの値を大きくするほど、耐障害性は向上しますが、ストレージ使用量や書き込み時のオーバーヘッドが増加します。システムの要件(可用性、耐久性、パフォーマンス)に応じて適切なRFを設定することが重要です。

レプリケーション戦略 (Replication Strategy)

Cassandraには、データの複製方法を決定するレプリケーション戦略がいくつかあります。

  • SimpleStrategy: 単一のデータセンターで構成されるクラスター向けです。データをクラスター内のノードに均等に分散して複製します。
  • NetworkTopologyStrategy: 複数のデータセンターやラックで構成されるクラスター向けです。データセンターやラックのトポロジーを考慮してデータを複製するため、地理的に分散した環境での耐障害性を高めることができます。本番環境では通常この戦略が推奨されます。

レプリケーション戦略とRFの組み合わせにより、Cassandraクラスターのデータ配置と耐障害性が決定されます。