我這兩天也思考了一番,有了很好的思路
其實(shí)如果要做的比較完美一點(diǎn),可以借鑒oracle數(shù)據(jù)庫(kù)里面的分頁(yè)索引結(jié)構(gòu),就是把存儲(chǔ)空間分成很多的page
把page作為最小的存儲(chǔ)單位可以定為4k(或8K,16K 有點(diǎn)象Fat32 Fat ..了吧 ^_^ ),然后另外專門創(chuàng)建一個(gè)分區(qū)索引區(qū),表明一段數(shù)據(jù)區(qū)對(duì)應(yīng)哪些page,要?jiǎng)h除數(shù)據(jù)的時(shí)候,只需要表明那幾個(gè)page不再使用, 可以重寫, 適當(dāng)?shù)臅r(shí)候還可以重整空間,把標(biāo)識(shí)為已經(jīng)刪除的page給搬移到文件的最后,類似于defrag的效果,這樣不管是讀還是寫,效率都是很高的.文件空間能更合理的布局
不過要做到上面這些似乎這也算一個(gè)大工程了,這基本就相當(dāng)于實(shí)現(xiàn)了一個(gè)文件數(shù)據(jù)庫(kù)了,或者說是個(gè)完美的文件系統(tǒng)了,
這些想法和一些高手也交流過了,想法應(yīng)該是沒問題的
只是目前暫時(shí)也不打算這樣去做,呵呵,主要是工作量...
將來閑暇的時(shí)候是一定要去完成的,這東西實(shí)現(xiàn)起來,還是很有意義的
有些高手說linux底層有這樣的源碼,去找找也許能發(fā)現(xiàn),呵呵...