cassandra 2.1.2版本的一个bug

最近从cassandra 2.0.8升级到2.1.2,在考察2.1.2的时候,发现了一个2.1.2版的一个bug,一直怀疑是java驱动的原因,后来发现只要满足特定条件,就可以重现,用cqlsh客户端也可以。 bug重现步骤: 首先创建keyspace space1和space2. 在space1里创建一个表table3 在space2里创建两个表table1,table2 在table3里插入一条记录 删除表table1 删除table3插入的那条记录 删除表table2 再根据主键,在tbale3里查询,会发现之前那条记录并未删除。 CREATE KEYSPACE space1 WITH replication = {'class': 'SimpleStrategy', 'replication_factor': 3}; CREATE TABLE space1.table3(a int, b int, c text,primary key(a,b)); CREATE KEYSPACE space2 WITH replication = {'class': 'SimpleStrategy', 'replication_factor': 3}; CREATE TABLE space2.table1(a int, b int, c int, primary key(a,b)); CREATE TABLE space2.table2(a int, b int, c int, primary key(a,b)); INSERT INTO space1.table3(a,b,c) VALUES(1,1,'1'); drop table space2.table1; DELETE FROM space1.table3 where a=1 and b=1; drop table space2.table2; select * from space1.table3 where a=1 and b=1; you will find that the row (a=1 and b=1) in space1.table3 is not deleted ...

2015年1月4日 · 1 分钟

slf4j、logback的使用

使用slf4j配合log4j打日志已经使用很长时间了,已经习惯了log4j的properties文件配置了。 具体参考:《slf4j、log4j 的使用》 虽然从log4j换到logback也不费劲,性能上提升在常规业务上也不是多么明显,但是作为处女座的我,还是想从log4j换到logback来。logback log4j 和slf4j都是同一作者。根据作者宣称的: slf4j的出现是为了替代commons-logging logback的出现是为了替代log4j,用作者的话,叫:“picking up where log4j leaves off" logback比log4j会有更高的性能,和更多的功能支持。 如果你之前是使用slf4j+log4j的组合打日志的话,你只要换个jar包和配置文件就可以了。 之前需要的jar包是: <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>1.7.7</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> <version>1.7.7</version> </dependency> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.16</version> </dependency> 现在需要的jar包是: <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>1.7.7</version> </dependency> <dependency> <groupId>ch.qos.logback</groupId> <artifactId>logback-classic</artifactId> <version>1.1.2</version> </dependency> logback-classic的pom会自动引入logback-core包 一般都是sl4j和log4j一起使用的,很少有人直接用log4j的logger打日志。如果你已经那样做了,也不必要修改代码。 只要引入log4j-over-slf4j的桥接包,删掉log4j包,以前log4j打印的日志,会自动桥接到slf4j进而使用logback的logger打印日志。 <dependency> <groupId>org.slf4j</groupId> <artifactId>log4j-over-slf4j</artifactId> <version>1.7.7</version> </dependency> 配置文件使用XML格式配置:logback.xml 基本的示例: <!--60秒检查一次配置文件是否有修改,即时生效--> <configuration scan="true" scanPeriod="60 seconds" debug="false"> <property name="ROOT_LOG_PATH" value="/disk/log" /> <!--设置变量--> <appender name="STDOUT"> <!-- 打印到控制台的appender --> <encoder> <pattern>%d{HH:mm:ss.SSS}%-5level %logger{36}-%msg%n</pattern> </encoder> </appender> <appender name="FILE"> <!--打印到文件,20M滚一个,最多20个--> <file>test.log</file> <rollingPolicy> <fileNamePattern>${ROOT_LOG_PATH}/my.log.%i</fileNamePattern> <maxIndex>20</maxIndex> </rollingPolicy> <triggeringPolicy> <maxFileSize>20MB</maxFileSize> </triggeringPolicy> <encoder> <pattern>%d{HH:mm:ss.SSS}%-5level %logger{36}-%msg%n</pattern> </encoder> </appender> <root level="DEBUG"> <!--根日志--> <appender-ref ref="FILE" /> </root> <!--设置包com.zhaoyanblog的日志级别, 设置是否也打印一份到它的父logger(这里是root)设置的appender里--> <logger name="com.zhaoyanblog" level="INFO" additivity="false"> <appender-ref ref="STDOUT"/> </logger> <!--设置包com.zhaoyanblog.test的日志级别--> <logger name="com.zhaoyanblog.test" level="ERROR" /> </configuration> 以上是对logback的简单配置,平常足够使用了,如果你已经习惯了log4j的properties形式的配置文件,想使用更高效的logback,又不想去学习logback的配置形式。logback为你这种懒人提供了一个log4j.properties在线自动转logback.xml的页面: http://logback.qos.ch/translator/

