ワイド列インデックスを使用して、レコードをタイムライン形式で並べ替えています。
"TimelineIndex" //CF name
[CFName] //row key
[TimeUUID]:[CFRowKey] //column name/value
[TimeUUID]:[CFRowKey] //column name/value
[TimeUUID]:[CFRowKey] //column name/value
[TimeUUID]:[CFRowKey] //column name/value
TimelineIndex CFに、「01/01/201312:00:00」から「10/01/201312:00:00」までの範囲の1日あたり1列の10個のレコードがあり、実行するとします。次のget_slice()コマンド:
var predicate = new SlicePredicate(){ Slice_range = new SliceRange() {
{
Start = TimeGenerator.GetTimeUUID(new DateTime("06/01/2013 12:00:00"),
Finish = TimeGenerator.GetTimeUUID(new DateTime("11/01/2013 12:00:00"),
Count = 5,
Reversed = false
}};
var results = client.get_slice([CFName], parent, predicate, consitencylevel.one);
このクエリによって返される列は、常に一貫しているとは限りません。ほとんどの場合、「06/01/2013 12:00:00」という名前の列が返されますが、その列が結果から除外されることがよくあり(10回の実行に約1回)、4列しか返されません。 。
なぜここで一貫性のない結果が得られるのか、私は一生理解できません。これの理由を示唆するものはありますか?
そして、誰もが言う前に、Thriftを直接使用することはお勧めできません-これは純粋に概念実証の演習です!