Я использую драйвер java stax данных для запроса scylladb, я вижу эту ошибку при чтении данных из scylla RequestHandler: ip: 9042 ответил с ошибкой сервера (размер декартового продукта кластеризации 600 больше максимального 100), соединение не работает.
Scylladb: размер ключевого декартова произведения кластеризации 600 больше максимального 100
Ответы (2)
Эта ошибка возвращается, чтобы предотвратить создание слишком больших наборов ограничений, которые могут создать нагрузку на ваш сервер. Если вы осведомлены о рисках и знаете разумную верхнюю границу количества ограничений для ваших запросов, вы можете вручную изменить максимум в scylla.yaml, например max_clustering_key_restrictions_per_query: 650
. Однако обратите внимание, что в описании этой опции есть предупреждение, и ее следует принять:
Maximum number of distinct clustering key restrictions per query.
This limit places a bound on the size of IN tuples, especially when multiple
clustering key columns have IN restrictions. Increasing this value can result
in server instability.
В частности, установка этого флага выше пары сотен рискованна - 600 должно быть нормальным, но на этом этапе вы также можете подумать о перефразировании вашего запроса, чтобы у них было меньше значений в их IN
ограничениях - возможно разбиение некоторых запросов на несколько более мелких?
Источник из трекера Scylla: https://github.com/scylladb/scylla/pull/4797
max_partition_key_restrictions_per_query
() Можно настроить 2 параметра: github.com/scylladb/scylla/pull/4797/
- person Ivan Prisyazhnyy; 28.01.2020
это зависит от формы данных и параллелизма. Если ваши строки большие и параллелизм высок, сцилла легко может исчерпать память. Если ваши строки маленькие и / или параллелизм низкий, все будет в порядке. Увеличивать значение параметра - это нормально, просто имейте в виду, что вы находитесь на опасной почве, и вам следует попытаться уменьшить декартовы размеры продукта в запросе IN.
максимальное значение может быть установлено как 1000000000.