2015年1月3日 · 1 分钟

CES2015国际消费类电子产品展览会上荣耀可能会发布X2?

最近有媒体称,华为内部传出消息,将在CES2015国际消费类电子产品展览会发布X系列新机型X2 并透露了详细的主体参数: 分辨率 1920×1200 7英寸 麒麟925超八核处理器 3GB内存,5000mAh电池 甚至售价都给出了1999元 一切源于一个叫@包子玩机 的微博用户的爆料,他甚至给出了荣耀X2的金属骨架图: 荣耀X1是华为在巴塞罗那举办的2014 MWC大会上发布的一款7寸平板手机跨界大作,荣耀X1将面向全球市场。发布时间是去年2月,从发布时间,发布形式,面向的市场看,以及爆出的手机外形尺寸上看,这款即将在CES2015上展示的手机很有可能是荣耀X1的后续之作-荣耀X2. 荣耀X系列,属于大屏平板手机,适合喜欢看电影的用户使用,如果你喜欢用手机看电影,这款手机你应该有所期待了。。。

2014年12月31日 · 1 分钟

荣耀6 Plus值得买的三大理由

12月16日晚,华为荣耀终于发布了2014年最最旗舰机型-荣耀6 Plus。那么荣耀6 Plus有那些优势值得你去购买呢。本站长总结如下: 1、基本配置顶配 CPU 麒麟925 8核 华为最快的CPU 内存3G 5.5寸大屏,1080P 3600mA电池 2、珠圆玉润的外表 荣耀6的边框是塑料模拟金属,一直被用户诟病,这次荣耀6 Plus进行了一次完美升级。绝对金属边框,完美的弧度,不留遗憾,再加上78%的屏占比,美丽的翎羽后盖。这次荣耀6 Plus还是挺让人无可挑剔的。特别是白色,我觉得用珠圆玉润这个词形容荣耀6 Plus再合适不过了 3、双眼看世界 前置800万像素相机,完美自拍。后置一双800万像素的摄像头,拍照功能惊人,不但能达到1300像素的效果,而且可以在F0.95-16之间调节光圈值。此外双摄像头还完美解决了1300万像素摄像头突出的问题。 华为是一家科技创新性公司,这次荣耀6 Plus,包含了众多科技创新,例如后盖的材料,功耗的控制,发热的控制等等诸多细节。以上三点仅仅是用户最普遍感知的方面。当你真的入手荣耀6 Plus,你会发现荣耀6真的物超所值。

2014年12月17日 · 1 分钟

随荣耀6 Plus一起发布的还有一款荣耀电力猫

随荣耀6 Plus发布的已经证实有多款产品,除了荣耀盒子,还有一款荣耀电力猫 电力猫可以把电线当做信号传输线,可以解决wifi信号隔着几堵墙无法到达的问题。 从海报上看,荣耀电力猫小巧好用,并且有“黑”山妖、“蓝”精灵、“绿”毛怪、“白”胡子四种颜色可选。如果你家里有多个房子,而又不想扯更多的网线,这款产品绝对用得上。荣耀电力猫也将在12月16日荣耀发布会和大家见面。拭目以待哟~

2014年12月15日 · 1 分钟

伴随荣耀6 Plus,荣耀盒子将一同发布

荣耀新旗舰荣耀6 Plus,即将于12月16日发布,手机业界一向很少一场发布会只发布一款产品,这样隆重的年度发布会,肯定还会有其它新品一同发布,据悉荣耀盒子就是其中之一。 这一消息已经在@华为秘盒MediaQ 官方微博得到证实,并且于12月6号推出了“你吐槽我买单,这样的电视机顶盒不能忍” 赠送荣耀盒子的盖楼活动。 据媒体报道,这次华为推出的荣耀盒子,是与已经与广电授权牌照商—银河互联网电视有限公司合作,能够提供持续稳定的正版内容服务,荣耀盒子将使用华为自己的海思芯片,支持4K视频。这款4K盒子还将支持H.265视频编码标准。相比目前主流的H.264编码,H.265可以在同等画质下将视频体积大大压缩,更便于存储和流媒体播放,这也应该是这款盒子的核心卖点之一。

