Некоторое время я занимался локальной разработкой с помощью Cassandra, и время ответа на запросы составляет около 50 мс.
Я установил 5-узловой кластер EC2 от сообщества ami cassandra, все прошло нормально, opscenter запущен и работает, проблем нет.
Когда я выполняю любой запрос с машины за пределами сети aws, будь то создание пространства ключей или выбор * в пустой таблице, время ответа превышает 20 секунд.
Когда я запрашиваю с машины в том же регионе, время ответа составляет от 1 до 2 секунд, но все равно очень медленно.
Все машины EC2 - это m1.large eu-west-1a
У вас есть идеи, почему это происходит, или где мне искать проблему?
Текущая версия DevCenter была разработана для поддержки в качестве основного сценария выполнения (длинных) сценариев CQL (по сравнению с интерактивной консолью с запросами, выполняемыми один за другим). DevCenter использует в качестве базового коннектора драйвер DataStax Java для Cassandra.
Для вышеупомянутого сценария, чтобы гарантировать отсутствие «конфликтов», для каждого выполнения создается новый сеанс. Когда сеанс инициализируется, драйвер выполняет автоматическое обнаружение узлов, создает пулы соединений и т. Д. В основном он выполняет большую подготовительную работу. В зависимости от задержки от вашего клиентского компьютера к узлам EC2, размера кластера, а также конфигурации этих узлов (см. Требования к подключению), этот этап инициализации может быть довольно дорогостоящим.
Как вы понимаете, время, потраченное на подготовку, не будет представлять большой процент выполнения сценария DDL и приличный размер вставок / обновлений. Но для интерактивного сценария это приведет к неоптимальному поведению (то, что вы описываете).
В следующей версии DevCenter будет рассмотрен интерактивный сценарий и оптимизирован для него, чтобы пользовательский опыт был таким, как вы ожидаете. И поддержка этого сценария занимает одно из первых мест в нашем списке приоритетов.