[OSASK 5709] BOARD: Re: 遅延書き込みのしくみとか?(バカな質問かも)

このメールは、OSASK伝言板に書き込まれた内容です。
この書き込みに返事を書く場合は、下のURLから書き込みを行なって下さい
http://www.imasy.org/~mone/osask/index.cgi?REFER=3e44c656_13800

2003/02/08 17:56
川合秀実

[OSASK 5708]へのレスです。はじめまして、てりやんさん。

>「クローズ前のファイルでも他のアプリから読み書きできる」という機能のおおざっぱな「しくみ」は、どんなものなのでしょうか?
> CVSとか、(アプリの動作まで拡張したような意味での)フルジャーナリングみたいなモノがファイルシステムに組み込まれているのでしょうか?

  こんな感じです。

  タスクAがファイル内のある領域を書き換えて、他の領域はまだ書き換えおわ
ってなかったとします。でも書き換え終わった部分はもうそれ以上いじる予定は
ない、という状況はまあまああるでしょう。そういう場合、書き換えが済んだ部
分だけ確定したよとシステムに報告します(一バイトずつ出力して確定する場合
、一バイトずつ報告を出すのは効率が悪そうなので、16KBごとに報告をだすとか
そういう感じで十分でしょう)。

  一方、タスクBはファイルを同じオープンして確定部分が増えるのを待ってい
ます。確定部分が増えたら、そこからどんどん処理していきたいわけです。待っ
ているとシステムから「オフセット○○からの××バイトは確定したよ」という
通知が来ます。それをみてその範囲で処理するわけです。

  システム側では、それなりのデータベースを持ってこれらの情報を管理する必
要があります。その具体的な仕組みまではまだ考えていません。しかし、以上で
お分かりかと思いますが、従来よりも書き込み側も読み込み側も作業が増えてい
ます。この作業を隠蔽するつもりはないので、システムの負担もそれほど多くは
ないでしょう。・・・もしこういう報告をするのが面倒とか、確定待ちをするの
がいやなら、しなくていいです。その場合、ファイル全体の書き換え確定はクロ
ーズ時に自動で行われますし、オープン時にも全体が確定するまでオープンが完
了しなくなります。

  てりやんさんが想像しているほど、複雑な仕組みは想定していませんでした。
もちろん、入れたければ誰かが試しにいれるかもしれません。



ML番号でジャンプ
ML単語検索