每周推特 2010-05-02

5 月 2nd, 2010 | Posted by | Filed under 生活轨迹
  • 花了两个小时帮同学探清了某MM的信息,邮箱、QQ、手机啥的全查到了,住哪都有大概范围了,唯一的工具就是Google,在网上混信息保密要做好。同时非常佩服当年想保送我到国防科大做信息分析的政委,一眼就看出来我适合做狗仔…… #
  • 突然感觉到我这是不对的……-_-!!! #
  • 睡不着,男人每个月也有郁闷期。跟老同学短信八卦中~ #
  • @pickuplichun 可以交流一下书啊,我这有看完的跟你换换 in reply to pickuplichun #
  • 在国外注册的域名使用国外NameServer,在国内无法ping通,用DNSPOD就可以。啥情况 #
  • 明天去淘宝,估计能见到一片大牛 #
  • RT @hellodba: 新文章《Oracle or MySQL》,其实这是一封邮件。 它不是关于数据库比较,而是我对Oracle和MySQL甚至NoSQL产品选择上的一些想法。http://goo.gl/Gc4e {帅,这文章太好了} #
  • RT @hutuworm: 连 YSlow 都理解不了的弱智,产品做得一塌糊涂,还有脸出考题,他们怎么不去死呢? #
  • RT @Fenng: 浙江一村庄数万小蟾蜍集体迁徙 专家称正常行为 http://www.dahe.cn/xwzx/gn/t20100427_1790869.htm //专家辟谣就是预报 #
  • RT @Fenng: 浙江一村庄数万小蟾蜍集体迁徙 专家称正常行为 http://www.dahe.cn/xwzx/gn/t20100427_1790869.htm //专家辟谣就是预报,咱还是留个心眼~ #
  • 这段时间的主要政治任务就是给GF找工作,找啊找啊找啊找…… #
  • @drcnc1020 就在内部国际站找啊 in reply to drcnc1020 #
  • 刚睡下,被数据库报警惊醒,又爬起来处理。我YY是不是可以用神经网络训练一个专家系统,用遗传算法迭代进化权值,自动判断一些简单报警的处理呢 #
  • @hutuworm 大师想翻译啥? in reply to hutuworm #
  • Replication遇到Relay log read failure: Could not parse relay log event entry.的错误,疑似MySQL Bug,版本3.1.40。 #
  • 版本5.1.40 #
  • @sky000 是的。我登上去的时候没看到空间满,以为回写不完整造成的。Change Master现在OK了。安装MySQL的时候ln反了目录,数据都写到根目录下了,我大意了。安装规范咱们尽快搞搞吧,我才知道我一直用的老目录结构。以后洗澡也得带着手机,今天悲剧了-_-||| in reply to sky000 #
  • 本周搞出了两个大事,反思自己做事的方法和流程 #
  • X200上装上了Mac,不过无线网卡和显卡驱动无解,只能用有线网络和1024*768的分辨率,悲剧…… #
  • Ubuntu 10.04的UI做的好多了,非常赞! #
  • RT @51isoft: @plinux 是吗?还没装呢,本来嫌UBUNTU太丑想上KUBUNTU的 // KDE不习惯 #
  • RT: @fire9: ubuntu 10.04升级成功啦,嘿嘿.. (via @litaocheng) 『有个性啊,身在豆瓣还不用Gentoo。』//Gentoo无止境的编译,适合学习Linux,拿来用还是有点折腾 #
  • 发完项目,准备闪人 #
  • 回想今天的故障,项目测试时,DBA是否也应该参与,用自己的专业知识,指导QA对数据库本身的功能点进行极端测试,不仅仅是从应用的角度来测试,希望这样可以把数据库本身在某些特定场景下可能出现的问题测出来。 #
  • 写完周报月报,可以放心的去睡了 #
  • @yanzisky1989 还想让我翻成中文的,我哪看得懂…… in reply to yanzisky1989 #
  • RT @yanzisky1989: 一堆人在群里吹嘘自己的计算机技术有多好。呃= =我这个电脑白痴可以去SHI了么?~{啥群?} #
  • RT @yanzisky1989: TAT 好想要上次看中那个米奇包包。。。至今仍念念不忘。。看到米奇我就不行了。。(不就三个圈嘛,自己画一个) in reply to yanzisky1989 #
  • RT @rtmeme: RT @jronrun RT @bazhongwei: 不被剁死可能豆渣校墙压死;不被墙压死可能就业压力死;不被就业压力死也有可能变成了恼残。能够变成正常人是上帝眷顾的? #
  • 看到现在表面上一片和谐下隐瞒着社会的动荡,想到保密处老师给我说的话,越是看似平静,越是暗流涌动,变天就是一转眼的事,只有掌握好技术,不管怎么变,都是人才。身为保密处领导,不是GCD,这点已经很难得了。 #
  • 貌似今天澳门有集体散步 #
  • 看US.Constitution.Class.(Michael.Badnarik.lecture) #
  • RT @hellodba: 我们爱的是为人民谋幸福的国家,不是要人民为它做奴才的国家,一个自由民主的国家不是一群奴才建立起来的。{刻意追求民主倒是没必要,但是自由是一定要的,自由最重要} #
  • @hellodba 等有了VM好好测测,一台小机的价钱能买N台PC Server,找到好的方案把这些PC Server组成Cluster,可用性和性能应该能超过小机。 in reply to hellodba #
  • 冤有头,债有主,前面右转是政府。逞英雄,做好汉,出门往南政法办。 #
  • RT @hutuworm: 终于看了Avatar,原来讲的是拆迁办内讧的故事。//这个解释NB #
  • @sdh5724 利用二分的思想。根据有序性,对于序列a[i..j],如果a[i]<>a[j],先求平台平均长度v=n/(a[j]-a[i]+1),可得i..j的范围内平台长度下界为int(v),上届为j-1,保存。未完…… in reply to sdh5724 #
  • @sdh5724 二分i,j这个范围,如果选的mid分开了一个平台,向后查找把相同数加到左边的部分,保证分开的两部分没有拆开一个平台。继续上面的过程。如果有a[i]=a[j],则这个子序列不用再二分,已经是一个平台。 in reply to sdh5724 #
  • @sdh5724 如果有序列最大可能平台长度小于目前某个序列的最小平台长度,剪枝,最长平台不可能包含在其中。算法严格上来说算不上LogN,常数可能蛮大的。 in reply to sdh5724 #

