分片和管理非常繁忙的变量

时间:2010-07-27 11:55:45

标签: google-app-engine google-cloud-datastore

我有一个变量pool,由所有客户共享,存储游戏中所有剩余的敌人。当客户开始游戏时,他会从pool获得一些敌人。当他完成时,他没有杀死的敌人被放回pool。游戏还会检查所有敌人是否都被杀死(即pool为空)。

实施pool的最佳方式是什么?我担心数据存储区实体每秒有5次更新限制。

1 个答案:

答案 0 :(得分:2)

预计游戏开始/结束的频率如何?如果答案肯定小于每秒5,那么只需使用单个实体来表示pool,并使用事务以游戏开始和结束的方式原子获取和更新它。

如果您真的希望有这么多客户共享一个pool,那么它将以每秒5次的持续速率进行更新,那么请考虑将pool分成多个部分。当客户端启动游戏时,只从其中一个分片中删除实体。要测试分片pool是否为空,只需检索所有分片并查看它们是否全为空。 (修改分片时,您仍需要使用事务。)