忍者ブログ

ビーキョウの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回]


Cassandra - データモデル -

こんちゃ(´・ω・)ノ

Cassandraのデータモデル・構造について記載する。
・データはキーバリューの形で保持する(KVS)。
・キースペース、カラムファミリ、ロウ、スーパーカラム、カラムを持つ。



■通常のデータモデル

■スーパーカラムありのデータモデル

■説明
項目説明
ClusterCassandraインスタンス、サーバのこと。複数のキースペースを持つことができる。またCluster間で連携ができる。
Keyspaceカラムファミリ用のネームスペース。複数のカラムファミリを持つことができる。RDBのデータベースまたはスキーマに近い。
ColumnFamily複数のカラムを持ち、行キーで参照可能。RDBでのテーブルに近い。
Row-KeySuperColumn、Columnを含む集合。Keyによって一意に特定される。
SuperColumnColumnを持つ
ColumnCassandraにおける最小限のデータ構造。名前、値、タイムスタンプを持つ。




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

拍手[0回]


Cassandra - 概要 -

こんちゃ(´・ω・)ノ

流行のNoSQLデータベースのCassandraについて
記載していこうと思います。



【Apache Cassandraとは】
Apache CassandraはJavaで記述されたオープンソースの分散型NoSQLデータベース。
Facebook社で大規模データに対応するために開発を行っていたが、
2008年7月にOSS(オープンソースソフトウェア)として公開し、
現在はApacheのトップレベルプロジェクトとなっている。



【特徴】
・ライセンスはApache License 2.0
・Javaで動作する。
・スケールアウトによるパフォーマンスの向上が可能。
・KVS(Key Value Store)のデータモデル。
・4次元または5次元ハッシュなデータモデルを持つ。
  ・キースペース、カラムファミリ、ロウ、スーパーカラム、カラムの順に入れ子構造。
  ・カラムが最小単位で、名前、値、タイムスタンプを持つ。
・データ操作は追加型。
  ・データ参照、挿入、更新、削除ができる。
  ・更新はデータを挿入することによる擬似的な更新。
  ・削除は論理削除のため、データ量が減らない。



【参考URL】
■Apache Cassandra
http://cassandra.apache.org/

■Wikipedia - Apache Cassandra
http://ja.wikipedia.org/wiki/Apache_Cassandra

■Cassandra wiki
http://wiki.apache.org/cassandra/FrontPage_JP



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

拍手[0回]


SAStruts アーキテクチャ・仕組み

こんちゃ(´・ω・)ノ

お疲れ様です。
今回はSAStrutsのアーキテクチャ?仕組み?動作?
的な部分を簡単にかいていこうかと思います。
ただ結構やっつけなので、間違ってるところがあるかも。




※クリックして拡大してね!


(1) Filter
クライアントからリクエストが届き、SAStrutsの各フィルターが動作する。
フィルターの設定はweb.xmlで行っている。
フィルター説明
EncodingFilterリクエストのパラメータをエンコードするためのフィルタ。
S2ContainerFilterHttpServletRequestやHttpServletResponseなどをS2Containerに登録されたコンポーネントから利用できるようにするフィルタ。
HotdeployFilterSeasar2がJavaのクラスの変更をHOTに認識できるようにするためのフィルタ。
RoutingFilterSAStrutsの簡易なURL(Strutsの.doなどの拡張子を見せない)を実現するためのフィルタ。


(2) ActionServlet
StrtusのActionServlet。
ActionServletはStrutsで唯一のServlet。
ここからstruts-config.xmlを参照して、指定のRequestProcessorを呼び出す。
SAStrutsはRequestProcessorを継承したS2RequestProcessorを呼び出すようにしている。

(3) S2RequestProcessor、ActionWrapper
S2RequestProcessorは、StrtusのRequestProcessorを継承している。
ここからSAStrutsのActionWrapperを呼び出す。
S2RequestProcessorとActionWrapperでそれぞれでどのような処理が行われているかはまだ不明。

(4) ActionFormの設定
ActionFormにHttpRequestの情報を設定する。

(5) Validationチェック
値が設定されたActionFormに対して、チェック(Validation)を行う。
チェック(Validation)する処理プログラムはvalidator-rules.xmlから取得して呼び出す。

(6) Actionの実行
各作成されたActionのメソッドが呼び出される。
値が既に設定されているActionFormがActionのFormに設定されている。

(7) JSP遷移
処理結果をRequestProcessorに設定し、遷移すべきJSPへ遷移する。

拍手[2回]


カレンダー

03 2024/04 05
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]
/ 忍者ブログ