我一直在本地开发Cassandra一段时间,查询响应时间在50ms左右。
我从cassandra社区ami中build立了一个5节点的EC2集群,一切正常,opscenter已经启动并且没有问题。
当我从awsnetworking之外的机器执行任何查询时,无论是创build密钥空间,还是在空表上执行select *,响应时间都超过20秒。
当我从同一地区的一台机器查询时,响应时间在1到2秒之间,仍然很慢。
EC2机器都是m1.large eu-west-1a
你有什么想法,为什么会发生这种情况,或者我应该看看这个问题?
当前版本的DevCenter被devise为支持作为主要场景运行(较长的)CQL脚本(相对于一个接一个地执行查询的交互式控制台)。 DevCenter正在使用Cassandra的DataStax Java驱动程序作为底层连接器。
对于上述情况,为了确保没有“冲突”,为每个执行创build一个新的会话。 当一个会话被初始化时,驱动程序执行自动节点发现,创build连接池等。基本上它做了大量的准备工作。 根据客户端机器到EC2节点的延迟,集群的大小以及这些节点的configuration(请参阅连接要求),此初始化阶段可能非常昂贵。
正如你可以想象的那样,花在准备上的时间并不代表运行DDL脚本的大部分时间,以及体积大小的插入/更新。 但是对于一个交互式场景,它会导致次优的行为(你正在描述的那个)
DevCenter的下一个版本将解决交互式场景并对其进行优化,以便用户体验成为您期望的。 支持这种情况在我们的优先事项清单中是相当高的。
采取: https : //stackoverflow.com/questions/21219300/cassandra-native-transport-port-9042-slow-on-ec2-machine/21224540#21224540