GAE数据存储区争用避免?

Cri*_*low 0 google-app-engine query-optimization

通过GAE文件.

我有一个问题,我找不到明显的答案.鉴于实体组的交易限制为1 /秒,您如何扩展请求,例如10,000个用户同时想要访问特定用户的页面?

这不会以1 /秒的速度为您提供特定用户实体组的10,000次读取,从而导致灾难性的系统故障和用户不满意吗?

或者我感到困惑,只有写作才引起争议.

Pet*_*ego 5

AppEngine为事务使用乐观并发控制,这意味着它们不会锁定数据,但在检测到数据"脏"时会抛出异常.因此,第一个更改数据的事务是可以的,第二个获取异常并且必须重试.

鉴于此,我假设如果它们不是事务的一部分,即使某些其他事务正在进行中,读取也不会阻塞.

此外,为了使事务不再成为瓶颈,应该仔细组织实体组并使它们尽可能小,并且组织它们的方式应尽可能少地进行争用(并行请求).含义:

  1. 有小实体图 - 不要把很多实体放在普通父母之下.
  2. 尝试将用户实体作为根父级.用户通常不会创建并行交易(例如,同时进行多笔汇款等).