0

我一直在探索将 Cassandra 用于我们的嵌入式平台,并且根本不希望它使用磁盘。在我的研究中,我找不到任何配置选项来关闭磁盘使用。我理解在磁盘上没有提交日志的缺点,因此没有写入持久性。

简而言之,让 Cassandra 完全运行内存数据库,并有足够的 RAM 专用于它,以容纳它将在本地保存的所有数据(基于使用的分区器)以及更多用于缓存数据以及 Cassandra 使用的其他元数据。假设如果本地缓存超出可用 RAM,它将使用某种 LIFO 语义来清除从其他节点缓存的旧数据。

有什么选项/库可以让 Cassandra 在没有磁盘的情况下完全在内存中运行?

谢谢。RG

4

2 回答 2

1

一种选择是挂载由 RAM 支持的文件系统。您可以使用tmpfsRAM 磁盘。它们之间的一个区别是tmpfs已经是一个文件系统,但是如果您使用原始 RAM 磁盘,您只会获得一个块设备,因此您必须使用文件系统单独对其进行格式化。

于 2013-08-02T02:21:00.397 回答
0

如果您使用 mariadb,您可以将 Cassandra 换成另一个数据后端。我怀疑是否存在特定的“已解雇”选项,因为这不是其预期用途。

我不会使用 tmpfs 或类似的,因为您的 RAM 需求基本上会翻倍。您将拥有数据库存储的内存缓存和“磁盘”上的副本。使用专为仅内存操作而设计的数据库后端是您最好的选择。如果出于某种原因必须使用 tmpfs,请将缓存降至最低,以避免存储两个副本。tmpfs 是缓冲区缓存,因此存储它不会比从 Linux 磁盘缓存中提取它慢,并且旨在避免撞到旋转磁盘的上层缓存层正在浪费内存。

于 2015-07-17T05:01:00.617 回答