Mic*_*cro 1 google-app-engine objectify google-cloud-datastore
如果我将实体保存到数据存储区,然后在通过它的密钥加载实体后,程序是否会等待并确保强一致性?
thing.setValue(newValue);
ofy().save().entity(thing).now();
Thing updatedThing = ofy().load().key(thingKey).now();
Run Code Online (Sandbox Code Playgroud)
是否updatedThing包含新值?
当我想要更新实体时,这是一种确保案例强一致性的好方法吗?
是的,密钥查找在数据存储区中始终保持一致.从Cloud Datastore中最终一致性开头的表中:
Run Code Online (Sandbox Code Playgroud)[Lookup by key][2] (get()) Strong consistency
但是有一个问题 - 如果你在同一个事务中同时进行写入和读取,则读取将不会看到写入的信息.从隔离和一致性:
此一致快照视图还扩展到在事务内写入后的读取.与大多数数据库不同,查询和获取Cloud Datastore事务不会在该事务中看到先前写入的结果.具体而言,如果在事务中修改或删除实体,则查询或获取将返回事务开始时实体的 原始版本,如果该实体不存在则返回任何内容.
| 归档时间: |
|
| 查看次数: |
53 次 |
| 最近记录: |