我正在研究如何复制DynamoDB支持的Titan 1.0.0数据库。 DynamoDB的正常跨区域复制可以通过DynamoDB Streams和Lambda完成,因此我想对启动时生成的Titan表执行相同的操作。
我所做的一步一步的过程:
当我尝试在欧盟地区启动新的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&amp; EU DynamoDB是彼此的精确复制品。
对于Titan执行跨区域复制的唯一方法似乎是服务代码级别,而不是来自dynamoDB Streams + Lambda的内置功能。</ p>
答案 0 :(得分:0)
edgestore
存储所有顶点,顶点属性和边以及它们的属性。 graphindex
是存储顶点和边属性的所有复合索引的地方。这些索引仅支持相等查找。 systemlog
是Titan的系统日志,并记录架构更改等内容。 txlog
是事务日志,在将工作提交到edgestore
之前,您可以选择让Titan写入。 titan_ids
存储在启动时分配给Titan服务器的每个UNIQUE_MACHINE_ID的id范围租约。最后,system_properties
存储图模式(属性类型,多重性,索引等)。