ファイルとクラスタ

クラスタリングを想定する環境でローカルファイルを扱うアプリケーションは一般にどういった作り方をするんでしょう?

シンプルな例としては multipart/form-data でアップロードされるファイルは、サーバ上にいったんファイルとして格納するのが主流ですが(自分はオンメモリで管理できるものも作ったけど)、その場合、そのセッションを他のマシンに移送するのは簡単ではなくなります。

クラスタを制御するロードバランサ側で、同一セッションは同一サーバに転送するようになっている場合がほとんどでしょうから、普通にファイルシステムを使ってもほとんど問題ないような気はしますが、安いロードバランサだとそうはいかないでしょう。

ファイルとして保存する必要がある場合は、クラスタを構成するマシン群が同一ハードディスクを同一パスにマウントすればいいんでしょうけれど…。

また、クラスタを構成するノード群が重複し得ないユニークセッションIDを生成できるようになっているのか、ちと疑問。
まぁ、ランダムセッションID でもまず重複する可能性はないとはいえ、普通に乱数等を使っているとありえなくもない。SecureRandom はそういった場合も想定して安全になるようにはなってると思うけど、どうやってるのかは知らないや^^;。

そんなわけで、一般的に、クラスタのノードはどれくらいの意識でファイルへの書き出しを行っているのか、あるいは、常に外部ホストの RDB だけを利用しているものなのか、ちと知りたいものです。