照着这个要求http://www.cnblogs.com/promise6522/archive/2012/01/12/2321080.html写了一个简单的K/V数据库。不过不支持跨数据库操做。 html
一开始的时候没有考虑到错误恢复系统。后来想把恢复系统加进去发现了个问题。就是数据文件和索引文件不该该分开。应该将数据和索引放在同一个文件里。 sql
这是由于fsync操做。数据库使用write以后只是将数据转移到内核的缓冲区,系统并无将数据立刻写到磁盘,因此就须要fsync操做让系统将文件数据立刻写进磁盘。若是数据和索引分开放,fsync日记后还要两次fsync操做,对数据库来讲性能就不是很好。 数据库
接下来打算去看看sqllite的pager和pcache源代码,看看它是怎么实现文件管理的。 promise
不知道那我的项目是否是失败了。。。 性能