Weitere ähnliche Inhalte
Ähnlich wie No nosql20130424 (20)
Mehr von Shinichiro Takezaki (15)
No nosql20130424
- 1. Copyright © Virtual Technology, Inc
エンタープライズシステムでも活躍
する「ReflexWorks」の紹介
2013/4/23 有限会社バーチャルテクノロジー
1
- 2. Copyright © Virtual Technology, Inc
• 竹嵜伸一郎 (たけざき しんいちろう)
• (有)バーチャルテクノロジー
– 分散KVSのミドルウェア開発(ReflexWorks)
• 1992-2003
– 日本IBM ソフトウェア事業部
• 2007-2009
– (株)暮らしのデザイン CTO
2
- 5. Copyright © Virtual Technology, Inc
ReflexWorks
• 2010年10月開始、商用、Javaで記述
• ドキュメント指向、JSON、XML、MessagePackに対応
• ORM(Object-Relational Mapping)不要
– Entityオブジェクトをシリアライズ保存
– ソフトスキーマ(スキーマレスではないが)
• RDBからデータ復元(可用性向上)
• シャーディング水平スケーリング(パフォーマンス向上)
– ConsistentHashアルゴリズム採用
• オンラインでACIDトランザクション処理が可能
• 認証・アクセス管理機能
• データ保存効率は悪い(圧縮はしない)
エンタープライズ向けアプリケーションを容易に構築できる
トランザクショナルKVS
5
- 6. Copyright © Virtual Technology, Inc
ReflexWorksが実現したいこと
6
• 大規模Webサービス
– パフォーマンス向上、容易なスケールアウト
拡張
• 大規模Web帳票
サーバ負荷軽減
• UI/UX
– リアクティブなWebシステム
WebSocket
- 7. Copyright © Virtual Technology, Inc
ヒント:Thin Server Architectureの応
用
7
・・・
REST
クライアントからRESTでサーバリソースにアクセス
サーバからはJSONやXMLのデータを返すのみ
➡ これでサーバの負荷が減る
BaaSのような感じ
データ
サーバ群
- 8. Copyright © Virtual Technology, Inc
NoSQLのデータモデル
Cassandra
MongoDB
ReflexWorks
Dynamo
業務アプリで使うにはドキュメント指向じゃないと辛い
8
- 10. Copyright © Virtual Technology, Inc10
• リソースURLは自由に設定、追加できる。
• マッピングルールなどを書く必要がない
→ 設定ファイル地獄、アノテーション地獄からの解放
• リソースを様々なフォーマットに変換できる。
• 単純なプロパティとListをもつPOJOで階層構造を表現
→ JSON , XML , msgpackなどに変換可能
• リソースに対してCRUD操作可能
直感的なRESTAPIによる操作
- 12. Copyright © Virtual Technology, Inc
KVSを採用するメリット
• キャッシュとして利用
– 読込/書込性能向上
– RDBのボトルネックを解消、スケールアウトでき
る
• O/Rマッパーが不要になる
– KVSに直接オブジェクトを保存可能
– 工数削減、開発の4割がマッピングに費やされて
いる
– RDBを実質的に廃止できる
• 管理コストが低い
– 導入設定が不要、スキーマの生成が不要12
RDBのインスタンス
を増やすと管理が大変
- 13. Copyright © Virtual Technology, Inc
Berkeley DB Java Edition
13
DBMSの基本機能を備えておりトランザクション処理が可能
通常はキャッシュで処理、永続化も備える
- 14. Copyright © Virtual Technology, Inc
信頼性と安心感
• BDBはOracleの保守サポートを受けられ
る
– 他のOSSなどと比較すると安心感はある
14
実績、保守サポート体制が重要
- 15. Copyright © Virtual Technology, Inc
ReflexWorksのトランザクション処理
• Feed単位のAtomicトランザクション
– 分離レベル:REPEATABLE READ
• かつ、Entry単位のバージョン比較
– 分離レベル:SNAPSHOT ISOLATION
– 全てのEntryはURLとリビジョンで管理される
– リビジョン=更新されると+1される
15
https://www.facebook.com/notes/virtual-technology/
bdbトランザクションとreflexworksの処理について/486790368009209
データの一貫性を確保しつつ高いスループットを実現
詳細:
- 16. Copyright © Virtual Technology, Inc
「受注と明細」を1つの更新処理に束ね
る• RDBだと2テーブルに跨ぐは
ず
– トランザクションで括るなど必
要
• これを1リクエストで実行す
る
– 1Feed内に本体と明細のentryを入
れるだけで1トランザクション
として実行可能
16
<feed>
<entry>
<id>受注のid </id>
<entry>
<entry>
<id>明細のid</id>
<entry>
</feed>
POST/PUT/DELETE
- 17. Copyright © Virtual Technology, Inc
ScalabilityとConsistencyを両立
17
ノードは一定数のユーザを担当
ノード追加で処理性能向上
同期でステートフルでもO
実質APだけで動作(RDBも疎結合)
スケーラブル!!
シャーディングでも敗北感を感じる必要はな
疎結合 疎結合
- 18. Copyright © Virtual Technology, Inc
シャーディングで問題になるケース
• 情報共有
– ある情報を複数のユーザが更新する
➡ ReflexWorksではうまく解決できた
• リカバリー
– 障害ノードを復旧させるのがちょっと大変
18
- 21. Copyright © Virtual Technology, Inc21
• ユーザビリティ、パフォーマンス
– クライアントアプリに比べ遜色のないUI/UX
– ボタンを押して数秒以内に印刷開始、高速な印刷実行
– バーコード(EAN128など)やQRコードといった高品位な帳票印刷
• モダンブラウザ対応
– 昔はWindows+IEで十分だったが、最近ではMacでもという要望が増
加
– Chrome、Firefox、Safariといったモダンブラウザにも対応させたい
• 急激なアクセス数の増大に柔軟に対応
– スタート時は最小のリソースで開始したいが実際にどれくらいのア
クセスが来るかわからない。(数十万ユーザの同時利用に耐えられ
るか)
大規模Web帳票システムの要求
インストール型帳票アプリをWeb化するにあたって・・
- 22. Copyright © Virtual Technology, Inc22
• ActiveXコンポーネント
– ダイレクト印刷コンポーネント
– IE6問題の諸悪の根源
• 独自ブラウザ
– インストール型と実質変わらない。
– ○○Browser、curl、Adobe AIR
• サーバサイドでPDF生成
– サーバ負荷が大きい
– スケールしない
Web帳票システムのこれまでのソリュー
ション
2005年頃ブームになったリッチクライアントでは・・
結論:
インターネット利用
に向かない
- 23. Copyright © Virtual Technology, Inc
企業内業務システムで今大変な問題が起きている
23
IE6 やめようと思ってももう手遅れ
http://www.slideshare.net/bathtimefish/ie6-15583209
ActiveXへの強依存があってIE6をやめられない
- 24. Copyright © Virtual Technology, Inc24
• Thin Server Architecture
– APサーバはデータを返すだけ(JSON/XML)
– Webサーバは静的コンテンツを返すだけ(HTML,CSS,JavaScript等)
– クライアントによるレンダリングで70%負荷軽減
• Flash印刷コンポーネント
– クライアントリソースの活用でサーバ側への負荷は最小限
– バーコード、QRコードなどをクライアント側で高速に印刷
– Active Xを使用していないため様々なOSやブラウザで動作する
• Flash導入率は全世界で99%以上。スマホなどを除くとほぼすべてのブラウザに対
応
• 分散KVS
– 顧客数を最大に見積もらなくてもスモールスタートが可能
– 急激なアクセス増大にも単純なノードを追加で対応可能
ReflexWorksによるソリューション
UI/UX、パフォーマンス、スケーラビリティの3つを同時に解決
Flash利用の異論
ActiveXと同じ問題?
HTML5は?
➡ 現実解
- 25. Copyright © Virtual Technology, Inc
本当のボトルネックはどこか
• 動的コンテンツの廃止
– クライアントによるレンダリングで70%負荷
削減
– 帳票作成の負荷削減効果は計り知れない
• 静的コンテンツのWebサーバへの移動
– 10%~20%の負荷削減(ロードアベレージ)
• 負荷の割合
25
コンテンツ関係だけで相当な改善効果があった
サーバサイド
はJSON返すのみ
- 26. Copyright © Virtual Technology, Inc
公報一括ダウンロードサービス
26
1993年以降の日本国の特許・
実用新案データ(PDF公報)
を収録。様々な番号形式の取
込み、集合演算、栞やメモの
付与、フォルダ共有、 PDF
公報の一括ダウンロード機能
などにより、スクリーニング
作業の効率化をはかれます。
http://www.pdc.jp/download/
〜 特許検索集合演算・スクリーニング効率化支援ツール 〜
- 28. Copyright © Virtual Technology, Inc
WebSocketによるイベント通知機能
28
http://reflexworks.jp/features.html#pushNotifications
• WebSocketのコネクション確立時に認証する
• 接続情報をセッションで管理
• フォルダ共有(R権限)でかつログイン中のユーザに通知
Reactive!
- 29. Copyright © Virtual Technology, Inc29
ご清聴ありがとう
ございました
・・・
REST
MessagePack
並列・並行プログラミング
Monad
ロックフリー、
Concurrent Revisions
STM
ReflexWorksは進化していきます
OLTP+OLAPの組み合わせが標準になると予想(やはりRDBいらない
雲(OLTP)の中身はモダンプログラミング?
Impala?
OLAP
OLTP
Fluentd
「ぶいてく」ブログ