У меня есть 5-узловой кластер Cassandra, настроенный на EC2, все в одном регионе.
Если я подключаюсь через cqlsh (9160), запросы отвечают менее чем за секунду.
Когда я подключаюсь через Центр разработки или использую собственный драйвер Java, оба из которых используют порт 9042, запросы на ответ занимают более 20 секунд.
Они постоянно отвечают в одном и том же 21-секундном регионе. Никогда не быстро, а потом медленно.
Я установил несколько кластеров Cassandra на EC2 и видел это раньше, но не знаю, как решить эту проблему. В прошлый раз я отказался от кластера и построил новый, и время отклика на порту 9042 было нормальным.
Любая помощь в том, как отладить или исправить эту проблему, будет принята с благодарностью, спасибо.
Текущая версия DevCenter была разработана для поддержки в качестве основного сценария выполнения (длинных) сценариев CQL (по сравнению с интерактивной консолью с запросами, выполняемыми один за другим). DevCenter использует в качестве базового коннектора драйвер DataStax Java для Cassandra.
Для вышеупомянутого сценария, чтобы гарантировать отсутствие «конфликтов», для каждого выполнения создается новый сеанс. Когда сеанс инициализируется, драйвер выполняет автоматическое обнаружение узлов, создает пулы соединений и т. Д. В основном он выполняет большую подготовительную работу. В зависимости от задержки от вашего клиентского компьютера к узлам EC2, размера кластера, а также конфигурации этих узлов (см. Требования к подключению), этот этап инициализации может быть довольно дорогостоящим.
Как вы понимаете, время, потраченное на подготовку, не будет представлять большой процент выполнения сценария DDL и приличный размер вставок / обновлений. Но для интерактивного сценария это приведет к неоптимальному поведению (то, что вы описываете).
В следующей версии DevCenter будет рассмотрен интерактивный сценарий и оптимизирован для него, чтобы пользовательский опыт был таким, как вы ожидаете. И поддержка этого сценария занимает одно из первых мест в нашем списке приоритетов.