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

KEIS BLOG

Cassandraについて①

LINEで送る
[`evernote` not found]
Pocket

こんにちは!

ちょうど週末が桜の満開だったので目黒川へ花見に行きました。
地元の花見は公園でジンギスカンをするので少しだけ違和感がありましたが
食べ歩きしながら満開の桜を眺めるのもなかなか気持ちがいいものですね!

—–
fujikawa01

ここ最近Cassandraというデータベースを使用しているのですが
Cassandraについて少しずつ勉強していきたいと思います。

・Cassandraとは何か
 Key-Value型のNoSQLデータベースです。
 NoSQLデータベースはRDBMSにはない特長を持っています。
 RDBMSはデータの一貫性や整合性を重視しています、
 ご存知のようにデータはテーブルで管理しています。
 NoSQLは処理速度などのパフォーマンスやスケーラビリティを重視しています。
 RDBMSのようにテーブルではなくKey-Valueで管理しています。

・Cassandraの特徴
 ・耐障害性
  クラスタ内のノードがすべて同じ役割を持っており、マスターノードを持っていません。
  そのため、部分的な故障があっても全体が停止することはなく、
一つのノードにネットワーク負荷がかかることがないので
  耐障害性が高くなります。非中央集中型で単一故障点がないことが特徴です。
 
 ・開発コスト
  CassandraはCQL (Cassandra Query Language) を使用しています。
  CQLとはSQLに非常によく似た言語なので、開発者にはすぐに使用できる言語です。
 
 ・ハイパフォーマンス
  Cassandraはデータ入出力をを高速に処理することを前提として設計されています。
  前述しましたがすべてのノードが同じ役割を持っているため、スケールアウトしやすく
  ノードを増やすことで簡単にパフォーマンスを向上させることができます。
 
・一貫性レベルについて
 Cassandraでは読み書き一貫性レベル(consistency Level)という設定項目があります。
 ノード間でのデータ同期タイミングを設定します。
 ・書き込み(Write)
  ・ZERO
   一貫性の保証なし。バックグラウンドで非同期に書き込みが行われる。
  ・ANY
   少なくともどこか一つのノードに書き込みされたことを保証する。
  ・ONE
   一つのノードに書き込みされたことを保証する。
  ・QUORUM
   過半数のノード群に書き込みされたことを保証する。
  ・ALL
   全ノード群に書き込みされたことを保証する。
 ・読み込み(Read)
  ・ONE
   最初にレスポンスを返せるノードからレコードを返す。
  ・QUORUM
   全ノードを探索し、過半数のレプリカからレスポンスを得た時点で
最も新しいタイムスタンプのレコードを返す。
  ・ALL
   全ノードを探索し、全ノードからレスポンスを得た時点で
最も新しいタイムスタンプのレコードを返す。

 一貫性の高いレベルを設定することもできますが、その分パフォーマンスは落ちます。

—–
データ読み書きの高速化や障害耐性は非常にメリットがあります。
ですが、一貫性に関しては処理能力を考えたチューニングが必要なようですね。

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

LINEで送る
[`evernote` not found]
Pocket