我这两天也思考了一番,有了很好的思路
其实如果要做的比较完美一点,可以借鉴oracle数据库里面的分页索引结构,就是把存储空间分成很多的page
把page作为最小的存储单位可以定为4k(或8K,16K 有点象Fat32 Fat ..了吧 ^_^ ),然后另外专门创建一个分区索引区,表明一段数据区对应哪些page,要删除数据的时候,只需要表明那几个page不再使用, 可以重写, 适当的时候还可以重整空间,把标识为已经删除的page给搬移到文件的最后,类似于defrag的效果,这样不管是读还是写,效率都是很高的.文件空间能更合理的布局
不过要做到上面这些似乎这也算一个大工程了,这基本就相当于实现了一个文件数据库了,或者说是个完美的文件系统了,
这些想法和一些高手也交流过了,想法应该是没问题的
只是目前暂时也不打算这样去做,呵呵,主要是工作量...
将来闲暇的时候是一定要去完成的,这东西实现起来,还是很有意义的
有些高手说linux底层有这样的源码,去找找也许能发现,呵呵...