Titan 1.0の複製方法を調べています。DynamoDBによってバックアップされた0データベース。 DynamoDBの通常のクロスリージョンレプリケーションは、DynamoDB StreamsとLambdaを介して実行できます。そのため、起動時に生成されるTitanテーブルについても同様にしたいと思いました。
私がしたことのステップバイステップのプロセス:
- NAスタックでGremlinサーバを起動しました
- Titanとそのデータから生成されたすべてのdynamoDBテーブルをEU地域のdynamoDBに複製しました。
- すべてのテーブル/データがNAからEUに複製された後に、EUスタック上でGremlinサーバーを起動しようとしました。
私がEU地域で新しいGremlinサーバーを起動しようとしたとき、このエラーが発生しました:
java.lang.ArrayIndexOutOfBoundsException: Required size [1] exceeds actual remaining size [0]
at com.thinkaurelius.titan.diskstorage.util.StaticArrayBuffer.require(StaticArrayBuffer.java:80)
at com.thinkaurelius.titan.diskstorage.util.StaticArrayBuffer.getByte(StaticArrayBuffer.java:156)
at com.thinkaurelius.titan.diskstorage.util.ReadArrayBuffer.getByte(ReadArrayBuffer.java:67)
at com.thinkaurelius.titan.graphdb.database.idhandling.VariableLong.readUnsigned(VariableLong.java:34)
at com.thinkaurelius.titan.graphdb.database.idhandling.VariableLong.readPositive(VariableLong.java:80)
at com.thinkaurelius.titan.graphdb.database.serialize.StandardSerializer.readClassAndObject(StandardSerializer.java:265)
at com.thinkaurelius.titan.diskstorage.configuration.backend.KCVSConfiguration.staticBuffer2Object(KCVSConfiguration.java:250)
at com.thinkaurelius.titan.diskstorage.configuration.backend.KCVSConfiguration.get(KCVSConfiguration.java:102)
at com.thinkaurelius.titan.diskstorage.configuration.BasicConfiguration.isFrozen(BasicConfiguration.java:93)
at com.thinkaurelius.titan.graphdb.configuration.GraphDatabaseConfiguration.<init>(GraphDatabaseConfiguration.java:1338)
その点に注意して、複製部分は問題ありません。 NA&EU DynamoDBはお互いの正確なレプリカです。
質問
- Titan 1.0.0は地域固有の情報をそのテーブルに格納しますか?
- Titanでクロスリージョンレプリケーションを試した人はいますか?
Titanのクロスリージョンレプリケーションを実行する唯一の方法は、dynamoDB Streams + Lambdaの組み込み機能からではなく、サービスコードレベルで行うことのようです。
回答:
回答№1は0edgestore
すべての頂点、頂点プロパティ、辺とそれらのプロパティを格納します。graphindex
頂点プロパティとエッジプロパティのすべての複合インデックスが格納される場所です。これらのインデックスは等価検索のみをサポートします。systemlog
Titanのシステムログで、スキーマの変更などを記録します。txlog
に作業をコミットする前に、Titanに書き込みを許可するトランザクションログです。edgestore
.titan_ids
Titanサーバーの起動時に割り当てられた各UNIQUE_MACHINE_IDのID範囲リースを保存します。最後に、system_properties
グラフスキーマ(プロパティの種類、多重度、インデックスなど)のようなものを格納します。- 私は、Titan Cross-Region複製ソリューションを実際には実装したことがありません。