Recently I was tasked with investigating slippage between master and slave in a standard replication setup.
The client was using Maatkit's mk-table-checksum to check his slave data was indeed a fair copy of that of the master.
mk-table-checksum --algorithm=BIT_XOR h=hostname.local,u=root,p=xxx --replicate=checksum.checksum --emptyrepltbl --chunksize=500000 --databases mydb --sleep 1
He could then examine the checksum.checksum table and see all was well, however there were various tables with different crc values.
SQL:
db: mydb tbl: Foo_History chunk: 0 boundaries: 1=1 this_crc: 30627c76fe658fd9b77eaddf1ea8c03a this_cnt: 2593 master_crc: bdbadd7dae2636a8cf515bb886fb1295 master_cnt: 2593 ts: 2008-09-24 04:50:05
So, now I needed to find out what was updating the table. Here is where tools like mysqlsla and Maatkit's mk-log-parser come into their own as they both allow you to quickly parse the binary log files, extracting the relevant statements.
mysqlbinlog bin_log.000001 | mysqlsla -lt binary -
Check out http://hackmysql.com/mysqlsla_filters for how to filter by statement.
Looking through the binary logs I could see this table is actually an audit table for changes to the Foo table. The trail is kept using two triggers on that table.
SQL:
SELECT trigger_name, event_object_table, Event_Manipulation FROM information_schema.triggers WHERE trigger_schema = 'mydb' AND action_statement LIKE '%Foo_History%'\G *************************** 1. row *************************** trigger_name: Foo_Update event_object_table: Foo Event_Manipulation: UPDATE *************************** 2. row *************************** trigger_name: Foo_Delete event_object_table: Foo Event_Manipulation: DELETE
So whats the problem with that?, well there is a situation where two overlapping transactions updating the Foo table can be reordered once serialized on the slave.
Here is an example:
I recreated the tables and triggers, populating the Foo table with a handful of rows and then ran the following.
Here is the update trigger:
SQL:
CREATE TRIGGER Foo_Update After UPDATE ON Foo FOR Each Row INSERT INTO Foo_History (Foo_History_ID, Name, Value, Field_Id) VALUES (Old.Foo_History_ID, Old.Name, Old.Value, Old.Field_Id);
SQL:
Start Transaction; UPDATE Foo SET Value=6 WHERE Field_ID = 3;
SQL:
Start Transaction; UPDATE Foo SET Value=6 WHERE Field_Id = 51; Commit;
SQL:
Commit;
Now when these statements get run on the slave they will be serialized, thus changing the order of the inserts made by the trigger. The Foo_History table is now out of sync.
Master:
SQL:
*************************** 1. row *************************** Foo_History_Id: 1 Name: maxlength Value: 7 Field_Id: 3 *************************** 2. row *************************** Foo_History_Id: 2 Name: maxlength Value: 7 Field_Id: 51
Slave:
SQL:
*************************** 1. row *************************** Foo_History_Id: 1 Name: maxlength Value: 7 Field_Id: 51 *************************** 2. row *************************** Foo_History_Id: 2 Name: maxlength Value: 7 Field_Id: 3
As you can see from the above, the updates were performed in a different order, with the inserts being assigned a different Foo_History_Id. This is because the statements are written to the binary log in commit order.
Entry posted by Ewen | 3 comments
这个对自然灾害并不陌生的国家同时还处在抗击气候变化的前线,该国正在和英国合作,帮助受困群体提高适应和生存能力。约翰•维达报道。
我们看到法吉拉和西拉加尔正在田间料理西红柿、辣椒和其他蔬菜,不过他们绝不是在普通的菜园里。这个菜园没有土壤,蔬菜在看起来像粪球一样的东西上生长,种植蔬菜的底层是漂浮在陆地之上的一片纠缠在一起的水葫芦,长12米、宽1.2米。一年中的大多数时候陆地都是在洪水的淹没之下,法吉拉和西拉加尔站在齐腰深的水里,正在从事水耕农业。
这两位也不是普通人。就在几个月之前,他们还是来自孟加拉国南部沿海村庄蒂耶拉的无地农民。孟加拉国是全球最贫困和最脆弱的地方之一,那里的人们要面临经常的环境灾害,包括旋风、洪涝灾害、河道淤积、含砷饮用水、河流侵蚀以及海水入侵。而如今,他们还得应对气候变化。他们利用水葫芦作为种植作物的新“土地”,这种别出心裁的方法是孟加拉国和英国政府共同努力的一部分,以使弱势群体为当前和未来的灾难作好准备。
气候变化正在孟加拉国发生,人们对此毫无疑议。政府气象学家报告称,气旋袭击该国的强度和频率增加了10%,过去三年里发生了有史以来最大的两次风暴。农民报告雨量增加、季节反常,而且每个人都说气温更高了。
“我们正在学习有关气候变化的知识,”拥有约2,000人口的蒂耶拉区区长安那瓦鲁·伊斯兰说,“雨水一年比一年多,海平面无疑是在上升。每年,我们必须加高堤坝,而且涝渍地在增加。这导致更多的人无家可归,更多的社会冲突和更多的邻里纠纷。贫困增加,粮食安全下降。”
“现在天气热多了,”来自渔村吉勒帕拉的塞琳娜说道,“在雨季我们感觉不到冷。过去要盖毯子,但现在用不着。去年,即使在夏季也是大雨滂沱。天气极其无常,给耕种造成了很大的困难。我们无法作出计划,必须随机应变。暴风雨越来越频繁,潮水径直涌向我们的房屋。”
在大约160公里以外的地方,来自英国的淤泥岛社区发展干事朱利安·弗朗西斯正看到河流侵蚀加剧——淤泥岛是孟加拉国大型河流中形成的大岛屿,这几乎是必然的,因为水流加大了。最近,在强季风雨中,他去往奔腾的贾木纳河。“我访问了库尔堪迪地区,那里有四个村庄的571个家庭遭受了河水的侵袭,”他说,“人们说,这条河流去年向陆地侵入了大约1,200英尺(365米),今年又侵入了1,000英尺(约300米)。”
他接着说道:“去年,‘淤泥岛民生项目’向一个地区的家庭提供了528起捐赠。然而自今年4月以来,已经提供了518起捐赠,在目前的等候名单上还有300多起。有人告诉我,自1988年以来,这条河流还从来没有这般肆虐。在河中央(似乎)形成了一个新的淤泥岛,从而导致河流改道……而这就是河流侵蚀加剧的原因。”
气候变化也许不是孟加拉国涝渍地、海水入侵或河流侵蚀的直接原因,但是它正在把糟糕的形势转化为潜在的灾难,把法吉拉和西拉加尔这类人推向赤贫。旋风锡德是孟加拉国遭遇的最强风暴之一,在去年9月使得300万人无家可归。与此同时,8月份一位世界银行官员表示,粮食价格上涨使得今年赤贫人口新增了400万。
“必须为气候变化做好准备,”政府环境官员拉加·德巴西什·罗伊表示,“我们正在经历许多变化,有些变化来的快,有些将在多年以后出现。盐度上升,潮汐波、洪灾、旱灾和气旋强度加剧。雨季雨水太多,旱季雨水太少。所有这一切都涉及到粮食安全。我们必须应对所有的这些问题,有些问题必须同时处理。”
罗伊于9月10日在伦敦参加了英-孟气候变化会议,孟加拉国在会上公布了未来10年应对气候变化的策略。英国将为该国适应气候变化向一个新设立的国际基金拨款7,500万英镑(1.35亿美元),孟加拉国自身每年出资5,000万美元。包括丹麦和世界银行在内的其他国家和全球机构也有望提供帮助。
这是主要的最不发达国家第一次尝试系统应对气候变化的威胁,而且,在签订后京都协议之后,随着更多的全球资金进入,这一尝试有望成为其他国家的样板。
“就预计影响程度而言,孟加拉国是世界上最脆弱的国家,”英国国际发展部驻孟加拉国气候变化顾问伊斯兰·费萨尔表示,“这是首次制定一个策略和一个行动计划。这些资金本身不足以抵消适应成本,但应该能启动这一程序,并让(孟加拉国)政府获得全球资金。”
那就是法吉拉和西拉加尔现在参与的计划项目。他们的水耕菜园是在英国国际发展部资助的灾难管理计划下发展起来的,包括将房屋升高到比当前的高潮线高出约1米、引进耐盐作物、鼓励养蟹养鸭以及集蓄雨水。
孟加拉国政府灾难管理计划主管玛穆努尔·拉希德表示,“已经确立了70多个(适应)计划”。
教育计划是最成功的计划之一。当地非政府组织Shushilan雇佣了一个专职剧团参加各种活动和到各个村庄巡回演出,告诉人们有关气候变化的知识以及如何适应气候变化。另外一个非政府组织向社区派遣志愿者,并配有具有教育意义的“活动挂图”。
这些计划很受欢迎。“像这样种植粮食需要很多劳力,但是我们不需要使用肥料和杀虫剂,而且粮食质量比在土壤中种植的粮食要好,”法吉拉说,“刚开始,我们对于到底行不行感到非常没有信心,但现在我们想我们能够靠我们种植的作物维持生活。”
拉希德表示:“科学讨论成为了发展的现实。没有这样的行动,孟加拉国将更深地陷入极端贫困。这不但关乎气候变化,而且关乎减少贫困。它不像发展已有的东西,适应气候变化不需要太多的新思想。气候变化处于各种危险和困难之上,它可能会把人们推向边缘,假如国家作出回应,它就会对他们有所帮助。”
罗伊也显得同样乐观。他表示:“孟加拉国一直都有洪灾、旋风和各种灾难。人们习惯于应对这些变化,我们有应对挑战的传统。我们对气候变化做好了思想准备,但我们确实需要支援。”
卫报新闻传媒有限公司2008年版权
首页图片由uncultured摄
许久没有在这个blog里讨论关于品牌的东西。上周在海内看到朋友转贴一段关于品牌的文字,于是发了一些感想,现在将自己的感想转贴在此,虽然是对原文的评论,却反应出小容一直以来对社会化网络和品牌管理的思考。
所谓“品牌”,它并不是一种无缘无故的东西。只有在两种情况下,品牌才会显得特别有魔力:一是信息不对称的时候。这种情况一般发生在一些具有一定的技术含量的产品上,且这种产品往往一次性投入较大,并且,使用者不太可能从经验上(如多次购买)获得对该产品的认知,如目前的平板电视机(貌似技术含量高);二是当一个品牌对它的“粉丝”形成某种“类宗教”性的精神影响的时候,我们也可以称之为文化认同、身份认知或价值认可,如索尼的视听产品,苹果的手持终端以及某些高档服装、化妆品或者奢侈等。
小容看到的原始文字如上,最初并没有看到上下文,所以触发了小容的感想。
———
品牌民主:社会化网络对品牌管理思维的影响
———
有许多种角度来理解“品牌”。按这段文字来理解,其实作者把“品牌”预设为“好品牌”了。那么,不好的品牌,坏的品牌,不好不坏的品牌该用哪个词语?显然,仅仅用“商标”这个具有法律意义的术语是不够的。
小容个人的理解,“品牌”是消费者对你的公司/产品的感觉的总和。这种感觉来自消费者感知你的公司/产品的各个渠道。这篇文章将按照这样的界定来探讨。
消费者接收到的信息源,可以归纳为三种类型:
* 来自品牌主体:
没有购买产品时,通过大众传播、广告、公关和网络了解公司信息。形成一定的印象;
* 来自品牌客体:
购买产品消费产品后/或者和公司直接发生人际接触后,这些消费体验和真实的接触会对原有的印象发生影响;
* 来自品牌客体的社交环境:
身边的人、信任的朋友、网络上的圈子也会传播出他们各自对该产品/公司的观感,这种观感也会影响到消费者对产品/品牌的感觉。
传统的广告/公关模式认为为公司可以为产品/企业塑造一个统一的、模式化的品牌识别,而后让所有的消费者全盘接收。实际上,这种模式忽略了每个消费者大脑里都有自己对该品牌的理解。正如每个人读同一本小说,每个人的感悟可能会不同,每个品牌在每个消费者的心目中都是不一样的。只是,因为要测量出不同人对品牌的认知,其成本极其高昂,所以,事实上的消费者心目中的品牌识别和公司认为消费者心目中的品牌识别,两者之间的差距被人们忽略了。
当然,传统广告模式使用的一些手法,在视觉运用和信息传达上,仍然符合人们处理信息的模式,依然在发挥着巨大的品牌塑造功效。优秀的视觉设计和信息传达设计在同质化的市场中可以为产品塑造一个个性化的识别,帮助消费者根据自己的情况来做出购买判断。
但是,这种来自品牌主体的声音——因为来自品牌客体的声音逐渐强大——它们的力量正相对削弱。
社会化网络的发展,让人们能够更加容易、快速地发表、传播和交流各自个体对某个产品/公司的具体感受。来自消费者一端的品牌之声,时而聚合,时而涣散,不论是否汇成洪流,它都在实在地影响者每个参与网络活动的人们。品牌客体中部分意见领袖通过低成本的制作,和扩速传播的机制,已经可以在网络上召集和发起品牌抵制传播活动,让消费者的声音在短期内迅速放大。同样,他们也可以发起品牌爱戴传播活动,消费者的粉丝热情因为群体聚合而情绪高涨。
在愈来愈复杂的信息生态中,企业家和品牌经理将面临过往未曾遭遇的复杂议题:来自消费者的自由联合如何形塑品牌?如何善待来自品牌客体的信息反馈——不论它们是好消息,亦或坏消息。
老话说,消费者是上帝。实际上,许多企业家把自己看成是消费者的上帝。
传统的营销理论的教科书也说一切要以消费者为中心。实际上,许多品牌经理做的事情完全以企业为中心。
面对社会化网络,对于企业来说,他们必须重新审核自己的品牌管理思维。抉择摆在面前,要么是继续控制和主导,固步自封,将社会化网络中聚集而来的消费者拒之门外;要么是放下姿态,开始和消费者合作,通过社会化网络和消费者融合在一起,真正将消费者纳入品牌管理的核心。
社会化网络提供了一个让消费者更便利地深度参与品牌活动的环境。具有领先觉悟的企业家和品牌经理,已经开始通过社会化网络的用户参与机制,设计一些具体可行的工具,让消费者参与创造品牌的过程中,他们让消费者通过社会化网络,参与产品的研究开发、设计、测试、发布、广告制作以及零售环境设计等整个营销传播的全过程。
小容用“品牌民主”这个新造的字眼来概括这个趋势,在社会化网络的环境中,来自消费者的品牌之声,将会影响到企业的品牌管理思维,企业家和品牌经理,做出如何选择,将影响到他们的品牌的未来。
Ever wonder what is stored in InnoDB buffer pool at the moment ?
It is not so hard actually - we made a short patch for MySQL 5.0 which show innodb buffer pool content
The binaries, RPMS (RedHat/Centos) and full source code also available to download
P.S. There is Jeremy Cole's patch for InnoDB plugin MySQL 5.1, and main idea was taken from there.
Entry posted by Vadim | 4 comments
Another round of mini-mockups and multiple choice questions awaits the first 5000 respondents. WordPress 2.7 UI Survey #2 is now available to take your opinions regarding:
The survey (hosted by the good guys over at PollDaddy.com) will automatically close after receiving 5000 responses, which only took about two days for the navigation survey, so hurry over and cast your votes.
Note: when the survey has closed, these links will be disabled and this post will be updated.
九月 2008 | ||||||
一 | 二 | 三 | 四 | 五 | 六 | 日 |
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |