Каковы преимущества использования состояния подкачки Cassandra «нового стиля» над функциями токенов «старого стиля»? - PullRequest
1 голос
/ 24 января 2020

Я понимаю, что есть два способа перебора большого набора результатов в Cassandra:

  1. Явный запрос с токенами, как обсуждалось в этой статье на " Отображение строк из неупорядоченного разделителя с функцией TOKEN". Похоже, что это был единственный способ сделать что-то до Cassandra 2.0.
  2. Использование " состояния пейджинга ".

Состояние пейджинга, как представляется, является рекомендуемым способ делать вещи в наши дни, но делать это старым token способом, все еще , работает .

Помимо того, что это благословенный способ делать вещи, что, конечно, является своего рода преимуществом Я хотел бы понять, каковы конкретные преимущества использования «нового» метода по сравнению со «старым»? Есть ли причина, по которой я должен не использовать token таким образом?

Ответы [ 2 ]

3 голосов
/ 24 января 2020

Использование пейджинга или токенов действительно зависит от ваших требований и технических возможностей. С моей точки зрения, использование подкачки хорошо для извлечения данных из большого раздела, или когда у вас не так много данных в таблице, так что вы можете использовать select * from table.

Но если у вас есть несколько серверов в кластере и большие объемы данных, использование token позволит вам читать данные с указанных c серверов (если вы правильно установили ключ маршрутизации) и параллельно (Spark Cassandra Connector использует token именно по этой причине) - это большое преимущество по сравнению с использованием подкачки, когда вы используете один узел-координатор, которому нужно go для других узлов для данных, которых у него нет. Но для некоторых людей это не очень легко реализовать, потому что вам нужно охватить крайние случаи, например, когда диапазон токенов не начинается точно с минимального значения. У меня есть пример в Java, как это сделать, если вам нужно.

0 голосов
/ 24 января 2020

Я согласен с Алексом в этом ответе, добавлю, что когда вы делаете это в старой школе (с токенами), у вас есть рука на токенах, это означает, что если вы имеете дело с большим количеством данных, то вы например, вы можете сохранить контрольные точки, чтобы вы могли хорошо выполнить перезапуск после сбоя, или просто приостановить свою работу, например, или также запустить многопоточные задания и разделить данные обучающего работника, как, например, работники Spark работают с данными, как токен. на основе тоже.

Драйвер автоматически обрабатывает пейджинг для вас, так что вам не нужно извлекать страницы со всеми преимуществами нативной вещи, обработанной для вас, но использование токена дает вам все руки на пути вы разбираетесь со всеми преимуществами, которые вы можете получить (нападая на определенный c диапазон, конкретный c сервер)

Надеюсь, это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...