由DynamoDB支持的Titan的跨区域复制

时间:2017-03-01 01:02:25

标签: amazon-dynamodb database-replication titan

我正在研究如何复制DynamoDB支持的Titan 1.0.0数据库。 DynamoDB的正常跨区域复制可以通过DynamoDB Streams和Lambda完成,因此我想对启动时生成的Titan表执行相同的操作。

我所做的一步一步的过程:

  1. 在NA堆栈上启动Gremlin服务器
  2. 将从Titan及其数据生成的所有dynamoDB表复制到EU区域dynamoDB。
  3. 在将所有表/数据从NA复制到EU后,尝试在EU堆栈上启动Gremlin服务器。
  4. 当我尝试在欧盟地区启动新的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是彼此的精确复制品。

    问题

    1. Titan 1.0.0是否在其表中存储了区域特定信息?
    2. 还有其他人为Titan尝试跨区域复制吗?
    3. 对于Titan执行跨区域复制的唯一方法似乎是服务代码级别,而不是来自dynamoDB Streams + Lambda的内置功能。<​​/ p>

1 个答案:

答案 0 :(得分:0)

  1. edgestore存储所有顶点,顶点属性和边以及它们的属性。 graphindex是存储顶点和边属性的所有复合索引的地方。这些索引仅支持相等查找。 systemlog是Titan的系统日志,并记录架构更改等内容。 txlog是事务日志,在将工作提交到edgestore之前,您可以选择让Titan写入。 titan_ids存储在启动时分配给Titan服务器的每个UNIQUE_MACHINE_ID的id范围租约。最后,system_properties存储图模式(属性类型,多重性,索引等)。
  2. 我从未实际实施过Titan跨区域复制解决方案,即使我知道它是可能的。