Powered by Twitter Tools

标签:

遇到Relay log read failure

4 月 29th, 2010 | Posted by | Filed under 未分类

今天遇到MySQL服务器报了一个从来没见过的复制错误:
Relay log read failure: Could not parse relay log event entry. The possible reasons are: the master’s binary log is corrupted (you can check this by running ‘mysqlbinlog’ on the binary log), the slave’s relay log is corrupted (you can check this by running ‘mysqlbinlog’ on the relay log), a network problem, or a bug in the master’s or slave’s MySQL code. If you want to check the master’s binary log or slave’s relay log, you will be able to know their names by issuing ‘SHOW SLAVE STATUS’ on this slave.

开始以为RelayLog回写的错误,@sky000提醒我是我把数据目录放错了位置,本该是link的地方成了物理目录,本该是物理目录的地方成了link,于是很快耗尽了分区空间。
这么看应该是RelayLog没写全导致错误,重置目录位置后,有了空间重新开始写Relay Log,在没写全的位置读取Relay Log就出错了。

先看看slave复制显示的信息。
mysql> show slave status\G
*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: IP
Master_User: repl
Master_Port: 3306
Connect_Retry: 30
Master_Log_File: mysql-bin.x
Read_Master_Log_Pos: pos_x
Relay_Log_File: relay-bin.y
Relay_Log_Pos: pos_y
Relay_Master_Log_File: mysql-bin.z
Slave_IO_Running: Yes
Slave_SQL_Running: No
Replicate_Do_DB:
Replicate_Ignore_DB:
Replicate_Do_Table:
Replicate_Ignore_Table:
Replicate_Wild_Do_Table:
Replicate_Wild_Ignore_Table:
Last_Errno: 1594
Last_Error: Relay log read failure: Could not parse relay log event entry. The possible reasons are: the master’s binary log is corrupted (you can check this by running ‘mysqlbinlog’ on the binary log), the slave’s relay log is corrupted (you can check this by running ‘mysqlbinlog’ on the relay log), a network problem, or a bug in the master’s or slave’s MySQL code. If you want to check the master’s binary log or slave’s relay log, you will be able to know their names by issuing ‘SHOW SLAVE STATUS’ on this slave.
Skip_Counter: 0
Exec_Master_Log_Pos: pos_z
Relay_Log_Space: 4132423412
Until_Condition: None
Until_Log_File:
Until_Log_Pos: 0
Master_SSL_Allowed: No
Master_SSL_CA_File:
Master_SSL_CA_Path:
Master_SSL_Cert:
Master_SSL_Cipher:
Master_SSL_Key:
Seconds_Behind_Master: NULL
Master_SSL_Verify_Server_Cert: No
Last_IO_Errno: 0
Last_IO_Error:
Last_SQL_Errno: 1594
Last_SQL_Error: Relay log read failure: Could not parse relay log event entry. The possible reasons are: the master’s binary log is corrupted (you can check this by running ‘mysqlbinlog’ on the binary log), the slave’s relay log is corrupted (you can check this by running ‘mysqlbinlog’ on the relay log), a network problem, or a bug in the master’s or slave’s MySQL code. If you want to check the master’s binary log or slave’s relay log, you will be able to know their names by issuing ‘SHOW SLAVE STATUS’ on this slave.
1 row in set (0.00 sec)

