0

私は数週間 GAE (1.7.0) を試していますが、STRONG の一貫性に問題があります。

私はこの問題を調査してきましたが、まだ不明です。

GAE内でJDOを使用する場合、一貫性はEVENTUALになると断言できる人もいます。

強力な一貫性を実現する唯一の方法は、JDO を使用せず、Ancestry で GAE エンティティ クラスを使用することです。

この段階では、それが私のコードに問題があるのか​​ 、環境内でサポートされていないのかわかりません. いずれにせよ、私は壊れやすい小さな心を失っています:-)

私の jdoconfig.xml ファイル

<?xml version="1.0" encoding="utf-8"?>
<jdoconfig xmlns="http://java.sun.com/xml/ns/jdo/jdoconfig"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:noNamespaceSchemaLocation="http://java.sun.com/xml/ns/jdo/jdoconfig">

<persistence-manager-factory name="transactions-optional">
  <property name="javax.jdo.PersistenceManagerFactoryClass"
    value="org.datanucleus.store.appengine.jdo.DatastoreJDOPersistenceManagerFactory"/>
  <property name="javax.jdo.option.ConnectionURL" value="appengine"/>
  <property name="javax.jdo.option.NontransactionalRead" value="true"/>
  <property name="javax.jdo.option.NontransactionalWrite" value="true"/>
  <property name="javax.jdo.option.RetainValues" value="true"/>
  <property name="datanucleus.appengine.autoCreateDatastoreTxns" value="true"/>
  <property name="datanucleus.appengine.datastoreReadConsistency" value="STRONG" />
</persistence-manager-factory>

ありがとう

4

1 に答える 1

0

jdoconfig.xml ファイルで datastoreReadConsistency を STRONG に指定しても、一貫性が保証されるとは思えません。

Google App Engine の High Replication Datastore (HRD) が、App Engine アプリケーションのデフォルトのデータ リポジトリになりました。このモデルは、結果整合性に対してのみ機能することが保証されています。

あなたが言及したことは正しいものであり、「強力に一貫性のあるクエリ結果を得るには、結果を単一のエンティティ グループに制限する祖先クエリを使用する必要がある」と記載されているドキュメントにもあります。

注を参照してください: https://developers.google.com/appengine/docs/java/datastore/structuring_for_strong_consistency

于 2012-07-24T16:27:30.667 に答える