我有3个类似的cassandra表。表A1,A2,A3。 所有列都具有相同列,但不同分区键。 使用Mapper Library(cassandra-driver-mapping-2.1.8.jar)通过顺序插入将数据同时插入所有三个表中 但是,几列中存在不一致。 例如。有时A1.colX和A2.colX相同,但A3.colX具有旧值(未更新),并且这三个表中的所有列都具有完全相同的值。 另一次A1.colY和A3.colY可能具有相同的值,但A2.colY具有旧值(未更新),并且这三个表中的所有列具有完全相同的值。 我正在使用Mapper Manager将输入数据保存在Cassandra中。
映射器管理器是否存在已知问题或我的方法出错?
示例代码:
public void insertInTables(String inputString){
.
.
ClassNameA1 classObjectA1=new Gson().fromJson(inputString, ClassNameA1.class);
ClassNameA2 classObjectA2=new Gson().fromJson(inputString, ClassNameA2.class);
ClassNameA3 classObjectA3=new Gson().fromJson(inputString, ClassNameA3.class);
MappingManager manager = new MappingManager(session);
Mapper<ClassNameA1> mapperA1 = manager.mapper(ClassNameA1.class);
Mapper<ClassNameA2> mapperA2 = manager.mapper(ClassNameA2.class);
Mapper<ClassNameA3> mapperA3 = manager.mapper(ClassNameA3.class);
mapperA1.save(classObjectA1);
mapperA2.save(classObjectA2);
mapperA3.save(classObjectA3);
.
.
}
答案 0 :(得分:0)
可能会发生这种情况,因为Cassandra是最终的一致性商店,而不是强大的商店。我在我的经历中目睹的类似行为的典型原因是:
上述大多数问题都可以通过nodetool repair
进行修复。您可以进行全面修复,看看是否有帮助。