我想设计我的集群,并且希望根据表/列家族的大小设置适当的key_cache和row_cache大小 。 与mysql类似,我们在Cassandra/CQL中有类似的东西吗?如何以MB为单位获取Cassandra Table/ColumnFamily大小
SELECT table_name AS "Tables",
round(((data_length + index_length)/1024/1024), 2) "Size in MB"
FROM information_schema.TABLES
WHERE table_schema = "$DB_NAME";
或者任何其他方式分别查找数据大小和索引的大小。
或者每个节点需要什么配置才能将我的表完全放入内存 而不考虑任何复制因素。
让我告诉你我的应用程序设计。所以基本上,我有一个Web服务,并且每个请求应用程序执行大约500 <#ofDatabaseQueries <1000。总行数约为10亿,随着时间的推移它会不断增加,每行不超过100库仑(按照表格),并且没有列有大量数据。显然,我将使用云并在不同节点之间分发数据,但出于测试目的,我正在使用单个节点。我认为最好的方法是缓存所有行,以便每个请求的数据库查询数可以正确处理。 – piyush 2013-04-11 12:53:21
行缓存可能是一个很好的选择,但如果可以的话,您应该尝试减少每个请求的数据库查询数。 Cassandra可能每个节点每秒处理10k次读取,因此每个节点每秒只有10个请求。 – Richard 2013-04-11 12:59:11
从哪里得到这个数字10k读取/秒/节点,是不是取决于硬件?这是一个很好的信息顺便说一句,你可以分享一些链接,我可以看到这些性能相关的信息。 查询/请求并不都是唯一的,所以我猜,行缓存会对我有帮助,我是cassandra的新手,我正在阅读关于它的所有内容。 – piyush 2013-04-11 13:20:52