Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cassandra/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Nosql 如何获取以MB为单位的Cassandra表/列族大小_Nosql_Cassandra_Cql - Fatal编程技术网

Nosql 如何获取以MB为单位的Cassandra表/列族大小

Nosql 如何获取以MB为单位的Cassandra表/列族大小,nosql,cassandra,cql,Nosql,Cassandra,Cql,我想设计我的集群,并想设置适当大小的键缓存和行缓存 取决于表/列族的大小。 与mysql类似,在Cassandra/CQL中是否有类似的内容 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"; 或者以任何其他方式分别查

我想设计我的集群,并想设置适当大小的键缓存和行缓存 取决于表/列族的大小。 与mysql类似,在Cassandra/CQL中是否有类似的内容

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";
或者以任何其他方式分别查找数据大小和索引大小

或者每个节点需要什么配置才能将我的表完全放入内存中
不考虑任何复制因素。

键缓存和行缓存的工作方式截然不同。了解计算尺寸时的差异很重要

键缓存是文件中用于行位置的偏移量缓存。它基本上是从(键、文件)到偏移量的映射。因此,扩展密钥缓存大小取决于行数,而不是总体数据大小。您可以从“nodetool cfstats”中的“键数”参数中找到行数。请注意,这是每个节点的值,不是总数,但这是您要确定的缓存大小。默认大小为min(堆的5%(MB),100MB),这对于大多数应用程序来说可能已经足够了。这里的一个微妙之处是,行可能存在于多个文件(SSTables)中,其数量取决于您的写入模式。然而,这种重复在nodetool的估计计数中(大约)得到了解释

行缓存缓存实际的行。要获得此项的大小估计值,可以使用“nodetool cfstats”中的“Space used”参数。但是,行缓存缓存反序列化的数据,并且只缓存最新的副本,因此大小可能会大不相同(更高或更低)

还有第三个可配置性较差的缓存—操作系统文件系统缓存。在大多数情况下,这实际上比行缓存更好。它避免了在内存中复制数据,因为在使用行缓存时,数据很可能也在文件系统缓存中。在我的实验中,从文件系统缓存中的SSTable读取数据只比行缓存慢30%(不久前,可能不再有效,但不太可能有显著不同)。行缓存的主要使用情形是当您有一个相对较小的CF时,您希望确保它被缓存。否则,使用文件系统缓存可能是最好的


总之,Cassandra默认的大密钥缓存和无行缓存对于大多数设置来说是最好的。只有当您知道您的访问模式无法使用默认值或存在性能问题时,才应该使用缓存。

让我告诉您我的应用程序设计。因此,基本上,我有一个web服务,对于每个应用程序执行500次左右的请求,行缓存可能是一个很好的选择,但是如果可以的话,您应该尝试减少每个请求的数据库查询数。Cassandra可能会在每个节点上每秒读取10万次,因此每个节点上每秒只有10个请求。您从何处获得每秒读取10万次的数据,这不取决于硬件吗?这是一个很好的信息顺便说一句,你可以分享一些链接,我可以看到这些性能相关的信息。查询/请求并不都是唯一的,所以我想,行缓存在我的情况下会很有帮助,我是cassandra的新手,我正在阅读有关它的所有内容。当然,性能取决于硬件。10k读/秒是一个粗略的经验法则。Netflix在此处的写入速度约为10000次:。读取速度稍慢,这里的一些基准测试显示了一些k/s: