非阻塞“数据库”的好选择是什么?(使用TCP套接字服务器)
简单来说,我正在创建一个套接字服务器,这样我就可以为我的Flash游戏添加多人游戏的支持(客户端使用的是Actionscript 3.0的二进制套接字)。
我选择使用Python,因为我是这个游戏和服务器的唯一开发者,而且这是我第一次做非阻塞的套接字服务器。我原本打算用Twisted,但最后决定使用Python的asyncore(异步套接字处理器)。
如果我没记错的话,连接到传统数据库是一个阻塞的过程。由于我想让这个服务器是非阻塞的,我想知道有什么解决方案可以用来保存永久的游戏相关数据?
2 个回答
1
在传统数据库的说法中,"阻塞"其实就是"锁定",如果你想让数据保持一致性,这种情况是不可避免的。
这里的一致性是指“两个分数不同的玩家不可能同时被宣布为赢家”。
把锁定的情况减少到最少,正是数据库设计中的一门艺术,可能你只有在经历了很多次失败之后才能掌握这门技巧。