10年後のデータベース アーキテクチャ と青春の日々

798 views

Published on

Datomicについて。更にアプリキャッシュのパフォーマンスの簡易テスト。

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
798
On SlideShare
0
From Embeds
0
Number of Embeds
31
Actions
Shares
0
Downloads
5
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

10年後のデータベース アーキテクチャ と青春の日々

  1. 1. Creat r s Night 2012/03/16 事業創造室 加藤寛之Wednesday, March 21, 12
  2. 2. 本日のお題 10年後のデータベース アーキテクチャ と青春の日々Wednesday, March 21, 12
  3. 3. 10年後のデータベース アーキテクチャ?Wednesday, March 21, 12
  4. 4. DatomicWednesday, March 21, 12
  5. 5. なにそれ美味しいの?Wednesday, March 21, 12
  6. 6. Hacker Newsのコメントより Datomic is a UFO filled with advanced alian technologyWednesday, March 21, 12
  7. 7. ひっじょ∼に興味深いねWednesday, March 21, 12
  8. 8. ということで アーキテクチャをご紹介Wednesday, March 21, 12
  9. 9. これまで Web Server INSERT / UPDATE SELECT DB ServerWednesday, March 21, 12
  10. 10. これまで Web Server INSERT / UPDATE SELECT 増えたらだめぇ! パンクしちゃう! DB ServerWednesday, March 21, 12
  11. 11. これまで Web Server INSERT / UPDATE SELECT データ同期 DB Server DB Server (master) (slave)Wednesday, March 21, 12
  12. 12. これまで Web Server INSERT / UPDATE SELECT 同期 データ同期 DB Server DB Server DB Server (master) (master) (slave)Wednesday, March 21, 12
  13. 13. これまで Web Server INSERT / UPDATE SELECT 同期 データ同期 DB Server DB Server DB Server (master) (master) (slave)Wednesday, March 21, 12
  14. 14. これまで Web Server INSERT / UPDATE cache SELECT 同期 データ同期 DB Server DB Server DB Server (master) (master) (slave)Wednesday, March 21, 12
  15. 15. 頭を悩ませることがいっぱい  ・INSERT / UPDATEがScaleしにくい  ・データの復旧が面倒  ・キャッシュのTTLをコンテンツ毎に管理  ・レプリケーションサーバーが増える   => マスタへの負荷が増大  ・なによりDBがいつもボトルネック  ・などなど どんどん物事が複雑になっていく。Wednesday, March 21, 12
  16. 16. そこでDatomicWednesday, March 21, 12
  17. 17. 特徴その1 保存されているデータは更新不可能 (Append-Only) ・Lockされない(だって更新しないもん) ・更新処理は後述するTransactorに新しいデータの作成  として実行キューに登録/処理される。Wednesday, March 21, 12
  18. 18. 特徴その2 アプリケーションプロセスにて クエリ処理が行われる ・発行されるクエリの解析はアプリ側で行う。 ・クエリの解析結果と、ローカルに存在するインデックス  から対応する固有ID(のリスト)を取得。Wednesday, March 21, 12
  19. 19. 特徴その2 自プロセス内のキャッシュから 固有IDに対応するデータを検索。 ・キャッシュ上に存在すれば通信さえ発生しない。 ・キャッシュ上になければ元データの保存場所から取得。Wednesday, March 21, 12
  20. 20. 特徴その3 データの追加 / 更新処理はすべて Transactor経由で行われる。 ・元データの保存場所に対してアプリケーションが  直接更新処理を行う訳ではない。 ・全ての更新履歴を保存しているので、データの復旧とか  楽勝すぎワロタ。Wednesday, March 21, 12
  21. 21. Datomic cache Live Index cache Live Index cache Live Index Web Server INSERT / UPDATE GET ENTITY (request only data segments, not query) Data Index Transactor (data segments) Storage ServiceWednesday, March 21, 12
  22. 22. Datomic(更新時) cache Live Index cache Live Index cache Live Index Web Server INSERT / UPDATE Data Index Transactor (data segments) Storage ServiceWednesday, March 21, 12
  23. 23. Datomic(更新時) cache Live Index cache Live Index cache Live Index Web Server INSERT / UPDATE Data Index Transactor (data segments) Storage ServiceWednesday, March 21, 12
  24. 24. 何が嬉しいの?  ・そもそもキャッシュHITしたら   Storage Serviceにアクセスさえない。  ・UPDATEがないのでlockしない。   => 他のクエリに迷惑をかけない。  ・Storage Serviceは単純にデータを   提供するだけ!クエリ解析とか   キャッシュとか考えなくていい。Wednesday, March 21, 12
  25. 25. 個人的に各サーバーの 役割分担がより明確に なってると思ったりWednesday, March 21, 12
  26. 26. でもサービスはリリース 前でした(́・ω・`)Wednesday, March 21, 12
  27. 27. でもアプリケーションに 組み込むライブラリの 参照実装(Java) は公開されている。。Wednesday, March 21, 12
  28. 28. なぜRubyがないのか?Wednesday, March 21, 12
  29. 29. ないなら作っちゃえ! (^O^)Wednesday, March 21, 12
  30. 30. ごめんなさい 間に合いませんでしたWednesday, March 21, 12
  31. 31. 日本語でおkWednesday, March 21, 12
  32. 32. 時間まで、しばしご鑑賞くださいWednesday, March 21, 12
  33. 33. というのもアレなので 別の策を考えてみたWednesday, March 21, 12
  34. 34. アプリケーション内 キャッシュって どこまで有効なんだろ?Wednesday, March 21, 12
  35. 35. とある社内ツールで 試してみたWednesday, March 21, 12
  36. 36. その名も KatomicWednesday, March 21, 12
  37. 37. Katomic = in-memory KVS written with RubyWednesday, March 21, 12
  38. 38. Katomicの有効/無効で 処理速度の変化を比較 してみたよWednesday, March 21, 12
  39. 39. 結果 Katomic 合計 ビュー DB その他 無効 1,608.6 735.5 8.3 864.8 有効 327.1 323.7 0.6 2.8 速度比 490% 230% 138% 3,086% 単位: ミリ秒Wednesday, March 21, 12
  40. 40. 圧倒的じゃないか、 我が軍は!Wednesday, March 21, 12
  41. 41. アプリ内キャッシュ っていいかもーWednesday, March 21, 12
  42. 42. ということでDatomicを もっと調査/検証します!Wednesday, March 21, 12
  43. 43. Thanks!Wednesday, March 21, 12

×