没见过这种错误,开始有点慌。然后定神想了想,只要知道已经复制到哪里了,CHANGE MASTER应该是可以解决问题的。
Google发现Relay_Master_Log_File和Exec_Master_Log_Pos参数就是记录执行Master的binlog的位置信息。
于是直接
CHANGE MASTER TO Master_Log_File=’mysql-bin.z’, Master_Log_Pos=pos_z;

重新start slave后正常。

每周推特 2010-04-25

4 月 25th, 2010 | Posted by | Filed under 生活轨迹
  • 今天有相当危险的一幕,我跟老哥站在路边,一辆宝马突然爆胎向路边冲来,要是速度再快一点,要是车子搓一点,要是爆胎地点前十米,我今天就不用回杭州了 #
  • RT @pickuplichun: 精神过于紧张了。梦到和老婆亲热还先在itil里面提个单子。{这个NB,以后咱搞个亲热的ITIL流程单,慢慢审批} #
  • 二八定律永远适用,20%的项目会占用80%的时间。这些项目有一个共性就是不遵循规范,喜欢走自己独特的流程。 #
  • 点到ASC的Tech文档里,里面的算法介绍,看得有些吃力了,老了……要坚持每天都继续回忆,坚持写一点,才能保持不忘记。 #
  • 对某些测试人员很无语,一有读写不正常的问题就喊数据库有问题,就我这Java水平,都能一步步调出问题在消息队列,作为一个QA却找不到问题的所在很悲剧。 #
  • 我相信,数据预测一定可以发挥价值,虽然很多人并不相信监控数据能够预测或者预测存在实际意义。但10次的预警只有1次命中,也比从不预警只做消防员要好,运维的职责应该是偏重预见风险和规避风险,而不应该把时间主要花在消防。 #
  • 上课非常的枯燥,谈技术不深入,谈介绍又不详细,不上不下的感觉,除了偶尔一两个老师讲课比较有意思分享自己的成长历程,其他的课程上完不会有什么感觉和收获,要学习还是要到工作中学习。 #
  • 写完总结,写完课后反馈,准备好需要发布的数据库,回家洗澡洗衣服,现在,终于可以睡觉了。上课比上班累。 #
  • 黄埔终于结束,可以重新开始工作了。 #
  • 敢问:中国的大学里,既有地铁,又有高速,还有飞机场的,除了南航,还有谁?(大笑) #
  • @qiyi 地铁就在校门口,校区横跨机场高速 in reply to qiyi #
  • 有小学弟加我QQ就为了让我写个LR分析法给他,我只能说一凳子。不好好学习净想歪点子。 #
  • 每当听到海阔天空,总是一种感动。多少次,迎着冷眼与嘲笑,从没有放弃过心中的理想。背弃了理想,谁人都可以,那会怕有一天只你共我。 #
  • RT @rtmeme: RT @heartnn RT @rebelboy: RT @feitat: 和谐家庭男人守则:起床抱一抱,老婆一天笑;出门给个吻,进门有人亲;没事送枝花,老婆乐哈哈;家务搭搭手,老婆爱长久。—— 手是女人的第二张脸,所以男人洗碗最讨喜。 #
  • RT @chndonny: 都准备睡觉了,忽然想起明天要给公司新人讲“什么是运维”。什么是运维呢?就是运动着维护服务器,所以每人都配笔记本! #
  • 每次大规模土地兼并的后果都是一样的,不说了,房地产继续搞吧,继续征地吧 #
  • 收到辅导员短信,晚上开会自带现金,现场捐款。我庆幸我不在学校,对于这种被捐款行为,我只能说草泥马。 #
  • 惊闻同学实习不到2月就被调到架构组了,主管是MVP,差距啊,当年没好好学习高端课 #
  • 听老马赢在中国的演讲,“给团队描绘美好未来的时候一定要描述未来的灾难是什么,知道了灾难是什么才可以去准备”。到达美好未来的路上一定有很多的灾难,如何克服它们,才是问题的关键。 #
  • 几个月不关注,同学们的男女关系又发生了剧烈的变化,由此看来我已经很纯洁了…… #
  • MySQL Manager,批量管理MySQL http://flic.kr/p/7VYro9 #
  • 写完了主干代码,可以安心的去睡了~ #
  • 周末呆在公司的好处是,开发测试人员找我我可以随时响应,不拖延他们的进度 #
  • RT @rtmeme: RT @excitingleon RT @choupiyang: 深圳各大银行放贷规模严格受限,积压大量贷款无法发放,交易违约率将会大大提高,房价上涨几无可能,长期调整已经开始,房价拐点形成!有刚性需求的朋友可以耐心等候一段时间,待心理价位到达后可再等等 #
  • 新买的夹克就刮破了,悲剧啊,我还是继续穿便宜货吧~ #
  • 作为DBA,最高兴的事情是听到开发测试在表扬我们的工作做得好,这是工作中的小幸福 #

