Cassandra User 问题汇总(1)------------repair
Cassandra Repair 问题
问1:
文档建议每周或者每月跑一次full repair.那么如果我是使用partition rangerepair,是否还有必要在cluster的每个节点上定期跑full repair ?
答1:
为什么要定期跑full repair
一般在gc_grace_seconds 间隔时间内跑repair
- 确保集群的数据保持一致。通常节点的write consistency都不会是ALL。所以集群内的数据可能不一致。
以及保证删除的数据不会恢复
- 对down掉的节点修复不一致
down的节点有可能过了hintedhandoff设置的时间,不会有hintedhandoff message写入。
数据也有很大的不一致性。
什么是partition range修复
在一个集群里,通常replicator>1.意味着同一份数据在集群内有很多份.如果在每个节点上run repair.
对于同一份数据就会重复repair replicator 次。加上 -pr 参数。就是对于同一range的数据只repair一次。
提高了repair效率。
综上所述,使用partition range repair,仍然有必要定期跑full repair.
问2:
repair 需不需要将一个down 掉的节点移除掉,如果不移除,repair是不是会继续修复其他records
答2:
Cassandra(cassandra 3.x) 目前的做法:
如果replicator =3,集群中共有6个节点,1个节点就有3/6的数据。1/6 的数据是它的token range负责的数据,2/6是他作为replicate的数据。当这个节点down了。有一半的数据replicate=2,这时候run repair 是不会修复这一半的数据的。
深入思考
在上面的回答中可以看出来,因为有多份数据的存在,所以一个node负责的数据占比是很大的。也就是现有的repair会导致很大
一部分数据不能够保持一致。
假如现在一个节点已经down掉10天了,有很多的数据都没有repaired。你也不确定节点什么时候能够修复,需要你做决定了
1.尽早移除节点,然后将节点添加回来
这样会因为token arrangement的重新分配,导致数据在节点间传递。
2.不移除节点,等节点修复好,正常工作
越来越多的数据没有repaired。而且down node时间会超过gc_grace_seconds,这样被删除的数据就会有被恢复的可能。
不去定期做repair,为什么会导致delete data 恢复呢
删除数据时,会发送一个tombstone标记,标记数据被删除,然后在compaciton阶段将数据删除。
如果在发送delete request到节点时,某个拥有该数据的节点down了,Cassandra会一直重新发送。
只要节点在gc_grace_seconds时间内恢复过来,他就会收到delete request。如果节点超过了这个时间。tombstone 就会被gc回收,节点就会丢失删除数据的delete request,这样这条被删除的数据会被恢复出来。
综上两点,我们需要更好的机制去处理repair
jira ticket
https://issues.apache.org/jira/browse/CASSANDRA-10446
Cassandra User 问题汇总(1)------------repair的更多相关文章
- Cassandra中的数据一致性
Cassandra中数据一致性指的是数据行在各个复制节点(replicas)上的更新和同步程度.通过提供tunable consistency,Cassandra扩展了eventual cons ...
- 容器化部署Cassandra高可用集群
前提: 三台装有docker的虚拟机,这里用VM1,VM2,VM3表达(当然生产环境要用三个独立物理机,否则无高可用可言),装docker可参见Ubuntu离线安装docker. 开始部署: 部署图 ...
- Cassandra1.2文档学习(15)—— 配置数据一致性
参考文档:http://www.datastax.com/documentation/cassandra/1.2/webhelp/index.html#cassandra/dml/dml_config ...
- (24)odoo中模型标识汇总
* 设置->技术->数据结构->模型 模型 模型描述 类型 瞬态模型account.account 科目 基础对象 ...
- 监控和管理Cassandra
了解Cassandra集群的性能特点有助于诊断和维护Cassandra.由于Cassandra使用JAVA开发的,所以它就提供了JMX环境下的一些管理工具来管理Cassandra,它们包括:Cassa ...
- Cassandra 备份 - 1 - 节点镜像恢复
之前比较关注如何使用Cassandra,但是真正想大规模使用前提还是需要搞清楚备份机制,确保数据安全. 本文主要内容来自文档 "Cassandra2.2"的翻译.最后部分为真实操作 ...
- Cassandra 的压缩策略STCS,LCS 和 DTCS
更新说明: 本文编写时最新的Cassandra版本为2.2,最新的稳定版本为2.1.8 2016年6月23日,增加一篇译文,当下最新版本为3.7 最新的Cassandra 2.1 或者更高的版本支持3 ...
- MongoDB资料汇总专题[转发]
转发下..这个哥收集的很全 MongoDB资料汇总专题 作者:nosqlfan http://blog.nosqlfan.com/html/3548.html 最后更新时间:2013-04-22 1. ...
- Cassandra监控 - OpsCenter手册
注:本文转自:http://eric100.blog.51cto.com/2535573/1717792 Opscenter用户手册 1. OpsCenter简介 DataStaxOpsC ...
随机推荐
- mongol学习
启动mongodb 服务器: 进入mongodb文件夹:cd ~/mongodb 第一次先要创建set与log文件夹. mkdir set; mkdir log; 并创建 ...
- [LeetCode] Next Closest Time 下一个最近时间点
Given a time represented in the format "HH:MM", form the next closest time by reusing the ...
- 极客验证官方demo构建使用及代码分析
#什么是极客验证? 官方定义:极验验证是一种在计算机领域用于区分自然人和机器人的,通过简单集成的方式,为开发者提供安全.便捷的云端验证服务. #使用命令从github上获取: git clone ht ...
- [Awson原创]修水渠(canal)
Description Awson是某国际学校信竞组的一只菜鸡.他们班主任F老师喜欢带他们去爬爬唷喽山.登顶后,Awson有了个奇怪的发现. 山腰上有N(1<=N<=100)个村庄,这些村 ...
- 李耀于NOIP2010集训出的题 Dvalue
此题模型比较明显,求无向图的一棵生成树,使得最大边减去最小边的值最小,这是最小生成树的一个变式 设计出此题的算法需要利用Kruskal贪心的性质,首先枚举一条最小边,接着求原图的一棵最小生成树,根据k ...
- POJ1743 Musical Theme(二分+后缀数组)
题目大概是给n个数组成的串,求是否有多个“相似”且不重叠的子串的长度大于等于5,两个子串相似当且仅当长度相等且每一位的数字差都相等. 这题是传说中楼教主男人八题之一,虽然已经是用后缀数组解决不可重叠最 ...
- 洛谷P1397 [NOI2013]矩阵游戏
矩阵快速幂+费马小定理 矩阵也是可以跑费马小定理的,但是要注意这个: (图是盗来的QAQ) 就是说如果矩阵a[i][i]都是相等的,那么就是mod p 而不是mod p-1了 #include< ...
- [BZOJ]2589: Spoj 10707 Count on a tree II
Time Limit: 20 Sec Memory Limit: 400 MB Description 给定一棵N个节点的树,每个点有一个权值,对于M个询问(u,v),你需要回答u xor last ...
- hdu 3397 线段树双标记
Sequence operation Time Limit: 10000/5000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Othe ...
- hihocoder #1073 : 光棍节
描述 尽管付出了种种努力,jzp还是得过光棍节. jzp非常不爽,但也无能为力,只能够哀叹起来他的命运.他想到了一位长者的人生经验:"人的一生,不光要靠自我奋斗,也要考虑历史的进程" ...