More Related Content
Similar to Cloudian nosql casestudy_20120318 (20)
More from CLOUDIAN KK (20)
Cloudian nosql casestudy_20120318
- 8. ユースケース
サービスプロバイダー向け エンタープライズ向け
価格競争力に優れたクラウド・ストレー SAN / NAS といった外付けハードディス
ジサービスの提供が可能に クのバックアップや代替えとして
対象:通信キャリア、クラウドサービス・プロバイダー、 対象:アプライアンス・ベンダー、システム・インテグレーター、
データセンター等 通信キャリア、クラウドサービス・プロバイダー、データセンター等
- 10. S3 API準拠の実現方法
一般的な「S3 準拠」のストア Cloudian
S3サーバ(ネイティブ)
S3
HyperStore
S3 アダプタ API
S3
ネイティブAPI API
ネイティブ
API データ・ストア
データ・ストア
重複部分のみサポート。
ネイティブS3 サーバなら
S3に新機能が追加されると
S3 API に完全対応できる
その差が拡大
- 12. 複数のNOSQLを評価
遅延時間の
バリューサイズ 遅延時間の中央値 30分間で
95パーセンタイル値 スループット
(ミリ秒) 処理した
(ミリ秒) (件/秒)
1KB 件数
Get Put Get Put
Hibari 0.1.8 1.027 1.676 3.069 2.881 8,775 15,804,196
Cassandra 1.0 1.016 0.949 2.476 4.789 8,748 15,755,306
Cassandra 0.8.6 1.282 0.948 5.729 2.243 8,700 15,668,017
Riak 1.0.1
3.281 5.541 22.296 74.663 8,489 15,288,692
LevelDB
HBase 0.90.4
3,278 3.692 13.045 13.754 8,404 15,135,436
CDH3u2
出典:「NOSQLの基礎知識」 リックテレコム、2012年4月出版予定
- 13. Cloudian™の論理アーキテクチャ
Admin 認証情報
サーバー (Redis)
HTTPS
ログイン
HTTP QoS DB
アカウント設定/ HTTPS 管理コンソール S3サーバー
セキュリティキー Servlets (Redis)
HTTP
レポート
HTTP
Data Explorer データサーバー ユーザーデータ
(Cassandra)
ウェブUI
アカウント情報
(Cassandra)
HTTP or
HTTPS
(S3) レポート
アプリケーション
(Cassandra)
13
- 14. ネットワーク構成: 高可用性の最小構成
管理
コンソール 認証情報/QOS
(Redis)
UIからの
HTTP/HTTPS S3/Admin
ブラウザー サーバー
Sticky Cassandra
リクエスト
セッション
アプリケーション LB
からの HTTP/HTTPS
S3リクエスト 管理
コンソール Cred/QOS
(Redis)
S3/Admin
サーバー
Cassandra
- 15. ネットワーク構成:マルチデータセンター構成の一例
管理 管理 管理 管理
コンソール コンソール コンソール コンソール
S3/Admin S3/Admin S3/Admin S3/Admin
Cassandra Cassandra Cassandra Cassandra
サーバー サーバー サーバー サーバー
Redis Redis Redis Redis
マスター スレーブ マスター スレーブ
S3/Admin S3/Admin S3/Admin S3/Admin
Cassandra Cassandra Cassandra Cassandra
サーバー サーバー サーバー サーバー
データセンター1 データセンター2
ユーザーは S3 バケット名により ホームDC(データセンター)にルーティングされる
S3/Adminサーバーは ホームDC にデータを保存
S3オブジェクト、レポート、ユーザー情報は、CassandraによりDC間で複製される
認証情報/QOS情報は、RedisによりローカルDCとリモートDCのスレーブへ複製される
- 16. オブジェクトストアとしてのCassandra
• BLOBストレージ
• グループごとに column family を作成
• 行キー <バケットID>/<オブジェクトID>
• オブジェクトのメタデータ
• ACL (アクセスコントロールリスト)、オブジェクトのサイズ・・・
• Cassandra 行キャッシュを活用
• 巨大なS3オブジェクトのサポート
• マルチパート Amazon S3 multi-part APIを使ってアップロード
• チャンキング 大きなオブジェクトを小さなチャンク(例 10MB)に分割して保存
• HTTPレンジヘッダー ダウンロード時は HEAD リクエストでオブジェクトのサイズを
取得してから、スタートのバイト位置と長さを指定してダウンロード
• HyperStore™ 巨大なオブジェクトをネイティブなファイルシステムに保存
- 17. Cassandraにアカウント情報を格納
データモデル
•ユーザー
•- ID, name, contact info, など
•グループ
•レーティングプラン
• セキュリティ認証情報(Credentials)
NOTES
• 静的 データ。カラム数は固定
• ユーザーCFのgroupIDに二次インデックスを作成
• MySQLなどのリレーショナルDBに格納することもできるが、
構成要素を増やしたくなかった
- 18. Cassandra for Reports
データモデル
• Raw column family
• ユーザー、グループ
• トランザクションタイプ(HTTP GET、PUT、DELETE)
• オブジェクトのパス(path)
• サイズ
• Rollup column families.
• RollupHour 1時間ごとの利用状況をRawデータから集計
• RollupDay 毎日の利用状況をRawデータから集計
• RollupMonth 毎月の利用状況をRawデータから集計
NOTES
• 読み書き比率:書き込み > 読み出し
• Cassandra の TTL (time-to-live) で自動削除
- 20. 大きなデータの扱いで性能が劣化
遅延時間の
遅延時間の中央値 30分間で
バリューサイズ 95パーセンタイル値 スループット
(ミリ秒) 処理した
(ミリ秒)
100KB (件/秒)
件数
Get Put Get Put
Hibari 0.1.8 9.268 12.299 61.914 75.934 2,073 3,733,136
Cassandra 1.0 28.551 9.992 379.745 155.680 1,699 3,060,198
Cassandra 0.8.6 34.099 8.402 1,015.888 333.048 1,336 2,406,446
バリューサイズ 1KB
Hibari 0.1.8 1.027 1.676 3.069 2.881 8,775 15,804,196
Cassandra 1.0 1.016 0.949 2.476 4.789 8,748 15,755,306
Cassandra 0.8.6 1.282 0.948 5.729 2.243 8,700 15,668,017
出典:「NOSQLの基礎知識」 リックテレコム、2012年4月出版予定
- 21. HyperStore™(特許出願中)
Admin 認証情報
HyperStore
サーバー (Redis)
• ストレージのハイブリッド化により S3 QoS
サーバー (Redis)
処理性能とディスク利用効率の向上を実現
• オブジェクトの大きさに応じて
データストア
最適なストレージを自動選択
HyperStore™
Manager
メタデータは引き続きCassandraに格納
Data Store
(Cassandra)
パーティショニング、レプリケーション、ノード
の死活監視は、Cassandraの分散機能を使用 Cloudian®
サーバー Accounting
Cassandraのソースをフォークしてカスタマイズ (Cassandra)
Reporting
(Cassandra)
- 23. HyperStore: レイテンシーの測定
50.0
37.5 >30% faster
ms
25.0 PUT-Cass
12.5 PUT-HS
0
0 1 10 100 1000
KB
60.0
45.0
>400% faster
ms
30.0 GET-Cass
GET-HS
15.0
0
0 1 10 100 1000 KB