我需要管理用户个人资料。用户配置文件的数量可能非常大(5亿个配置文件) 系统要求是更新这些配置文件(可能每天,每周或按请求更新),并始终在运行时读取它们。
哪个没有sql数据库最适合这个功能? mongodb,cassandra或hbase?
我现在正在使用mongodb(带有分片),我在其中看到的一个问题是它有一个全局锁定,每次我做很多写操作时,我的读取性能都会下降。 由于运行时组件总是应该读取一些配置文件,因此性能至关重要。
此外,我可能还应该使用一些缓存技术吗?
谢谢,
答案 0 :(得分:2)
1)性能调优是非sql数据库的关键部分。
2)我已经使用Cassandra超过一年了,因为写入是顺序的,它们比任何东西都更快。我已经看到了sstableloader和BulkOutPutFrormat
的更快性能3)但读取性能确实是一个问题,可以使用各种参数调整,也取决于您对数据建模的方式(数据库模式)。
4)但是如果你考虑Cassandra的工作方式设计它也会更快。但是,如果您使用上述任何批量加载策略,则在数据加载期间可能会遇到相对较多的读取延迟
5)由于用户数据对于可用性而言是一种至关重要的数据,因此您应该考虑更大的复制因子。