2009-02-04 46 views
0

我一直在想這一段時間(你知道,程序員傾向於這樣做的危險的東西),我一直在想,存儲數據的方法是否真的很有效?回答這個問題的麻煩是我真的沒有什麼可以比較的,因爲這是我用過的唯一的東西。非文件FileSystems?

我不是指FAT或者NTFS或者是特定的類型的文件系統,我的意思是整個文件系統結構。我們只是習慣於考慮「文件夾」內的「文件」,就像我們的硬盤是一個巨大的檔案櫃。這是一個很好的比喻,事實上,當我們用這種方式來思考時,它會使學習變得容易很多,但它確實是描述程序及其各個部分的最佳方式嗎?

我想知道是否有人可以考慮(或瞭解)數據存儲技術,該技術可能用於存儲操作系統的數據,以便以不同的方式組織數據的各個部分。有什麼不同甚至存在嗎?

+0

人們一直在談論這個很長一段時間。顯然它很難*。 – dmckee 2009-02-04 18:50:25

+0

http://fuse.sourceforge.net/ ..做任何你想要的現在... – vrdhn 2011-02-17 11:06:56

回答

6

電子郵件通常存儲在文件夾中。但是自從我遷移到Gmail以來,我已經習慣於用標籤對我的電子郵件進行分類。

我經常想知道我們是否可以用這種方式管理整個文件系統:而不是將文件存儲在文件夾中,您可以使用您喜歡的標籤來標記文件。文件標識符不會這個樣子:

/home/john/personal/contacts.txt 

但更多的是這樣的:

contacts[john,personal] 

嗯......深思只是食品(!也許這已經存在)

+0

+1 - 良好的延伸.. – torial 2009-02-04 16:14:04

0

那麼,總是有,其中操作系統和文件系統是一個集成的數據庫。

3

例如,您可以有專門的解決方案,如Oracle Raw Partitions。其他數據庫支持類似的事情在這些情況下,文件系統會提供不必要的開銷並可能被忽略 - 數據庫軟件將負責組織結構。

這個問題似乎非常依賴於應用程序,文件/文件夾似乎是許多應用程序的合理折衷方案(並且易於人類理解)。

3

大型機用來給程序員一些'設備'使用。該設備與驅動器或其分區相對應,程序員負責組織其上的所有數據。當然,他們很快就建立了圖書館來幫助實現這一目標。

我認爲唯一的操作系統使用平面文件(如UNIX)的普通級別排列是PICK。這使用了一種關係數據庫作爲文件系統。

1

微軟原本計劃爲windows vista引入一個新的文件系統(WinFS - windows future storage)。這個想法是將所有內容都存儲在關係數據庫(SQL Server)中。據我所知,這個項目從未(或尚未完成)完成。

關於它的更多信息,請致電wikipedia

0

如果您知道所需文件的名稱(包括其路徑),則傳統文件系統會針對快速文件訪問進行優化。目錄是將文件分組在一起的一種方式,這樣如果您知道文件的屬性而不是實際名稱,它們就更容易找到。

傳統的文件系統善於發現的文件,如果你不是很瞭解他們,然而他們是足夠強大,人們可以在他們頂部添加一個圖層基於內容或元信息檢索文件,以幫助如標籤。這就是索引者的目的。

底線是我們需要一種方法來持久地存儲CPU需要執行的字節。所以我們有傳統的文件系統,它們非常擅長組織連續的字節集。我們還需要持續存儲不是直接執行的文件字節,而是被執行的內容使用。爲什麼要爲同樣的基本事物創造一個新的系統?

除了存儲和檢索字節,文件系統還應該做些什麼?

+0

我同意,我很少需要改變一個標準,顯然工作得很好,但我只是對替代品感興趣。我想真正的計劃是將好想法融合在一起。 – 2009-02-04 20:00:37

1

我認識一個寫他的博士學位的人,關於一個帶有自己文件系統的硬盤。它基於SCSI命令的擴展,它允許將常用的打開,讀取,寫入和關閉命令直接發送到磁盤,繞過操作系統的文件系統驅動程序。我認爲結論是它不靈活,效率不高。

無論如何,這基於磁盤的文件系統仍然狀結構,我相信一個文件夾,所以我不認爲這真的算個你;-)

0

我會附和其他答覆。如果我可以選擇文件系統類型,我個人更希望看到一種混合方法:一個平坦的子樹數據庫,其中每個子樹都被認爲是一個內聚單元,但是如果你將子樹本身看作離散單元,它們就沒有層次結構,但相反,元數據可以在元數據上查詢。

0

原因文件是人類喜歡將名字附加到他們必須使用的「事物」上。否則,變得很難談論,思考甚至區分它們。

當我們堆上的東西太多時,我們喜歡分離堆。我們通過一些手段對其進行分類,我們希望構建層次結構,以便您可以導航任意大小的事物。

因此,目錄和文件只是映射我們自然的工作方式與真實的物體。既然你可以把任何東西放在一個文件中。在Unix上,甚至硬件都被映射爲文件系統中的「設備節點」,這些文件系統是特殊文件,您可以通過讀/寫將命令發送到硬件。

我認爲比喻是如此強大,它會留下來。

0

我花了一段時間試圖想出一個自動版本控制文件系統,它可以維護任何特定文件和/或目錄結構的版本(和版本歷史)。

這個想法是,所有的標準訪問命令(例如dir,read等)都會有一個可選的日期/時間參數,可以在查看該時間點時訪問文件系統。

我得到了很多,但不得不放棄它,當我不得不出去賺錢。從那以後,它一直處於倒退的狀態。

0

如果您查看操作系統的啓動時間,應該清楚可以改進訪問磁盤。我不確定這些更改應該在文件系統中還是在OS啓動代碼中。

0

個人而言,我真的很抱歉WinFS沒有飛。我喜歡的概念.. 維基百科(http://en.wikipedia.org/wiki/WinFS):

WinFS的包括用於存儲信息的一個關係數據庫 ,並允許 任何類型的信息將被存儲在 它,只要是公 爲該類型定義的模式。 然後單個數據項可以是 ,通過 關係一起關聯在一起, 系統基於某些屬性或 由用戶明確說明。由於 數據具有明確定義的模式,因此任何應用程序都可以重用數據;和 使用關係,相關數據 可以有效地組織爲 檢索。由於系統知道 結構和的 信息的意圖,它可以通過 被用來製造 複雜的查詢,使先進 通過數據搜索和 彙總各種數據項利用它們 之間的關係。