Cassandra如何为重叠范围检查提供优化的解决方案

时间:2014-08-01 05:49:22

标签: cql cassandra-2.0

在我的输入中,我有一个键,范围R1的下限,范围R1的上限。和一些数据。我必须在确保我的输入范围R1不应与cassandra中已存在的任何其他当前范围重叠之后插入此数据。

因此,在每次插入之前,我必须触发一个选择查询

   key | lowerbound | upperbound | data
------+------------+------------+------------------------------------------------------------------------
1024 | 1000 | 1100 | <blob>
1024 | 1500 | 1900 | <blob> 
1024 | 2000 | 2900 | <blob> 
1024 | 3000 | 3900 | <blob> 
1024 | 4000 | 4500 | <blob> 

Case1 Given Range R(S,E)=(1,999)
This is a positive case hence system should Insert the data   

Case2:  Given Range R(S,E)=(1001,1010)
this is a Negative case hence system should discard the data

我有一个范围查询和一个程序化检查解决方案的解决方案

请告诉我这种问题陈述是否在Cassandra中有解决方案,如果是,可以对其进行优化以获得更好的性能

1 个答案:

答案 0 :(得分:0)

您没有更好的解决方案来解决您的问题:这是唯一的方法。可能在未来轻量级交易也可能对这些情况有所帮助,但现在唯一的解决方案是在写之前阅读。还有一个考虑因素:确保避免在并发情况下双重插入(如果在您的应用程序中可能发生这种情况)。

干杯, 卡罗