Thread View: fj.net.www.authoring
7 messages
7 total messages
Started by Tanaka-Qtaro-Yasuhiro
Fri, 20 Feb 2004 05:15
ファイルの有無でリクエストを振り分けたい
Author: Tanaka-Qtaro-Yasuhiro
Date: Fri, 20 Feb 2004 05:15
Date: Fri, 20 Feb 2004 05:15
28 lines
2140 bytes
2140 bytes
田中久太郎です。 ウェブ上の画像ファイルをデータベースで管理したいと思っています。 ただ毎回データベースから取り出しているとパフォーマンスが悪そうな ので、一度リクエストされたファイルは実ファイルとして残しておくこ とはできないものかと考えています。 例えば、以下のリクエストがあったときに、 http:/www.example.jp/image/abc/foo.gif image/abc/foo.gif のファイルがあった場合と無かった場合で、次の ように処理を分けたいのです。 【ファイルがある場合】 そのまま image/abc/foo.gif を渡す。 【ファイルが無い場合】 image_output.cgiを起動して、データベースに格納している foo.gifをストリームに吐き出す。 ついでに image/abc/foo.gifを実ファイルとして出力しておく。 こういったリクエストの振分けを Apacheの設定で(mod_rewriteあたり を使って?)行うことは可能でしょうか? -- Tanaka-Qtaro-Yasuhiro mailto:tanaq@ca2.so-net.ne.jp
Re: ファイルの有無でリクエストを振り分けたい
Author: 名称不定
Date: Fri, 20 Feb 2004 12:27
Date: Fri, 20 Feb 2004 12:27
22 lines
2430 bytes
2430 bytes
DBの外に出すとなると、DB内のファイルと実ファイルの 内容が一致していることをどうやって保証してやるか (DB内のファイルが更新された時に実ファイルを どうやって更新させるか)という問題が起きるのでは ないでしょうか? 仮に、DB内のファイルが更新されないのなら、 最初から実ファイルにしておけば済む話でしょうし。 また、DBにはファイルへのパス名だけを記録して、 実ファイルをDBの外へ置くという方法もあると思います。 あとは、RAMをたくさん搭載してキャッシュに載せてしまうとか。 下手に実ファイルにも書き出すより、OSのキャッシュ管理機能に 任せてしまった方が速い場合もあると思います。 Tanaka-Qtaro-Yasuhiro wrote: > 田中久太郎です。 > > ウェブ上の画像ファイルをデータベースで管理したいと思っています。 > > ただ毎回データベースから取り出しているとパフォーマンスが悪そうな > ので、一度リクエストされたファイルは実ファイルとして残しておくこ > とはできないものかと考えています。 (以下略)
Re: ファイルの有無でリクエストを振り分けたい
Author: Yasushi Shinjo
Date: Fri, 20 Feb 2004 20:02
Date: Fri, 20 Feb 2004 20:02
24 lines
2261 bytes
2261 bytes
$B?7>k!wC^GHBg3X>pJs$G$9!#$3$s$K$A$O!#(B In article <c14558$fv1$1@news-wst.ocn.ad.jp> Tanaka-Qtaro-Yasuhiro <tanaq@ca2.so-net.ne.jp> writes: > $B!Z%U%!%$%k$,L5$$>l9g![(B > image_output.cgi$B$r5/F0$7$F!"%G!<%?%Y!<%9$K3JG<$7$F$$$k(B > foo.gif$B$r%9%H%j!<%`$KEG$-=P$9!#(B > $B$D$$$G$K(B image/abc/foo.gif$B$r<B%U%!%$%k$H$7$F=PNO$7$F$*$/!#(B Redirect $B$9$k$H$J$s$H$+$$$1$=!<$J5$$b$7$^$9!#(B > $B%&%'%V>e$N2hA|%U%!%$%k$r%G!<%?%Y!<%9$G4IM}$7$?$$$H;W$C$F$$$^$9!#(B > > $B$?$@Kh2s%G!<%?%Y!<%9$+$i<h$j=P$7$F$$$k$H%Q%U%)!<%^%s%9$,0-$=$&$J(B > $B$N$G!"0lEY%j%/%(%9%H$5$l$?%U%!%$%k$O<B%U%!%$%k$H$7$F;D$7$F$*$/$3(B > $B$H$O$G$-$J$$$b$N$+$H9M$($F$$$^$9!#(B $B$I$3$^$G6/$$0l4S@-$r5a$a$k$+$K$b$h$j$^$9$,!"%G!<%?%Y!<%9$KF~(B $B$l$F$"$C$F$b!"A4It%U%!%$%k$H$7$F%"%/%;%92DG=$K$7$F$*$$$F!"Dj(B $B4|E*$K!"%U%!%$%k$,:G?7$+$I$&$+$rD4$Y$k$H$+!"$=$NDxEY$G$O%@%a(B $B$G$9$+!#(B $B!@!@!!?7>k!!Lw!!!J$7$s$8$g$&!!$d$9$7!K!!!@!@(B $B!@!@!!C^GHBg3X!!EE;R!&>pJs!!!!!!!!!!!!!!!@!@(B
Re: ファイルの有無でリクエストを振り分けたい
Author: Tanaka-Qtaro-Yasuhiro
Date: Sat, 21 Feb 2004 01:52
Date: Sat, 21 Feb 2004 01:52
32 lines
2538 bytes
2538 bytes
田中久太郎です。 名称不定さんの<c14ufj$1tl$1@news511.nifty.com>から > DBの外に出すとなると、DB内のファイルと実ファイルの > 内容が一致していることをどうやって保証してやるか > (DB内のファイルが更新された時に実ファイルを > どうやって更新させるか)という問題が起きるのでは > ないでしょうか? たしかにそこは注意が必要ですね。 DB内のファイル更新時には実ファイルを消す処理を入れる予定です。 > また、DBにはファイルへのパス名だけを記録して、 > 実ファイルをDBの外へ置くという方法もあると思います。 今は上記の方法をとっています。 ただ、なるべくデータの一貫性を保ちたいのと、バックアップ&リス トアで楽をしたくて、データベース内にファイルを格納したいと思っ ています。 > あとは、RAMをたくさん搭載してキャッシュに載せてしまうとか。 > 下手に実ファイルにも書き出すより、OSのキャッシュ管理機能に > 任せてしまった方が速い場合もあると思います。 なるほど。OSのキャッシュ管理機能ですか。 Linux+Apacheの場合だとどういうふうにやるのがいいですかね。 -- Tanaka-Qtaro-Yasuhiro mailto:tanaq@ca2.so-net.ne.jp *-*-*-* NGMP改訂CFV実施中 see fj.news.policy *-*-*-*
Re: ファイルの有無でリクエストを振り分けたい
Author: 名称不定
Date: Sat, 21 Feb 2004 06:19
Date: Sat, 21 Feb 2004 06:19
27 lines
2682 bytes
2682 bytes
想定している負荷(利用者や更新頻度)によって 回答は異なりますが・・・。 Tanaka-Qtaro-Yasuhiro wrote: > ただ、なるべくデータの一貫性を保ちたいのと、バックアップ&リス > トアで楽をしたくて、データベース内にファイルを格納したいと思っ > ています。 一貫性を保つという意味ではDBは有効ですが、 それほど頻繁に(分秒単位で)更新されるのでなければ、 ファイル形式のインデックスで足りるのではないでしょうか。 また、私にはDBよりも普通のファイルの方がバックアップが 簡単に思えます。 tar -zcf backup.tgz /var/www/html みたいに するだけですし。(^^;; >>あとは、RAMをたくさん搭載してキャッシュに載せてしまうとか。 >>下手に実ファイルにも書き出すより、OSのキャッシュ管理機能に >>任せてしまった方が速い場合もあると思います。 > > なるほど。OSのキャッシュ管理機能ですか。 > Linux+Apacheの場合だとどういうふうにやるのがいいですかね。 Linux なら、RAMの大部分はファイルデータのキャッシュに 割り当てられますので、何も考える必要はないと思います。(^^; するとしたら、メモリ節約の意味でも、安全のためにも、使わない プログラム(ftpd とか)を起動させない設定にしておく位でしょうか。
Re: ファイルの有無でリクエストを振り分けたい
Author: Tanaka-Qtaro-Yasuhiro
Date: Sun, 22 Feb 2004 01:28
Date: Sun, 22 Feb 2004 01:28
31 lines
2565 bytes
2565 bytes
田中久太郎です。 名称不定さんの<c16t8l$82a$1@news511.nifty.com>から > 一貫性を保つという意味ではDBは有効ですが、 > それほど頻繁に(分秒単位で)更新されるのでなければ、 > ファイル形式のインデックスで足りるのではないでしょうか。 > また、私にはDBよりも普通のファイルの方がバックアップが > 簡単に思えます。 tar -zcf backup.tgz /var/www/html みたいに > するだけですし。(^^;; ファイルだけならばおっしゃる通りなのですが、ファイル以外の データも少なからずデータベース内にあるんですよね。それを別 々に管理するのが面倒だなあ、と。 すいません言葉が足りなくて。 > Linux なら、RAMの大部分はファイルデータのキャッシュに > 割り当てられますので、何も考える必要はないと思います。(^^; あ、そういう意味でしたか。 データベース内のファイルをストリームで出力したときに、それ の出力データをRAMにキャッシュできるような仕組みを作る、 という意味に取り違えてました。 #ひょっとするとそういうものもキャッシュしてくれてるのかな? -- Tanaka-Qtaro-Yasuhiro mailto:tanaq@ca2.so-net.ne.jp *-*-*-* NGMP改訂CFV実施中 see fj.news.policy *-*-*-*
Re: ファイルの有無でリクエストを振り分けたい
Author: Tanaka-Qtaro-Yasuhiro
Date: Sun, 22 Feb 2004 01:43
Date: Sun, 22 Feb 2004 01:43
25 lines
2333 bytes
2333 bytes
田中久太郎です。 Yasushi Shinjoさんの<YAS.04Feb21050247@kirk.is.tsukuba.ac.jp>から > Redirect するとなんとかいけそーな気もします。 なるほど。 ErrorDocument ディレクティブでやる方法を思いつきました。 401 Not Found なときに、CGIを起動させてやれば良さそうです。 ErrorDocument 401 image_output.cgi みたいな。 ただ名称不定さんがおっしゃるように、DB内のファイルが更新され たときに実ファイルの内容を保証するためには、必ず CGIを通して、 ファイルの日付をチェックしたほうがいいかもしれませんね。 その場合は、実ファイルは実際には別の場所に置いといて、一旦 CGI を通してファイルの日付をチェックした後に URLをそっちに書き換え る、といいかもです。どの程度のパフォーマンスが出るかは不明です が。 -- Tanaka-Qtaro-Yasuhiro mailto:tanaq@ca2.so-net.ne.jp *-*-*-* NGMP改訂CFV実施中 see fj.news.policy *-*-*-*
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads