Как спроектировать данные, которые используют работу TWCS? - PullRequest
0 голосов
/ 24 августа 2018

Мой вопрос: при использовании TWCS использует ли Cassandra собственную метку времени (например, метку времени, когда была введена строка), или она может использовать метку времени в данных (например, timeuuid или поле метки времени в строка) при использовании временных окон?

Например, если у меня есть база данных Cassandra такая, что:

  • У меня есть данные с TTL 30 секунд
  • У меня есть временные окна длиной 1 секунда
  • Я пишу около 100 строк по 1 МБ в секунду
  • В моем кластере 3 узла
  • У меня есть ключ раздела, состоящий из (id, second_of_a_minute)

Насколько я понимаю, у меня должно быть около 29 SSTable, плюс SSTable в последнем временном окне, плюс любые SSTable, которые еще не были собраны сборщиком мусора, а также любые данные, которые есть в memtable в любое время через 30 секунд.

Теперь, если я запрашиваю данные, которые были сохранены между (сейчас - 20 секунд) и (сейчас - 10 секундами), мои данные будут храниться примерно в 10 SSTables. Проверяет ли Cassandra SSTable из каждого временного окна, чтобы проверить, хранятся ли данные в моем временном интервале, или он запрашивает только SSTable в тех временных окнах, которые соответствуют моему временному запросу?

...