データベース ファイル システムは、階層ではなくデータベースであるファイル システムです。最初はそれほど複雑なアイデアではありませんでしたが、このようなことをどのように行うかについて誰かが考えたことがあるかどうか尋ねたいと思いましたか? 単純な計画では見落とされがちな問題は何ですか? 私の最初の実装の推測は、Linux プラットフォーム用のファイルシステム (おそらく既存のファイルシステムの上) のようなものですが、それがどのように開始されるかについてはあまり知りません。それは私がこれまでに続くとは思えない一時的な考えですが、少なくとも私の好奇心を満たすことを望んでいます.
5 に答える
DBFSは、KDE の非常に優れた PoC 実装です。ファイル システムとして直接実装する代わりに、従来のファイル システムでのインデックス作成に基づいており、ユーザーが結果にアクセスできるようにする新しいユーザー インターフェイスを構築しています。
最も簡単な方法は、データベース バックエンドを備えたfuseを使用してビルドすることです。
より難しいのは、それをカーネルモジュール (VFS) として持つことです。
Windows では、 IFSを使用できます。
「データベースファイルシステムは、階層ではなくデータベースであるファイルシステムです」という意味がよくわかりません。
おそらく、Osama ALASSIRY が述べたように、「Filesystem in Userspace」(FUSE)を使用することをお勧めします。FUSE wiki には、SQL のようなクエリで検索できるファイルシステムだけでなく、データベースを利用したファイルシステムに関する多くの既存のプロジェクトがリストされています。
あなたがこれを尋ねてからしばらく経ちました。誰も明白なことを提案しなかったことに驚いています。メインフレームとミニ、特に iSeries-OS (現在は IBM-i と呼ばれ、以前は iOS または OS/400 と呼ばれていました) に注目してください。
リレーショナル データベースを大量のデータ ストアとして使用する方法は、比較的簡単です。Oracle と MySQL の両方にこれらがあります。問題は、エンド ユーザー アプリケーションにとって本質的にユビキタスでなければならないことです。
したがって、アプリ変換の手順は次のとおりです。
1) 通常の階層ファイルシステム内のすべて
2) データベース内の軽いメタデータを含む BLOB 内のデータ。いくつかのカタログ情報を含むファイル。
3) 大規模なメタデータとデータベース内の複雑な構造を持つ BLOB の大きなデータ。本質的に構造を理解することができる、それに関連付けられた実質的なメタデータを含むファイル。
4) オブジェクトで公開される BLOB の内部構造 <--> 広範なメタデータを含むリレーショナル マップ。エクスポート可能なフォームがあるかもしれませんが、アプリケーションは当然データベースと連携し、リポジトリとしてのファイルの概念は失われます。