Powered by Twitter Tools

标签:

每周推特 2010-04-18

4 月 18th, 2010 | Posted by | Filed under 生活轨迹
  • RT @rtmeme: RT @Hecaitou: 以前总是觉得自己很牛逼,BBS里开战,Blog里写文章,看到苍井空( @aoi_sola )一个小时飙3000Follower,突然感觉到自己做得很不够,不如一个AV女优,她们才是服务广大人民群众,所以也为人民群众所拥护。 #
  • 培训中不少应届的哥们回答问题纯从出题的意图去考虑,而不考虑问题本身,本来很简单的问题被分析的巨复杂,应试教育深入骨髓。 #
  • If now now, When? If not you, Who? #
  • @sdh5724 校长用什么算法做的? in reply to sdh5724 #
  • Itouch上可以维护mysql了 #
  • @yanzisky1989 马总的话,热血沸腾…… in reply to yanzisky1989 #
  • 面对小组5个女生都在高空抓杆抓到了,我感到压力很大……跳了一次没抓住,再跳第二次,终于抓住了……就算第二次不行还会来第三次…… #
  • @jxu 女生都抓住了,有的女生还是哭着跳出去抓住的,不抓住以后怎么混啊…… in reply to jxu #
  • @tinyData 只要自己足够胜任,相信公司会给你机会的,我也是这么进去的。想做就去做,并且证明出你能做的好。If not now, when? If not you, who? in reply to tinyData #
  • 审核SQL,建索引,本身是一件比较有意思的事情,并不想太自动化,也不太可能自动化,能直接看SQL执行计划已经比较满意了 #
  • RT @yanzisky1989: 唉,还以为是写给我的呢~心瓦凉瓦凉滴~RT @plinux: @yanzisky1989 马总的话,热血沸腾…… {也可以这么理解吧……就当是写给你的哈……} #
  • RT @jessie0816: RT @hecaitou: 肯德基终于为优惠券事件发布了珊珊迟来的道歉,而且没有任何补偿。网友夜壶评论说:道歉要有用,还要麦当劳干什么? #
  • 静静的积累,成为大牛;开放的分享,让团队都成为大牛;继续学习,再更牛。这是一个团队的良性循环,每个人都Open,让大家进步,也砥砺自己更进步。 #
  • @asword2000 MySQL的好说明,有源码。Oracle的从文档中来看,也是差不多的,要从文件结构来看,这得靠范牛把文件解析出来…… in reply to asword2000 #
  • RT @asword2000: 我们部门也是 RT @karlzheng: 我的主管刚刚和我说,我们需要两种人,1、牛人,2、女人,可见技术部门女性同胞的缺乏啊! in reply to asword2000 #
  • 看到测试人员辛苦的造测试数据,我感到非常非常的内疚,并且他们并没有因此不断的抱怨我,我更觉得无地自容。今后要像维护产品库一样保护测试人员的心血,对测试库要一样的投入心血保障安全。 #
  • @whitepoplar 原因是机器Crash了,并且再也没起来……同时没有备机 in reply to whitepoplar #
  • RT @hellodba: 希望今年我们团队把Greenplum这套系统接手过来,不仅仅是基础管理,更重要的是象Oracle,MySQL一样,把GP的思路和原理搞清楚,我相信这会让我们受益匪浅。//数据仓库的么,期待 #
  • 坐在休息区,一个不认识的同事过来,问我B树,一顿狂坎,我汗…… #
  • @asword2000 是你哇? in reply to asword2000 #
  • 趁着培训的空闲,查看了一遍产品库的status,发现产品库的参数还是有些问题,可能有潜在的隐患,下个季度应该要逐一人肉调整下。 #
  • @asword2000 不会吧,图在Flickr上,我看了也没红叉,难道你那Flickr被墙么 in reply to asword2000 #
  • @fire9 汗,这么严重,我这还好好的,GFW不同步么 in reply to fire9 #
  • 百阿结束,黄埔即将开始。今晚吃的很Happy,从来没有这么开放过,我竟然会跳舞…… #
  • David同学今天的交流还是比较实在,追求人生的小平衡还是大平衡,每个人都有自己的想法,都没错,都很好,但是永远不要去后悔自己的选择。 #
  • 哥哥结婚,很Happy,我也要~~~~~~ #
  • @yanzisky1989 已经结束了啦~ in reply to yanzisky1989 #
  • @yanzisky1989 真的哇? in reply to yanzisky1989 #
  • @yanzisky1989 ……嘛,还生气么 in reply to yanzisky1989 #
  • @yanzisky1989 你要我怎么赔……我蹲墙角…… in reply to yanzisky1989 #
  • @yanzisky1989 好吧……好吃的你自己挑 in reply to yanzisky1989 #
  • 到杭州了,好累~婚礼好好玩~ #

