フラミナル

考え方や調べたことを書き殴ります。IT技術系記事多め

Apache Cassandra™️を1mmも知らないがコンセプト理解する

Apache Cassandra™️のコンセプト

※™️はTradeMarkの略(商標の意味)

What is Apache Cassandra | Apache Cassandra and DataStax Enterprise - DataStax Academy

※DATASTAX社…casandraを使った商用製品をリリースしている会社。コンセプトで検索するとapache.orgより先に出てくる。(apacheのサイトではそもそも載ってない…)

意訳

  • Apache CassandraはFacebookから生まれたApacheプロジェクト
  • AWSのDynamoDBやGCPのBigTableに使われている
  • SPOFを排除した高い可用性を提供する分散データベース
    • RDBMSやNoSQLとは比べ物にならないスケーラビリティと分散を、複数のデータセンターやクラウドのAZで実現できる
  • マスターレスの「リングデザイン」というものを採用しており、マスタースレーブ構成や難しい共有モデルは存在しない
  • すべてのNodeがおなじ役割として振る舞い、お互いに平等に通信をする
  • 「built-for-scaleアーキテクチャ」は取り扱うデータ量に関わらず簡単にデータをコントロール機能を持つ
  • cassandraは追加のノードは(無停止で)既存のクラスタに追加するだけで拡張できる
  • Apple、Comcast、eBay、Instagramなどで採用されている
  • 大規模な本番ではペタバイトクラスのデータを7万5千以上のノードで管理されている
  • ライセンスはApache 2.0

わかること

  • 時代が移りデータ量が増えRDBMSでは処理が追いつかなくなってきた
  • 既存のシェーディングの技術では難しくスケール限界がある(テーブル設計も)
  • そのため拡張性をもったDBが必要になった
  • 最初はFacebookということできっとユーザデータが膨大なんだろう
  • 2008年に初期リリースの模様

Apache Cassandra™️のアーキテクチャ

意訳

  • cassandraクラスタはgossipというコミュニケーションプロトコルを利用してpeer to peerで情報交換をしている
  • 各ノードに順次書き込まれるコミットログには書き込みを記録してデータの耐久性を確保する
  • 次に、データにインデックスが付けられ、ライトバックキャッシュに似たmemtableと呼ばれるメモリ内構造に書き込まれる
  • メモリ内構造がいっぱいになったらデータはSSTablesデータファイルとしてディスクに書き込まれる
  • 全ての書き込みはクラスタを通じて自動的に分割され複製される
  • 力尽きた

とりあえず、登場背景は理解した。