对于大多数互联网应用,数据的存储和访问都是不可或缺的一环。从早前的文件存储,到目前广泛使用的数据库,再到曙光初现的NoSQL,归根结底都是提供了数据的存储和访问功能。但是,面对不同的应用,对于数据的安全级别,存储和访问的效率,一致性的支持,扩展的能力和使用的成本,要求都是不一样的。
对于所有的软件开发人员,都希望能用最低的成本,实现最高的数据安全级别,最快的访问效率和始终的数据一致性。在目前看来,这就是妄想。于是,我们的需求就成为只要能使用最低的成本,能满足业务增长的需要,和良好的用户体验就行。
于是,数据的安全,效率,一致性和扩展性,就必须折中。权衡,如何权衡,就成为了软件架构师的艺术。
当前MMO网络游戏中,对于数据的存储和访问的性能要求其实是很低的。一个游戏(甭管什么游戏)的区,基本上,一台数据库就可以满足需求;
对于安全性,有钱的公司,买UPS应对断电,使用备份应对磁盘损坏。没钱的公司,将服务器放在北京的机房托管(北京的机房,断电的可能性真的非常低,价格要高一些),也不做备份(磁盘损坏的概率太小了,就像坐飞机不买保险大多数情况下一点问题也没有)。
一台数据库,大多数情况下,也就不存在数据一致性的问题。
大多数网络游戏,一般也就运营那么个3-5年就寿终正寝,一台数据库,从头用到尾,一点问题也没有&