Q1. У меня есть кластер crate версии 1.0.2, и я использую более старую версию драйвера JDBC crate для подключения к нему из программы Java. Я указал все узлы ящика в URL-адресе драйвера JDBC, разделив их запятой. Когда я запускаю запросы из моей java-программы для ящика, я вижу, что использование памяти и ЦП увеличивается только для 1 узла ящика, и этот узел является 1-м в списке, разделенном запятыми, указанном в URL-адресе соединения. Через некоторое время этому узлу не хватает памяти. Может кто-нибудь объяснить, почему это происходит? Я помню, как читал документацию по драйверу корзины, в которой указывалось, что нагрузка драйвера корзины балансирует запросы по всем указанным клиентским узлам. Все мои узлы поддерживают клиент.
Вопрос 2. Я провел тот же эксперимент с Crate 2.1.6 и драйвером JDBC 2.1.7 и вижу такое же поведение. Я убедился, что все запросы обрабатываются данными, распределенными по нескольким узлам. В последней документации я вижу добавленное новое свойство, а именно loadBalanceHosts https://crate.io/docs/clients/jdbc/en/latest/connecting.html#jdbc-url-format
Сейчас у меня нет этого свойства. Присутствовало ли это свойство и требовалось ли оно в драйвере JDBC версии 2.1.7? Почему разработчик должен беспокоиться о балансировке нагрузки, когда кластер ящиков и драйверы JDBC должны обеспечивать это?
К вашему сведению, большинство моих запросов содержат предложение group by, и у меня есть несколько миллиардов записей для экспериментов. Настроенная память составляет 30 ГБ на узел.