memory-management - Cassandra是否使用Heap内存来存储blooms filter,100GB的数据需要占用多少空间?

标签 memory-management cassandra heap-memory bloom-filter

我了解到 cassandra 使用 blooms 过滤器来提高性能,并将这些过滤器数据存储到物理内存中。

1)cassandra 在哪里存储这个过滤器?(在堆内存中?)

2)这些过滤器消耗多少内存?

最佳答案

运行时,布隆过滤器必须保存在内存中,因为它们的全部目的是避免磁盘 IO。

但是,每个过滤器都与组成每个 SSTable 的其他文件一起保存到磁盘中 - 参见 http://wiki.apache.org/cassandra/ArchitectureSSTable

过滤器通常只占数据大小的一小部分,但实际比例似乎有很大差异。在我手边的测试节点上,我能找到的最大过滤器是 3.3MB,适用于 1GB 的数据。然而,对于另一个 1.3GB 的数据文件,过滤器只有 93KB...

如果您正在运行 Cassandra,您可以通过在数据目录中查找名为 *-Filter.db 的文件来自行检查过滤器的大小

关于memory-management - Cassandra是否使用Heap内存来存储blooms filter,100GB的数据需要占用多少空间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7570684/

相关文章:

c - XPM 图像内存分配

java - 无法创建子事件循环/无法打开新选择器/打开的文件太多

cassandra - CQL 复制到 Cassandra 表不起作用

c++ - 不删除动态分配的内存,并在程序终止后让操作系统释放它

java - 原始包装器内存空间开销与泛型,在 Java 中

c++ - 堆上分配的内存大小

c - 无效读取 - Valgrind 和 C

c++ - C++ 中的 DirectX 纹理清理

c++ - 如何将 time-uuid(存储在 boost uuid 中)转换为自纪元以来的时间戳/时间?

java - 如何使基于 Eclipse 的应用程序使用用户计算机上的所有内存?