让我通过GAE文档。GAE数据存储争用避免?
我有一个问题,我找不到明显的答案。假设实体组的交易限制为1 /秒,那么在10,000个用户都希望同时访问特定用户的页面的情况下,如何扩展请求呢?
这不会给你10000个读取特定用户的实体组,每秒钟1次,从而导致灾难性的系统故障和不满意的用户?
还是我困惑,只写写争议。
让我通过GAE文档。GAE数据存储争用避免?
我有一个问题,我找不到明显的答案。假设实体组的交易限制为1 /秒,那么在10,000个用户都希望同时访问特定用户的页面的情况下,如何扩展请求呢?
这不会给你10000个读取特定用户的实体组,每秒钟1次,从而导致灾难性的系统故障和不满意的用户?
还是我困惑,只写写争议。
AppEngine使用事务optimistic concurrency control,这意味着它们不会锁定数据,但会在检测到数据“脏”时抛出异常。因此,第一次更改数据的事务没问题,第二次获取异常并且必须重试。
鉴于此,我假设读取不会阻止,如果它们不是事务的一部分,即使其他事务正在进行。另外,为了减少事务的瓶颈,我们应该仔细组织实体组并尽可能小,并且让它们的组织方式尽量少争用(并行请求)。含义:
没错。我没在想。答案是memcache。至少部分。这是一个高效的数据模型/模式。
不,解决方案是没有问题 - 速率限制仅适用于写入,而不适用于读取。不过,使用memcache仍然是个好主意。 – 2012-01-05 22:49:08
太好了。谢谢@Google – 2012-01-06 11:49:49
您的假设是正确的 - 更新速率限制仅适用于更新,而不适用于读取。 – 2012-01-05 22:48:47
感谢彼得彻底的建议 – 2012-01-06 11:50:57