照着這個要求http://www.cnblogs.com/promise6522/archive/2012/01/12/2321080.html寫了一個簡單的K/V數據庫。不過不支持跨數據庫操做。 html
一開始的時候沒有考慮到錯誤恢復系統。後來想把恢復系統加進去發現了個問題。就是數據文件和索引文件不該該分開。應該將數據和索引放在同一個文件裏。 sql
這是由於fsync操做。數據庫使用write以後只是將數據轉移到內核的緩衝區,系統並無將數據立刻寫到磁盤,因此就須要fsync操做讓系統將文件數據立刻寫進磁盤。若是數據和索引分開放,fsync日記後還要兩次fsync操做,對數據庫來講性能就不是很好。 數據庫
接下來打算去看看sqllite的pager和pcache源代碼,看看它是怎麼實現文件管理的。 promise
不知道那我的項目是否是失敗了。。。 性能