2014年12月14日 · 1 分钟

cassandra如何扩容和替换一个节点

增加一个节点和替换一个DOWN掉的节点,步骤都是一样的,只是启动参数不一样。 第一:准备一个新机器,cassandra的配置使用和集群中一个普通节点相同的配置。 第二:然后就可以启动了,增加一个节点,只要bin/cassandra 启动就可以了。 如果是替换一个节点(假设DOWN掉的节点ip=192.168.1.101),启动的时候,可以使用bin/cassandra -Dcassandra.replace_address=192.168.1.101来启动(只是第一次这样,以后就直接bin/cassandra启动就可以了) 第三:就是等待数据迁移,当你在其它机器上使用nodetool status看到新节点的状态变成UN状态的时候,就表示迁移完成了。你也可以在新节点上通过nodetool netstats查看数据迁移的进度。 注意:如果你的集群数据量很大,这个数据迁移的过程将会给集群带来很大的负载。你需要在启动新节点之前做两件事情: 1、关闭所有节点的压缩。 nodetool disableautocompaction 关闭自动压缩 nodetool stop COMPACTION 停止正在执行的压缩。 当新节点启动之后,也要执行nodetool disableautocompaction。 在数据迁移完毕之后,再放开即可nodetool enableautocompaction 2、限制所有节点数据迁移流量 ./nodetool setstreamthroughput 32 限制为32mbps 假设你的集群有10个机器,那么你的新节点的流量大约是32*10mbps。 你可以根据数据迁移的进度,完成的节点个数,慢慢调大这个值。

2014年12月6日 · 1 分钟

cassandra如何分离一个表或者一个keyspace到新集群

cassandra数据迁移有好多种方法,只要你的sstable文件没有丢失,这里只讲述两种常见易用的方式: 第一种方式:copy命令 使用方法:适用于数据量小的情况下。 使用方式: copy mykeyspace.mytable to ‘/home/db.csv’ 这样就成功的把表mytable以csv的格式导出到了db.csv文件。 然后再另外一个集群中,建一个一模一样的表,然后使用 copy app12345.mytable from ‘/home/db.csv’ 就把数据导入到了新的库中。 不过以上方式仅限于小数据量,当数据量一大,这个过程会持续很久,而且文件也会很大。 第二种方式:sstableloader工具。 在cassandra的bin目录下提供了一个sstableloader工具,这个工具专门用于把一个表的sstable文件导入到一个新的集群中。 假设你的表是mykeyspace.mytable。你的数据存一个10个节点组成的集群中,每个几点的数据都存在/disk/data1和/disk/data2目录下。 假设你的新集群的一个访问地址是192.168.2.1, 先在新集群建离相同名字的keyspace和表结构。 接下来你只要在老集群的每个节点执行下面的命令: bin/sstableloader -d 192.168.2.1 -u cassandra -pw cassandra -t 100 /disk/data1/mykeyspace/mytable bin/sstableloader -d 192.168.2.1 -u cassandra -pw cassandra -t 100 /disk/data2/mykeyspace/mytable 其中-u是 用户名 -pw是密码 -t是限制流量100M/bps 等所有节点执行完毕,你的表数据就成功导入到了新的集群中,当然只要你的机器io和网络条件允许,你可以多个节点并发执行。

2014年12月1日 · 1 分钟

2014年最最旗舰定为12月16号正式发布,为了纪念荣耀品牌独立一周年

荣耀最新旗舰机,不叫荣耀6X,改成荣耀6 Plus,并且改在12月16日发布,华为荣耀掌门人刘江峰微博称,这是为了纪念华为荣耀独立品牌一周年。 并且据华为荣耀产品领域部长@吴德周HW,微博宣称:“荣耀6 Plus的几个技术我们的消费者BG、2012实验室、海思等多个部门研究了几年,产生了一些专利,投入了很多科研人员、设备和经费,我相信这些科研产生的美会给你前所未有的快乐。同时,也希望回报能支持我们继续研发更美好的技术奉献大家。” 想必这一旗舰机相较于荣耀6,肯定有很多不同的改进点和新功能在当天展示,一直以为除了双摄像头之外,和荣耀6差不多,这样也让人有一点点期待了。

