KEIS BLOGは株式会社ケイズ・ソフトウェアが運営しています。

KEIS BLOG

Cassandraについて④


こんにちは!

夏フェスが楽しみになってきました!
ちゃんと水分を取って熱中症には気をつけましょう。

—–
fujikawa01

今回もCassandraの特徴について勉強してみます。

・Cassandraのデータ分散について

  Cassandraの大きな特徴は分散データベースであることです。
  以前の記事で一貫性レベルについて書かせていただきました。
  この一貫性レベルに応じてデータの整合性を担保します。
  クラスタを構成する各ノードにデータを均等に分散し
  全てのノードで書き込みと読み取りを可能にします。
  より近いデータセンターなどから読み書きを行うことによって
  パフォーマンスを向上させるようにCassandraは設計されています。

 ■可用性
  RDBではMaster-Slave構造であるのに対し
  CassandraはMasterを持たない設計のため、ダウンタイムがありません。

 ■拡張性
  RDBではマスタを増強することによってスケールアップしますが
  Cassandraではノードを追加することによってスケールアウトし
  簡単にパフォーマンスを向上さることができます。

 ■レプリケーション
 Cassandraは離れたデータセンターやクラウド上などにノードを分散配置し
 それらのノードにデータを分散することができます。
 レプリケーションの設定はレプリケーション先のデータセンター名とレプリカ数を指定するだけで
 どのデータをどのノードに配置するのかも含めCassandraが自動的に設定してくれます。
 
 クラスター全体のレプリカの総数を、レプリケーション係数と呼びます。
 レプリケーション係数1は、各行のコピーが1つしかなく、1つのノード上にあることを意味します。
 レプリケーション係数2は、各行のコピーが2つあり、それぞれ異なるノード上にあることを意味します。
 すべてのレプリカの重要性は同じで、プライマリ・レプリカやマスター・レプリカといった区別はありません。
 原則として、レプリケーション係数はクラスター内のノードの数を超えることはできません。
 ただし、レプリケーション係数を大きくした後でノードの数を増やすことができます。

 ■レプリケーション・ストラテジ
 ・SimpleStrategy
  レプリカを格納するノードを、データセンターおよびラックを意識せずに決めます。
  複数のデータセンターがある場合でもデータセンターをまたがってレプリカを持つとは限りません。
  同一データセンターに複数のラックがある場合でも、ラックをまたがってレプリカを持つとは限りません。
 ・OldNetworkTopologyStrategy
  複数のデータセンターがある場合は、レプリカのひとつを他のデータセンターのノードに格納します。
  複数のラックがある場合は、他のレプリカを異なるラックのノードに格納します。
  単一データセンターおよび単一ラックの場合は、SimpleStrategy と同じ挙動をします。
 ・NetworkTopologyStrategy
  各データセンター毎に設定されたレプリカ数を満たすように格納します。
  データセンター内に複数のラックがある場合は、ラックをまたがって格納します。
  データセンター内に複数のラックがない場合は、同じラックの異なるノードに格納します。


一貫性レベルと同様にデータ分散の仕組みも複雑ですね。
もっと掘り下げて学習してみたくなりました!

【関連記事】
SOAPUIの便利な使い方①
SOAPUIの便利な使い方②
SOAPUIの便利な使い方③
SOAPUIの便利な使い方④
SOAPUIの便利な使い方⑤
SOAPUIの便利な使い方⑥
JavaWebServerを使ってみるテスト
Splunkを使ってみよう!
SOAPUIの便利な使い方⑦
捨てる前にできること
eclipseでSoapUIを動かしてみる
マウスにもこだわりを
WindowsでDockerを使ってみよう①
忘れがちなGitコマンド
AWSを使ってみる
ヘッドフォンの選び方
Cucumberを使ってみるテスト①
忘れがちなGitコマンド②
Cassandraについて①
Cassandraについて②
Cassandraについて③