我有一些关于卡桑德拉备忘录的问题。我会感谢你的帮助。
关于备忘录的事实:
1)放置在RAM中;
( 2)每柱科结构;
3)单列家族可能存在多个备忘录;
问题:
( 1)何时为列族创建附加的memtable?需要什么条件?我假设在创建额外的提交日志文件之后会创建额外的备忘录。这是真的吗?
2)达到提交日志大小阈值后会发生什么?我假设这将开始将memtable放置到队列中;在队列填充之后,会开始将memtable刷新到sstable,然后删除旧的提交日志(在hdd上)和相应的memtable的(在ram中)。在这种情况下,记忆内存的某些部分将永远是空的,而提交日志总是会被填充到90%-100%吗?
3)达到模件大小阈值时会发生什么情况?就像以前的案子一样,会开始脸红吗?提交日志的某些部分也将永远是空的,可记忆内存将被填满高达90%-100%?
4)关于memtable_allocation_type:在官方资源中-- "offheap_buffers将单元格名称和值移动到DirectBuffer对象。这对读取的影响最小--这些值仍然是“活动的”Java缓冲区,但只有在存储大型字符串或blobs时才能显著减少堆。“DirectBuffer是什么意思?它被放置在java堆中?你能给网站提供相关信息的链接吗?
非常感谢!
发布于 2015-03-11 10:05:05
我建议你看https://academy.datastax.com/courses/learning-cassandra-write-path
https://stackoverflow.com/questions/28982925
复制相似问题