More Related Content
Similar to activerecord-turntable
Similar to activerecord-turntable (20)
More from Drecom Co., Ltd.
More from Drecom Co., Ltd. (20)
activerecord-turntable
- 2. 提供
Copyright © Drecom Co., Ltd.
- 3. 自己紹介
• @gussan ※顔出しNG
• ソーシャルゲーム基盤開発本部
• アーキテクト
• ミドルウェア選定・ライブラリ開発等
Copyright © Drecom Co., Ltd.
- 10. 既存のSharding
• Spider for MySQL
• ソーシャルゲームとの相性
• Railsとの相性
• 今はかなり改善されているはず
• Octopus, DataFabric, db_charmer
• DBアクセスするコード殆どに手を入れなけれ
ばいけない
Copyright © Drecom Co., Ltd.
- 14. 図解
ActiveRecord::Base Turntable
AR::Base AR::Base
Query Query
ConnectionPool Proxy
Connection CP CP CP
Conn Conn Conn
DB DB DB DB
Copyright © Drecom Co., Ltd.
- 15. サーバ構成例
Master App Sequencer
Cluster
Shard1 Shard2 Shard3
Copyright © Drecom Co., Ltd.
- 16. 用語
• Shard = データが保存されるノード
• Cluster = 同じデータを保存するShard
の塊
• Sequencer = 採番DB
• Master = 通常のdatabase.ymlで指定
するDB。schema情報が取得される。
Copyright © Drecom Co., Ltd.
- 20. 分散定義
class User < ActiveRecord::Base
turntable :user_cluster, :id
end
+
分散設定ファイル turntable.yml
接続設定ファイル database.yml
Copyright © Drecom Co., Ltd.
- 26. 採番機能
class User < ActiveRecord::Base
turntable :user_cluster, :id
sequencer
end
Copyright © Drecom Co., Ltd.
- 27. 採番機能
# on Octopus
Octopus.using(:shard1) do
User.create(name: "hoge")
end
# on db_charmer
User.shard_for(10).create(name: "hoge")
# on turntable
User.create(name: "hoge")
Copyright © Drecom Co., Ltd.
- 33. Migration & Rake tasks
• Migration毎にどのshardを操作するか
を指定できる。
• db:create, db:dropなどが全ての
shardにも同時実行される
• その他, README参照
Copyright © Drecom Co., Ltd.
- 35. デモ
Copyright © Drecom Co., Ltd.
- 37. Edgeのお話
Copyright © Drecom Co., Ltd.
- 42. ご清聴ありがとうございました。
activerecord-turntable
http://github.com/drecom/activerecord-turntable
エンジニア大募集中
Copyright © Drecom Co., Ltd.
Editor's Notes
- \n
- \n
- \n
- \n
- \n
- \n
- \n
- \n
- \n
- \n
- \n
- \n
- \n
- \n
- \n
- \n
- \n
- \n
- \n
- \n
- \n
- \n
- \n
- \n
- \n
- \n
- \n
- \n
- \n
- \n
- \n
- \n
- \n
- \n
- \n
- \n
- \n
- \n
- \n
- \n
- \n
- \n