项目现在已经将fastdb使用上了,用起来还是很方便简单的,但是在使用的过程当中发现了很多问题:
比如:
1、数据库对于内存的消耗实在是太大,尤其是数据量到达千万级时尤为明显。
2、数据量上千万级别以后,性能远地于预期,可能是服务器内存不够的缘故。事务过大后,提交时间很长。
3、在并发访问模式上,同一进程的线程只能用同一模式,只read能够并发。不能够write并发(多个write线程)。进程间也是如此,也就是说多个write并发的话会出现相互阻塞,连write进程读操作都阻塞。所以适用于那些并发读操作,或者只要一个并发写操作的模式。(毕竟只有3万来行的程序,没有提供记录锁甚至页级锁是很正常的)
4、程序出现异常,可以通过清理信号量来进行恢复数据文件,但是有时候数据文件没法恢复造成数据损失。幸亏有在线备份机制和多机器备份功能。
。。。。。。
虽然如此,但是在适量的数据规模上,其性能是很彪悍的,加上在使用上特别方便。所以如果对于百万级数据规模的项目,需要简单并发和大量插入、查找、计算时,fastdb是个很不错的选择。毕竟代码很精炼,适当的时候自己可以根据需要进行修改源码。