Powered by Twitter Tools

标签:

遗传算法聚类程序

4 月 12th, 2010 | Posted by | Filed under 人工智能

何为遗传算法,概念性的描述我就不说了,摘自维基百科:

遗传算法是计算数学中用于解决最优化的搜索算法,是进化算法的一种。进化算法最初是借鉴了进化生物学中的一些现象而发展起来的,这些现象包括遗传、突变、自然选择以及杂交等。
遗传算法通常实现为一种计算机模拟。对于一个最优化问题,一定数量的候选解(称为个体)的抽象表示(称为染色体)的种群向更好的解进化。传统上,解用二进制表示(即0和1的串),但也可以用其他表示方法。进化从完全随机个体的种群开始,之后一代一代发生。在每一代中,整个种群的适应度被评价,从当前种群中随机地选择多个个体(基于它们的适应度),通过自然选择和突变产生新的生命种群,该种群在算法的下一次迭代中成为当前种群。

更详细请参考:百度百科维基百科

我来描述下我的问题,需要从数百万个5维点中选出32个聚类中心(可以不是原集合中的点),将点全部按就近原则聚类到这个三十二个区域,要求最终所有点到自己聚类中心的点最短。
初看这个问题,很多人会采用K-均值算法,不过我觉得这个问题用遗传算法做正好。
遗传算法

遗传算法实际上就像是在图中的曲线上放了个小球,小球会滚向我们所选区间的最低谷,如果选的区间大,运算量就大,但是不容易错过最低点,极限就是区间是全部X轴,这就成枚举了。而区间适当放大,在区间内滚动,然后随着滚动校正区间,可能就会获得最优解。但是也可能所选的区间不够大,小球落在极小点,而不是最小点。

可能描述有点混乱,请谅解,我文字描述能力实在是不强……

我解决这个问题的思路是,将32个点当做一条“染色体”,初始化随机100个“染色体”,计算适应度(每个点选择一个最近点,把距离加到总和)。
得到适应度后,为了保存优秀“基因”,我采取了“精英保留法”,每代选择最佳适应度的4个“精英”抽中其中一个直接进入下轮进化,而不参与变异,这样可以保证最接近结果的“染色体”被保留,又可以避免极小点被一直保留。
剩下的“染色体”每次随机选取两个,根据杂交率参数控制是否进行“杂交”,如果进行“杂交”,互换一部分DNA(中心点),得到新的“染色体”。
然后对新的“染色体”根据变异率参数控制是否进行“变异”,如果进行“变异”操作,则对“染色体”中的DNA随机根据最大干扰度参数改变值(就是对点的维度坐标稍微修正)。
最后为了程序不一直无限执行下去,设定最大遗传代数,来控制到了最大代数则停止,输出结果。

我的程序中Dat.txt是一部分测试数据,我转换成了二进制,在Dat.bin中,程序为了速度实际是读取Dat.bin中的数据。最后结果输出在Best.txt,包含选中的32个聚类中心,Res.txt包含了程序执行的全过程,包括每代的进化情况和适应度变化。
参数在Params.ini都可以修改,含义见“说明.txt”。

想测试准备好一下午,测试数据有十几万个点,可以算两到四个小时,算法还有优化的余地……

  GenAlg.7z (4.2 MiB, 1,641 hits)


阅读全文…