我试图重现“#34;使用群集顺序"”部分中描述的概念。如下所述:http://www.datastax.com/documentation/cql/3.0/cql/cql_reference/create_table_r.html?scroll=reference_ds_v3f_vfk_xj__p_sks_qcr_2k
以下是直接从链接借来的例子:
CREATE TABLE timeseries (
event_type text,
insertion_time timestamp,
event blob,
PRIMARY KEY (event_type, insertion_time)
)
WITH CLUSTERING ORDER BY (insertion_time DESC);
示例插入声明:
INSERT INTO timeseries( event_type , insertion_time , event )
VALUES( 'newRow' , dateOf( now() ) , 'bla' );
获取最新行的示例查询:
SELECT * FROM timeseries WHERE event_type = 'newRow' LIMIT 1;
" LIMIT 1"由于CREATE TABLE语句中定义了WITH CLUSTERING ORDER BY子句,子句应该返回最近插入的行。然而情况并非如此,我还没有弄明白为什么。
我有一些非常基本的java代码,它从main方法向表中插入一行。我可以每隔5到10秒在eclipse中运行它,并且在几次启动后(每个都有一个插入),行不会按正确的顺序返回。
我现在没有让我的代码摆在我面前,所以请原谅我无法引用确切的表格结构和查询。
还有其他人观察过这种行为吗?
BTW - 使用Cassandra 2.0.9