【发布时间】:2015-03-24 03:11:31
【问题描述】:
所以我将一堆数据从 Riak 集群 A(1.4 集群)复制到 Riak 集群 B(2.0 集群),因为一堆烦人(与我的问题无关)的环境限制导致无法升级集群任何其他方式。
我正在使用 Java 1.4 Riak 客户端与两个集群通信。我从我的 1.4 集群中读取密钥,并且 - 保持完全相同的 IRiakObject - 将其写入 2.0 集群。
如果我在调试器中运行它并检查所说的 IRiakObject,我发现二级索引实际上填充在这个对象上。
但是当我实际运行它时,我发现 2.0 集群不接受二级索引 - 当我在 2.0 集群上为此键执行 GET 时,它们返回为空。
我做错了什么?
示例代码如下。请注意,这是从 Scala 组装的,但它使用的是 Java 库。注意 sourceRiakClient 和 destRiakClient 不对应同一个服务器。 (getBucket 和 cloneBucket 是我写的方法。)
val srcBucket : Bucket = getBucket(sourceRiakClient, bucketName)
val destBucket: Bucket = cloneBucket(destRiakClient, bucketName, srcBucket)
val value: IRiakObject = bucket.fetch(key).execute()
destBucket.store(key, value.getValue).withoutFetch().execute()
【问题讨论】: