2016-08-08 12 views
0

ファイルのパスは、データを扱うときに本質的に疑わしいものです。 私はfind_brcaと呼ばれるプログラムで仮説的な状況があり、my.genomeと呼ばれるいくつかのデータは両方とも/Users/Desktop/ディレクトリにあるとします。ファイルパスを使用しないファイルシステムはありますか?

find_brcaは、約4時間にわたりゲノムを引き継いでおり、その個体が生涯にわたって発達する確率を返します。非常に高い確率で提示された一部の人々は、直ちに予防措置として胸を取り除くことがあります。

明らかに、このシナリオでは、実際には/Users/Desktop/my.genomeにはゲノムが含まれていることが絶対に重要です。ドゥーオーバーはありません。 「以前のバックアップのファイルの古いバージョンを使用していました」などの技術的な問題は、患者に受け入れられません。分析していると思われるファイルを分析するにはどうすればよいですか?

問題をより巧妙にするには、find_brca自体を変更することはできないと主張することもできます。なぜなら、クローズドソース、プロプライエタリなものなんて書かなかったからです。

MD5やその他の暗号チェックサムが救助に来るかもしれないと思うかもしれませんが、程度を助ける一方で、find_brcaが実行された後、またはその後にファイルをMD5にすることはできますが、正確に何のデータfind_brcaが(DTrace/ptraceなどで深刻な低レベルのシステム・プロービングをしなくても)使用しました。

問題の根本は、ファイルパスが実際のデータと1対1の関係にないことです。チェックサムでのみファイルを要求できるファイルシステムでのみ、データが変更されるとすぐにチェックサムが変更されます。find_brcaゲノムのファイルパス4fded1464736e77865df232cbcb4cd19を実際にゲットしています。

このようなファイルシステムはありますか?もし現在存在しないファイルシステムを作成したいのであれば、どうすればよいのですか?

+1

私はトラブルTISの質問を理解しています。だから、問題は、誰かが「悪い」ファイルを修正する可能性があるということですか? – dmeister

+0

ファイルパスが思っているデータを指していないシナリオがたくさんあるので、少し曖昧にしました。腐敗。実行前の競合状態または4時間のランタイム中の競合状態のいずれかとして、ファイルの偶発的/意図的な切り替え。バックアップなどから使用される古いバージョン。プログラムのファイルパスを分析すると、そのパスの終わりにデータが保証されないため、その日の終わりに終了します。任意の名前ではなく、チェックサムに基づいてファイルを要求できるファイルシステムでは、これらの問題はありません。 –

答えて

2

私は安定性についての私の疑問を持っていますが、hashfsは正確に何をしたいのようになります。http://hashfs.readthedocs.io/en/latest/

HashFSは連想ファイル管理システムです。どういう意味ですか?単純に、そのHashFSは、ファイルのハッシュに基づいてファイルが保存されるディレクトリを管理します。この種のシステムの典型的な使用例は次のとおりです。ファイルは一度書き込まれ、決して変更されません(イメージ保管など)。重複するファイル(ユーザーのアップロードなど)は必要ありません。ファイルメタデータは、他の場所(データベースなど)に格納されます。

注:hashfsと混同しないように、私の学生が数年前にやった:http://dl.acm.org/citation.cfm?id=1849837

1

質問は少し曖昧ですが、あなたの質問の一部にはいくつかの回答があります。

まず、すべてのファイルシステムにパス/データの対応がないわけではありません。多くの(ほとんどのファイルシステムではないにしても)ファイルシステム上では、そのファイルはパスで識別され、IDで識別されることはありません。

次に、アプリケーションがアプリケーションを処理している間にデータが変更されないことを保証したい場合は、使用されているファイルシステムと、このアプリケーションがファイルに対してどのように動作するかによって異なります必要に応じてファイルを閉じます)。

最後に、攻撃者がファイルデータの使用中に何らかの方法でファイルシステムのデータを変更することに懸念がある場合は、ファイルパスだけよりも大きな問題がある可能性があります。 。

さらに、仮想ファイルシステム(LinuxではFUSE、WindowsではCBFS)を実装することができます。このファイルシステムは、メモリ、データベース、クラウドなど、どこからでも取得したデータをアプリケーションに供給します。このアプローチはあなたの質問にも答えます。

更新:ファイルパスを一切取り除き、データがハッシュでアドレスされるようにするには、おそらくNoSQLデータベース(ハッシュをキーとする)が最善の策です。

+0

あなたはもっと質問に答えるように思われます。「ファイルパスがないファイルシステムについては、どうすれば良いのですか?私は、ファイルパスを全く必要としない、または必要としません。何十億ものファイルがSHA-1の合計で索引付けされた単一の「ディレクトリ」は、特にハッシュに基づいてファイルを読み取ると、元に戻すデータが保証されるようなコピーオンライトシステムの場合は問題ありません読んでいる間に「変更されていても」と思うデータ。しかし、残念ながら私はこのようなものを見つけるのに苦労しました。おそらく仮想ファイルシステムが私の最善の策です:)ありがとうユージーン! –

+1

@ J.J私は私の答えに更新を追加しました。 NoSQLのために移動し、キーとしてハッシュを使用してください。 –

+0

私はそれが大好きです。データベースは伝統的なファイルシステムのようには機能しません(ファイルパス以外のプログラムでハッシュを受け入れることを望んでいました)が、トランザクショナルサポートなどの柔軟性を提供します。 –

関連する問題