如何覆盖对cassandra群集或键空间的任何查询的默认大小?
我有一个带有3个节点的cassandra 2.0.5集群设置。多个服务使用具有单独键空间的同一集群。由于表中blob项的大小很大,遍历所有行的查询会导致OutOfMemory错误并使集群崩溃。这对我来说是不可接受的,因为不同的服务使用同一个集群,一个集群不应该影响其他集群 现在,有一种方法可以限制每次查询在内存中加载的行数,在大多数驱动程序支持cluster 2.0协议的查询中使用fetchSize参数 默认的_fetch-size值是5000,我想将这个值重写为更小的值,比如500,以避免OOM错误。我不能假设所有客户端在发出昂贵的查询时都会使用较小的fetchSize。有没有办法做到这一点?我在cassandra.yaml中找不到任何这样的配置如何覆盖对cassandra群集或键空间的任何查询的默认大小?,cassandra,cql,cassandra-2.0,Cassandra,Cql,Cassandra 2.0,我有一个带有3个节点的cassandra 2.0.5集群设置。多个服务使用具有单独键空间的同一集群。由于表中blob项的大小很大,遍历所有行的查询会导致OutOfMemory错误并使集群崩溃。这对我来说是不可接受的,因为不同的服务使用同一个集群,一个集群不应该影响其他集群 现在,有一种方法可以限制每次查询在内存中加载的行数,在大多数驱动程序支持cluster 2.0协议的查询中使用fetchSize参数 默认的_fetch-size值是5000,我想将这个值重写为更小的值,比如500,以避免OO
我是否可以按键空间级别设置此值,以便对特定键空间的所有查询都将具有较小的默认\u fetch\u大小?我知道的是,您只能设置特定语句的fetch大小<代码>语句。setFetchSize(100)代码>
Session session = Cluster.builder()
.addContactPoint("127.0.0.1")
.withQueryOptions(new QueryOptions().setFetchSize(100))
.build().connect();
Session sessionForKeyspace1 = Cluster.builder()
.addContactPoint("127.0.0.1")
.withQueryOptions(new QueryOptions().setFetchSize(100))
.build().connect("keyspace1");
Session sessionForKeyspace2 = Cluster.builder()
.addContactPoint("127.0.0.1")
.withQueryOptions(new QueryOptions().setFetchSize(200))
.build().connect("keyspace2");