cassandra 在压缩期间做了什么?
我知道 cassandra 合并了 sstables、行键、删除墓碑等等。
但我真的很想知道它如何执行压缩?
由于 sstables 是不可变的,它是否会将所有相关数据复制到新文件中?并且在写入这个新文件时,它会丢弃逻辑删除标记的数据。
我知道压缩的作用,但想知道它是如何实现的(T)
I know that cassandra merges sstables, row-keys, remove tombstone and all.
But i am really interested to know how it performs compaction ?
As sstables are immutable does it copy all the relevant data to new file? and while writing to this new file it discard the tombstone marked data.
i know what compaction does but want to know how it make this happen(T)
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我希望这个帖子能有所帮助,前提是您遵循其中的所有帖子和评论
http://comments .gmane.org/gmane.comp.db.cassandra.user/10577
据此
问候,
泰米尔语
I hope this thread helps, provided if you follow all the posts and comments in it
http://comments.gmane.org/gmane.comp.db.cassandra.user/10577
AFAIK
Regards,
Tamil
运行压缩有两种方法:
A-小调压缩。自动运行。
B- 主要压实。手动运行。
在这两种情况下,都会获取 x 个文件(每个 CF)并对其进行处理。在此过程中,将 ttl 过期的行标记为逻辑删除,并删除现有的逻辑删除。这样就生成了一个新文件。本次compaction中生成的tombostones将在下一次compaction中删除(如果度过宽限期,gc_grace)。
A和B之间的区别在于所获取的文件数量和最终文件的数量。
A 取几个相似的文件(相似大小)并生成一个新文件。
B 获取所有文件并仅生成一个大文件。
Are two ways to run compaction :
A- Minor compaction. Run automatically.
B- Major compaction. Run mannualy.
In both cases takes x files (per CF) and process them. In this process mark the rows with expired ttl as tombstones, and delete the existing tombstones. With this generates a new file. The tombostones generated in this compaction, will be delete in the next compaction (if spend the grace period, gc_grace).
The difference between A and B are the quantity of files taken and the final file.
A takes a few similar files (similar size) and generate a new file.
B takes ALL the files and genrate only one big file.