2014年11月26日 · 1 分钟

评估两个机器之间的传输性能

在工作中需要调查一处性能问题,初步怀疑是两个机器之间的网络传输性能有瓶颈,如何判断两个机器之间的传输性能呢,排除丢包等网络故障,那就剩下带宽了。 1、首先两个机器的网卡的网速限制: 如果你的是百兆网卡,即便机器之间用光缆链接,那最高带宽也就100M,查看网卡的网速: 执行ethtool eth0可以查看对应网卡的网速 Settings for eth0: Supported ports: [ FIBRE ] Supported link modes: 1000baseT/Full Supports auto-negotiation: Yes Advertised link modes: 1000baseT/Full Advertised auto-negotiation: Yes Speed: 1000Mb/s Duplex: Full Port: FIBRE PHYAD: 2 Transceiver: internal Auto-negotiation: on Supports Wake-on: d Wake-on: d Link detected: yes 第二:即便两台机器都配有千兆网卡,如果中间有一个百兆交换机相连,他们的网速也只有100M。但是两台机器之间的链路复杂,还是需要测量得到两台机器的真实带宽,多平台带宽测试软件iperf(官方网站:https://iperf.fr/) linux x64下,直接下载可执行文件即可: wget –no-check-certificate https://iperf.fr/download/iperf_2.0.5/iperf_2.0.5-2_amd64 chmod +x iperf_2.0.5-2_amd64 sudo mv iperf_2.0.5-2_amd64 /usr/bin/iperf 在一台机器(ip=192.168.1.101)上执行:iperf -s -i 1 -w 1M 在另外一台机器上执行:iperf -c 192.168.1.1 -i 1 -w 1M 立马可以得到真实带宽: iperf -c 192.168.1.101 -i 1 -w 1M Client connecting to 192.168.1.101, TCP port 5001 TCP window size: 512 KByte (WARNING: requested 1.00 MByte) [ 3] local 192.168.1.102 port 12702 connected with 192.168.1.101 port 5001 [ ID] Interval Transfer Bandwidth [ 3] 0.0- 1.0 sec 113 MBytes 945 Mbits/sec [ 3] 1.0- 2.0 sec 112 MBytes 942 Mbits/sec [ 3] 2.0- 3.0 sec 112 MBytes 942 Mbits/sec [ 3] 3.0- 4.0 sec 112 MBytes 941 Mbits/sec [ 3] 4.0- 5.0 sec 112 MBytes 942 Mbits/sec [ 3] 5.0- 6.0 sec 112 MBytes 941 Mbits/sec [ 3] 6.0- 7.0 sec 112 MBytes 942 Mbits/sec [ 3] 7.0- 8.0 sec 112 MBytes 941 Mbits/sec [ 3] 8.0- 9.0 sec 112 MBytes 943 Mbits/sec [ 3] 9.0-10.0 sec 112 MBytes 942 Mbits/sec [ 3] 0.0-10.0 sec 1.10 GBytes 942 Mbits/sec

2014年11月20日 · 1 分钟

11月24日荣耀将发布年度旗舰

华为荣耀昨日12点以#荣耀年度旗舰#为话题,宣布2014年11月24日,荣耀将发布新旗舰。 可是华为荣耀今年已经发布了旗舰机型 荣耀6,那荣耀年度旗舰究竟是什么呢?加上广告词中的“带你探索无穷视界”,让人无限遐想 从图片上类似眼镜一样的标识,有人猜是带有双摄像头的荣耀6X,并有工信部注册图片曝光: 明天没大事,24号会有,说明这款号称年度旗舰的手机,肯定会让眼前一亮的感觉,让我们拭目以待。

2014年11月19日 · 1 分钟

[新闻转载]华为P8明年一季度正式开卖 已开始小批量试生产

华为P系列一直华为致力打造的精品系列,从华为P6的大受市场欢迎,到华为P7已经开始稳固华为市场份额,现在据消息传闻华为P8目前已经开始试产,有可能会配备麒麟930处理器,预计会在明年一月份正式发布。 尽管华为P7在今年五月份才正式发布,但随着国产手机竞争的日益加剧,华为P8的生产日程已被提前。根据网友在贴吧的爆料称,华为P8目前已经在小规模试产,官方方面对成品比较满意,但爆料者并未透露该机的具体发布时间,并且消息的真伪也仍需进一步证实。 但就现在的时间来看,华为P8在今年已经不可能推出了,对于十一月份开始试产,华为P8正式上市时间应该就在明年的一季度。按照以往的惯例,华为在每年年 初的CES消费电子展会上都有发布新机的习惯,如果华为P8确实将在明年一月份推出的话,那么则很有可能在CES2015展会上正式亮相 华为P8方面,自然会搭载自家引以为傲的麒麟系列处理器,据传闻来看,华为P8最吸引人的地方则是会搭载自家的海思kirin 930处理器,将会采用64位以及big.LIT LTE架构设计,并采用台积电最新的16nm FinFET工艺技术,但目前尚未有具体的规格被曝光。 随着国产手机价格逐渐水涨船高,华为P系列官方也是定位中高端手机市场,华为P8定价方面,根据此前泄露的华为明年7款新机图表中的信息显示,2999元很有可能! 当然,更昂贵的价格自然需要华为P8在外形设计,制作工艺以及硬件配置上都要有高的水准,因此预计诸如超窄边框设计,金属机身以及在摄像头拍照功能和效果方面的优化,或将成为华为P8的主要突破方向。 华为P8手机,你会期待吗?

2014年11月15日 · 1 分钟

华为荣耀双11总销售额达10.6亿

2014年11月11日是电商大战,好多商品都选择在这一天打折销售,拼出货量。华为荣耀在本日,提出了“找抽节”的活动,虽然销售力度不如小米公司,但是我们也看到了华为荣耀的进步。单日多电商平台销售10.6亿元 该日荣耀手机是销售重点,同时出货少量Mate7 P7等华为旗舰产品。虽然mate7很畅销,但是华为仅提供了少量货源,我想这是因为Mate7和荣耀销售渠道不一样,Mate7主要面向传统销售渠道,如果网络上大量销售Mate7,势必会对传统销售渠道有所打击。我猜想这是Mate7没有充足货源的原因。正像宣传中所讲的,荣耀相信有朋友才有未来。成就客户,达到双赢的局面,华为才能走的更远更稳,这才是华为所想要的

2014年11月12日 · 1 分钟

华为荣耀霸气登陆欧洲,傲视群雄

10月28日(中国时间29日 凌晨1点),华为荣耀在德国柏林发布荣耀品牌,同时宣布其4G旗舰之作荣耀6将于10月29日,在德国、法国、西班牙、意大利、英国、荷兰、波兰、捷 克、斯洛伐克、匈牙利、挪威、丹麦、瑞典、芬兰欧洲14国家同步发售,售价299.99欧元起。和国内市场以电商渠道为主要渠道一样,荣耀6在欧洲市场的 主要发售平台,同样为当地的最具影响力的电商网站,如Amazon、Bool、Alza、Komplett等。至此,华为荣耀品牌成为中国第一个大规模在 海外市场,通过创新的C2B互联网模式进行市场拓展的中国品牌。在此之前,荣耀6在韩国、俄罗斯、马来西亚、印度等国家与地区上市。 看一段高端大气上档次的视频:

2014年10月29日 · 1 分钟

揭秘4号特工,荣耀4X今日霸气发布

华为荣耀宣传数日的4号特工,今日终于揭晓,果然霸气外露,不同凡响。 可以预测该机将成为中低端市场机皇,让我们总结一下该机的优势: 第一:全网通(当然还有电信4G版),所有网络无论移动电信还是联通,无论2G 3G 4G,统统都支持,双卡双待,支持联通移动双4G盲插。 第二:2G内存,别的不看,1G内存太憋屈,2G内存是必须的,如果是1G内存,绝对是该机的败笔,但是这个机器真的配了2G内存哟。 第三:相机顶级配置,前1300万后500万,2000元的主流手机,也不过如此吧。你想要的都有了。出去玩,拿出来随便拍。 第四:5.5寸大屏,外形方正,造型我喜欢,有金色版。 何必买iphone装高富帅,此机足矣。 最后,还是有个小小的遗憾,我不得不说啊,全网通版没有NFC功能,电信版是有的,虽然NFC也不是常用的功能,但是刷了公交卡啥的还是挺方便的。其它方面暂且没有发现什么不足和缺点,我觉得想买千元机的用户,绝对值得拥有这部手机。

2014年10月28日 · 1 分钟