App Engine模拟数据存储 - 奇怪的观察

时间:2013-01-27 23:01:45

标签: google-cloud-datastore

我正在我的机器上试验'datastore'。使用此代码。

            Key parentKey = KeyFactory.createKey("parent", "parentId");
            try {
    //          Entity parent = new Entity("parent", "parentId");
    //          parent.setUnindexedProperty("property1", "value1");
    //          ds.put(parent);
                Entity savedParent = ds.get(parentKey);
    //          savedParent.setUnindexedProperty("property1", "value3");
    //          ds.put(savedParent);
    //          Entity child = new Entity("child", "childId", savedParent.getKey());
                Entity child = ds.get(KeyFactory.createKey(savedParent.getKey(), "child", "childId"));
                child.setUnindexedProperty("property1", "val2");
                ds.put(child);
    //          logger.info("Saved child.");
            } catch (EntityNotFoundException e) {
                throw new RuntimeException(e);
            }

首先我保存了父实体并将其上的属性设置为“value2”然后我添加了一个属性为val1的子实体。然后我将父属性更新为value3。然后我将孩子的财产更新为val2。 然后我在管理控制台中发现,父级的属性值已返回value2。我再次重复它,结果相同。我错过了什么吗?或者这是某种错误?

1 个答案:

答案 0 :(得分:0)

我想,这是最终一致性的表现,对吧?我在一个新的JVM实例中运行每一步,认为在我关闭它时必须存储值: - 。矛盾的常识,但在模仿最终的一致性方面是正确的....