0

アイテムの最終更新時刻でソートされたアイテムのリストをモデル化する必要があります。

たとえば、ユーザー タスク リストを考えてみましょう。各ユーザーにはタスクのリストがあり、各タスクには期日があります。タスクはそのリストに追加できますが、リストに追加した後にタスクの期日を変更することもできます。つまり、ユーザー A のタスク リストの 3 番目にあるタスクは、タスクの期日が更新された結果、1 番目に移動する必要がある場合があります。

私が今持っているのは、次のCFです。

Create Table UserTasks (
    user_id uuid,
    task_id timeuuid,
    new_due_date timestamp
    PRIMARY KEY (user_id, task_id));

キーの一部にしない限り、「new_due_date」でソートできないことを理解しています。ただし、キーの一部である場合は、削除して再作成しない限り更新できません。そうする際の私の懸念は、タスクが 100.000 ユーザーのタスク リストに存在する場合、100.000 の選択/削除/挿入シーケンスを作成する必要があることです。new_due_date でソートできれば、100.000 件の更新になります。

どんな提案でも大歓迎です。

4

1 に答える 1

0

まあ、1 つのオプションは、cassandra で PlayOrm を使用する場合、user_id でパーティション分割し、ユーザーの UserTasks をクエリできます。time > 0 かつ time < MAX の場所をクエリすると、カーソルが返され (一度に batchSize 行を読み取る)、カーソルを逆の順序または単純な順序でトラバースできます。このソリューションは、ユーザー数に応じて無限にスケーリングしますが、ユーザーごとに数百万のタスクにしかスケーリングできませんが、ドメインは十分にわかりません.

ディーン

于 2013-01-24T15:22:21.477 に答える