Concurrency 如何处理并发性并在多人在线游戏(MMOG)中保持一致状态?

Concurrency 如何处理并发性并在多人在线游戏(MMOG)中保持一致状态?,concurrency,architecture,computer-science,software-design,distributed-system,Concurrency,Architecture,Computer Science,Software Design,Distributed System,比如说,你必须构建一个具有1M行x10M列(10000000000个单元格)的在线游戏,并且游戏的设计和构建必须支持两个团队,每个团队有100000名成员,每个人都在玩震荡游戏。一个团队自动分配Xs,另一个团队自动分配Os。两个队的成员可以同时进行所有比赛,但一个单元格只能标记一次。假设每个玩家都在自己的电脑上玩,电脑屏幕可以显示整个矩阵。每个玩家都可以在棋盘上选择任意一个随机单元格并进行标记。对于每个单元格选择,预期延迟非常低,在毫秒范围内 您将如何设计它来处理这种并发级别并保持游戏状态的一致

比如说,你必须构建一个具有1M行x10M列(10000000000个单元格)的在线游戏,并且游戏的设计和构建必须支持两个团队,每个团队有100000名成员,每个人都在玩震荡游戏。一个团队自动分配Xs,另一个团队自动分配Os。两个队的成员可以同时进行所有比赛,但一个单元格只能标记一次。假设每个玩家都在自己的电脑上玩,电脑屏幕可以显示整个矩阵。每个玩家都可以在棋盘上选择任意一个随机单元格并进行标记。对于每个单元格选择,预期延迟非常低,在毫秒范围内

您将如何设计它来处理这种并发级别并保持游戏状态的一致性?你会使用哪种机制来保持董事会的状态?你会用RAM来维护董事会的代表权吗?如果你必须选择一个数据库,你会使用哪一个?我主要关心的是如何处理并发性以保持游戏状态的一致性

考虑:

  • 由于负载分布、网络带宽、可伸缩性等性能方面的原因,单个服务器无法处理该负载,因此可能需要设计多服务器/分布式系统
  • 无需考虑用户注册、配置文件、身份验证等。对于本练习,让我们忽略这些方面