ソース読んだだけだけど>< moco の session は、特定の範囲で使われるcacheのような物がある。 通常のCacheオブジェクトよりも優先的に使われる。 __PACKAGE__->is_in_session で、現在のセッションのオブジェクトをとるよ。 session は変更のあったrowを保存しといてくれて、end_sessionの時にまとめてsaveしてくれる。 object_id が各レコードのユニークなkeyを作れると。 retrieve は引数から object_id を作ってキャッシュを引いてる。キャッシュ無ければretrieve_by_db でDBから引いてキャッシュに投入。DBがnull返してきても基本的にはnullをキャッシュする。 retrieve_multi はキャッシュから引いてきてキャッシュにないobject_idはDBからとってくる。 retriev