忍者ブログ

ビーキョウのIT

このブログは99%ののほほんと1%のお菓子でできています。

[PR]

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。


Cassandra - 読み込み・書き込みのアーキテクチャ -

こんちゃ(´・ω・)ノ

Cassandraの読み込み・書き込みの際の動作・アーキテクチャを
記載する。



【読み込み】



■動作順序
(1) クライアントからの読み込み要求を受け取る。
(2) データを保持しているノードを決定して、該当ノードに送信(フォワード)する。
(3) レプリケーションデータを保持しているノードを決定し、該当ノードに送信(フォワード)する。
(4) Row Cache、Memtable、SStableからデータを取得する。
(5) クライアントへのレスポンス返却を返却する。一貫性レベルによって動作が異なる。

■一貫性レベルの設定による動作の違い
設定ノード数説明
Zero0一貫性の保証なし。
One11つのノード(最初のノード)からデータを取得し終わった場合に、クライアントにレスポンスを返却する。
Quorum(n/2)+1(全体のノード数/2)+1のノードからデータを取得し、整合性チェックを行った後、問題ない場合はクライアントにレスポンスを返却する。問題がある場合は実データを取得しにいく。
Alln全てのノードからデータを取得し、整合性チェックを行った後、問題ない場合はクライアントにレスポンスを返却する。問題がある場合は実データを取得しにいく。

※ 整合性チェックは、データのダイジェストを使用して行う。



【書き込み】



■動作順序
(1) クライアントからの書き込み要求を受け取る。
(2) どのノードにデータを保持させるかを決定して、該当ノードに送信(フォワード)する。
(3) レプリケーション(コピー)対象のノードを決定し、該当ノードに送信(フォワード)する。
(4) 書き込み情報をCommitLogとして記録。
(5) ColumnFamilyごとにメモリ上のMemtableに書き込まれる。
(6) flashによってMemtableの内容がSstableに書き出される。flashは手動またはMemtableに閾値を設定して、書き込み要求に対して非同期に実行される。
(7) クライアントへのレスポンス返却を返却する。一貫性レベルによって動作が異なる。

■一貫性レベルの設定による動作の違い
設定ノード数説明
Zero0一貫性の保証なし。書き込みが終了する前にすぐにクライアントにレスポンスを返却する。
One11つのノードの書き込みだけを保証。1つのノードで書き込みが終わった場合にクライアントにレスポンスを返却する。
Quorum(n/2)+1レプリケートするノード数の半分+1ノードへの書き込みを保証する。(全体のノード数/2)+1のノードで書き込みが終わった場合にクライアントにレスポンスを返却する。
Allnすべてのレプリカへの書き込みを保証する。全てのノードで書き込みがおわった場合にクライアントにレスポンスを返却する。




【Cassandra】
Cassandra - 概要 -
Cassandra - データモデル -
Cassandra - 読み込み・書き込みのアーキテクチャ -
Cassandra - ディレクトリ構成 -
Cassandra - CLI操作 -
Cassandra - バックアップ・リカバリ -
Cassandra - 使用ポート番号 -

拍手[0回]

PR

COMMENT

Name
Title
Mail
URL
Color
Emoji Vodafone絵文字 i-mode絵文字 Ezweb絵文字
Comment
Pass   コメント編集用パスワード
 管理人のみ閲覧

カレンダー

08 2018/09 10
S M T W T F S
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30

最新コメント

[11/13 NEX-C3]
[01/24 R]
[07/30 ビーキョウ]
[07/25 unknown]
[06/24 ブログランキング]

最新トラックバック

バーコード

広告

カウンター

ブログ内検索

プロフィール


HN:ビーキョウ
職業:SI屋(PG、SE)
<自己紹介>
ちゃお(´・ω・)ノ
ビーキョウです。
どんどんスキルアップして、 その中で学んだことを忘れないようにメモ代わり的な 感じで記事を書いていこうという考えです。

なので、適当な部分が多々あるとは思いますが、 なにとぞよろしくお願いします
(´ ▽`)

バナーエリア

Copyright ©  -- ビーキョウのIT --  All Rights Reserved
Designed by CriCri / Photo by Geralt / Powered by [PR]
/ 忍者ブログ