岩本隆史の日記帳(アーカイブ)

はてなダイアリーのサービス終了をうけて移行したものです。更新はしません。

連載記事「スケーラブルなO/Rマッピングの実現手法」が面白い

野村総合研究所の石田裕三さんがITA Issueに連載されている記事「スケーラブルなO/Rマッピングの実現手法」が面白く、今後に期待しています。

私自身はサーバ数百台といった大規模システムとは縁がないのですが、オレオレフレームワークを作ろうと思っている関係上、データベースの扱いはやはり気になります。スケーラブルにできるものならそうしたいですよね。

第3回では、スケーラブルなO/Rマッピングの設計思想が書かれています。

(1)1回のクエリでアクセスするテーブルは必ず1つにする
(2)抽出したレコードは一切加工せずにフェッチする
(3)マッピング・クラスはテーブルと1対1で作成する

JOINはアプリケーション側でおこなうわけですね。排他制御をどうするのか気になりますが、今後の回で触れられるのではないかと思います。とはいえ、アプリケーション側でなんとかするしかなさそうですが。Rubyの場合はMutexとかSync_mとかで対応できるのかな。

大規模SNS実現のためのGREEのアプローチ (1/5) - ITmedia エンタープライズ」を読むと、GREEでも、JOINを捨て、トランザクションを諦める形でスケーラビリティを確保しているようです(2006年の記事ですが)。eBayも、「スケーラビリティに関するベストプラクティス:eBayからの教訓」によれば、トランザクションを諦めている。

ともあれ、私ごときがあれこれ考えても休むに似たりなので、続きを楽しみに待つことにします。