2012-04-24 5 views
0

現在、ディスク上とメモリ内のシリアル化された(json)データを保持するキャッシングシステムを作成しています。データベース。nodejs inodeでnfsファイルを開く(またはファイルを開くための最も速い方法)

システムは、アクセスされたファイルの最後のX個をメモリに保持し、ディスクから他のファイルを読み取ることで動作します。

私は、ifsでファイルを開くことによって、(将来私が使うかもしれない)nfsシステムのI/O負荷を軽減するシステムがあることを読んだ。

私の質問は以下のとおりです。

  1. nodejsにiノードによってNFSファイルシステム上のファイルを開くための方法はありますか?そうでない場合は、それを実現するためにどのような宿題が必要でしょうか?
    2.ローカルファイルシステム上のファイルをinodeで開くことは絶対不可能ですか?
    3.実際には不可能な場合は、ファイルを何度も再オープンする必要があります。なぜなら、OSのファイルを何度も何度も繰り返すのは不必要に繰り返されるようです。
+2

この冒険に着手する前に、memcachedやredisのような試したテストをしてみることをお勧めしますか?どちらもLRUキャッシュとして使用できますが、データベースからデータを再構築するために収集するので完璧なはずです。 –

+0

リナックスありがとう! memcachedは私が計画していたものとほぼ同じです。私はまだキーがmemcachedにない場合、私はnfsストアに戻るべきだと思います。私の質問の一部はまだ残っています。 – work4liberty

答えて

2
  1. そうすることが、いくつかのケースでは、ユーザーはファイルシステムのACLをバイパスできるようになるのでいいえ、iノードでファイルを開くためには、ユーザーがアクセス可能な方法は、ありません。

  2. はい。同じ理由。

  3. Linuxカーネルを含むほとんどの有能なNFSクライアントは、統計結果をローカルにキャッシュします。

+0

ここでトロールしようとしていないのは、私の質問が全くナッツじゃないことを示すことだけです。大きな男の子は明らかにいくつかのカーネルのハッカーでこのトリックをしています。 ex:http://perspectives.mvdirona.com/2008/06/30/FacebookNeedleInAHaystackEfficientStorageOfBillionsOfPhotos.aspx「Linuxカーネルを拡張して、ファイル名ではなくiノード番号でNFSファイルを開くことができます。私が最初に私の投稿をしたとき、私はカーネルのハックがこれを起こすために必要であることを知らなかった。誰もが冷たい私がちょうどFTMなしで暮らすだろうハッキングされたnfsシステムを知っていない限り。 – work4liberty

関連する問題