0

我正试图围绕 GAE 数据存储中的可能性一致性和每秒写入 1 原则。我有一个场景和两个问题:

#python like pseudo-code
class User:
   user_id = StringProperty
   last_update_time = DateTimeProperty

class Comment:    
   user_id = StringProperty
   comment = StringProperty

...
def AddCommentAndReturnAllComments(user_id):
    user = db.GqlQuery("SELECT * FROM User where user_id = :1", user_id)

    user.last_update_time = datetime.now()
    user.put()

    comment = Comment(parent=User(user_id))
    comment.put()

    comments = db.GqlQuery("SELECT * FROM Comment where user_id = :1", user_id)   
    return comments

问题:

  1. 我会在这里得到一个例外,因为我在一秒钟内对同一个 EntityGroup 进行了两次写入(user.put 和 comment.put)?有没有简单的方法解决它?
  2. 如果我删除 parent=user(user_id),这两个实体将不再属于同一个 EntityGroup。这是否意味着从函数返回的评论列表可能不包含最后添加的评论?
  3. 我做错了什么吗?

我知道我弄错了实体引用部分。这个问题无关紧要(或者是吗?)

4

1 回答 1

1
  1. 这似乎是一个软限制。在实践中,我看到最多允许 5 次写入/秒。

  2. 是的,现在也发生了,因为您没有使用祖先查询

  3. 什么都没有,除了第 2 点中提到的。

于 2013-05-04T16:23:24.377 回答