• 追加された行はこの色です。
  • 削除された行はこの色です。
RIGHT:[[:t/永続化]] [[:t/DB]]

オブジェクトを以降のリクエストでも、他の利用者にも使えるようにすること。

#contents

***†[[永続化でやること]] [#j94c78cf]
実装案。

***†[[永続化での上書きは追加で]] [#c1313797]

***†[[永続化での削除も追加で]] [#xfd6d35b]

***†[[古いファイルは消せるときに消す]] [#aeaf399f]

***†[[排他的ロック/共有ロック]] [#j61c0374]

***†[[永続化のキー]] [#md972074]

***†[[シリアライズが必要]] [#de841db8]

***†[[永続化クラスでの検索]] [#q93c0dda]
検索機能とは別の、低いレベルの話。

RIGHT:[[:t/永続化]] [[:t/LTSV]]

***キューイング [#ud59096e]
永続化を使う側の一つ。永続化からすると使われ方の例。
†キューはModelに出すもの
†キューの永続化

RIGHT:[[:t/キュー]] [[:t/開発]]


永続化システムはロックとパフォーマンス低下を防ぐ方法。
※通常の編集1回で1回のロックとファイル削除が必要。でもすぐにでなくていい。やることの分散。編集時のロックをいつでもいいようにしてパフォーマンス低下防止。しかもロックは非ブロックですぐタイムアウトにしていい。待たない。

RIGHT:[[:t/永続化]]

***全体複製をしたくないなら [#e7160e07]
ちょっと更新するだけで全体を複製することになる。そこで時間がかかるなら逆効果。
全複製は1ファイルで1エントリー全体をまかなえるということ。複数ファイルで1エントリーだったら?
→関連ファイルを全て読み込んでマージすればいい。この場合エントリーに''追記するだけ''なら複製不要。参照は新しい順に、エントリー1つ分が揃うまで、ファイル参照をして、得たデータを全てマージ。
型によってはマージ不可能。その場合は全複製を要する。条件が多すぎて使いにくい。

それよりも1エントリーをDictionaryの1エントリーに見立てて、フォルダーをDictionaryにすればいい。
フォルダーをネストすればDictionaryのネストのようになる。キー→キー→値といったアクセスが可能に。

***†[[内部名と外部名]] [#bcfa0e95]
これをどう記録して参照を速くするか。
†[[:i/ページ名インデックス]]
フォルダーをDictionaryとして使う方法で。