Кассандра, Оптимизация в пункте - PullRequest
0 голосов
/ 03 октября 2018

Я думал о способе оптимизации встроенного предложения, например, идентификатора в (1,2,3, ....)?

  • Получить хеш-функцию Murmur3Partitioner
  • сгруппировать предложение по значениям, которые приводят к тому же хешу, как "id in (x1, x3, ...)", где x1 и x3 имеют одинаковый хеш.
  • , передавая этот запрос драйверу,драйвер должен быть в состоянии перейти на узел владельца раздела?

Итак, как мне заполучить функцию хэширования Cassandra Murmur3Partitioner, чтобы я мог вычислить хэш в своем коде?

Эта теория будет работать с Кассандрой?

1 Ответ

0 голосов
/ 03 октября 2018

Драйверы уже делают это, если используют политику балансировки нагрузки с поддержкой токенов .Стоит отметить, что маловероятно, что у вас будет несколько идентификаторов с одним и тем же токеном, хотя они могут быть одинаковыми координаторами.

В общем, плохая идея пытаться группировать запросы, подобные этой.Если у вас нет необычного сценария, лучше просто использовать executeAsync для каждого id и выполнить все из них.Это лучше распределит и распараллелит координационную нагрузку по кластеру и потребует меньше настраиваемой работы.Я настоятельно рекомендую не преждевременно оптимизировать, а сосредоточиться на правильной модели данных.Если вам нужно выполнить работу в пакетном режиме, воспользуйтесь искровым загрузчиком / считывателем или посмотрите на хороший пример того, как это сделать эффективно.

...