存档

2010年4月 的存档

paxos算法解决单点问题与资源定位

2010年4月29日 闫鹏 没有评论

今天早茶的topic。介绍了paxos算法与zookeeper相关的内容,可以解决单点问题觉得还挺实用的。这个算法由三个不同类型的实体,通过投票的方式决策出一个值传播到网络中,实现分布式数据的统一,使各个节点不会各自为政。

paxos是一种比较主流的算法,google与微软的集群都用这个,具体参与进来的有三个实体:

1.提议者:提议者发起新的提议,比如设置某个值。每个提议都有个编号。提议者根据参与者的反馈,多数参与者赞同的提议就获得通过。

2.参与者:参与者对提议者的提议进行投票,将投票结果反馈给提议者。当有多个提议时,参与者倾向于接受编号大的提议。例如已经接受编号n的,此时收到了编号为n-1的提议,就会拒绝

3.接受者:接受提议者与参与者的决策(获得投票通过的提议)。

一个典型的也是最简单的流程:

 Client   Proposer      Acceptor     Learner
   |         |          |  |  |       |  |
   X-------->|          |  |  |       |  |  Request
   |         X--------->|->|->|       |  |  Prepare(N)
   |         |<---------X--X--X       |  |  Promise(N,{Va,Vb,Vc})
   |         X--------->|->|->|       |  |  Accept!(N,Vn)
   |         |<---------X--X--X------>|->|  Accepted(N,Vn)
   |<---------------------------------X--X  Response
   |         |          |  |  |       |  |

如图,为了简单理解,可以认为proposer与acceptor是相同功能server构成的一个集群,client可以认为是一个外部的用户,发送一个请求到集群后,集群中的一个server扮演提议者角色发起一个提议,后面的三个accepto进行投票,投票反馈给提议者后发现获得通过,acceptor将信息扩散给接受者。这样整个集群中就针对这个提议达成了一致。

根据这个算法,接受者收到的信息是顺序的,不会产生乱序的问题。所以对于需要序列化的服务,就可以使用这种方式将单点整成多点,避免运维风险。

还有一些更复杂情况以及一个极端情况请见参考资料吧,另外:

1.集群中有多少个节点,首先就是各个节点就是要知道的。集群中要想增加一个新的节点比较麻烦

2.当集群中有效的节点数是少数时,算法会失效

zookeeper是用来协调分布式应用的,用于维护资源信息,它的关键算法就是用的paxos来做的。当然,在其上也有一些更复杂的内容。提供服务的节点作为client链接到zookeeper上面,与zookeeper保持心跳。当client宕机,zookeeper中的一个服务节点发现后就会通过投票流程来判定这个client挂掉了,其它依赖于这个client的服务作为算法中的接受者,收到挂掉的信息后,将依赖改到其它的client上面去。当然,也存在client断开zookeeper中的一个节点后连到zookeeper的另外一个节点,但因为算法保证了发送给client断开与联通消息的顺序,也是可以满足需求的。

在我看来,zookeeper的最大作用是使资源配置服务器本身从单点变为多点,避免了单点运维的问题。对于paxos算法还是很不错的,对于需要将系统中需要将命令序列化,而又希望避免服务单点是一个非常有效的方法。

参考资料:
1.Paxos algorithm
2.zookeeper

分类: 程序员 标签:

excel打开csv文件篡改问题/excel-数字-尾数变0-数字前加0

2010年4月28日 闫鹏 没有评论

整数据统计,用脚本从数据库里面导出来成csv后,提供给pm。但这还不算晚,pm有时候会说,提供给她的数据不会用…,打开后显示的结果不对…

具体原因就是打开的使用的excel,比如对于2010040190000100021110016400229这种数据,在excel里面就会变成2.0100401900001E+30。即使再excel里面再设置格式也不行了,数据已经被它认为是数字,被科学计数的方法给忽略了最后的部分了,通过设置单元格式恢复后,只能显示为2010040190000100000000000000000。

尾数就变0了,真是悲剧。同样,数字的前面也可能变零,还需要自己在数字前加0。

今天谷哥支援了一把,发现可以通过这种方式解决:

在excel2007里面,通过:数据-自文本,然后选好你的csv文件,进入下面提示框:

导入自文本

随后在下面的步骤中,将你需要的列选择成文本的:

选择列格式

这样,出来的结果就是正常的,可以直接给pm xls文件啦

分类: 软件 标签:

一举多得与社会再分配

2010年4月26日 闫鹏 4 条评论

家乡顺义正在进行大规模拆迁,几乎所有的村子都要拆了盖成楼房,其中下营村因为有夏占义的存在,得到了特殊优待,改造成自然村,就是所有的村民都住进联排别墅,而其他的村子则是让村民住进公寓房。对此咱们不做啥评论,这是中国特色。

听闻要拆迁了,顺义家家户户都行动起来,一时间,各个村里都是一片热火朝天的盖房景象,各家各户几乎盖的房子之间只留下一条不到一米的过道。在严重降低了生活质量的同时,所有的建筑相关材料价格猛涨,旧材料和新材料一个价,一平米的房子造价从以前的600元左右上升到800元左右。

人民大众关心的热点问题,报社与政府相应的也是挺积极的,前些天,晚报上给出了拆迁补偿款的计算方法,其中规定房屋的拆迁费用为400-800元没平米。静观事态发展吧:我想村民们是不会同意这个价格的,即使不赚钱,但赔钱是没人干的。

去前也不是没有拆迁的村子,在各种拆迁方案中,无论怎么选,赔偿的钱也就是刚刚买得起一个楼房的单元门,劳动人民还是劳动人民。

至于好处:

1.对劳动人民来说,住进楼房了,免去了冬天自己烧暖气的烦恼。

2.对于我党我军来说:

2.1是一项政绩工程,改善了人民的生活水平,节省了大批的住宅用地。

2.2剩下的地方盖商品房或者商业区之类的,还能谋取巨大的利益。

2.3创造了大量的房屋供给,有助于控制稳定房价。

虽然我党我军多占了点,看起来对劳动人民的好处也是不错,但实际上还存在下面的问题:

1.宅基地从大面积的带院子的永久使用权变成了小面积的70年使用权的经济适用房,同样还是手里没设么钱。人民走向富裕的进程没有任何变化。

2.农村里面盖房子,多是3.6米层高的,想象一下在商品房均价价1.3万每平米的商品房中,还有很多是层高2.7米的,拆迁重置房能超过2.7米么?

3.现在有钱人都追求住四合院,不用说也知道哪个好。不多这个两说,富人和穷人的追求确实还是不同的。

如果让你选,一个院子换成经济适用房,你选哪个?

分类: 生活, 经济 标签:

利用语言的动态特性减少switch

2010年4月21日 闫鹏 没有评论

以前也曾写过这样的代码,但没有特殊注意过,今天大家讨论收银台的问题时候,再提起这样的设计,却感觉非常有效。

因为分支很多,使用switch-case几乎是不可避免的,而这对与代码的维护与理解却不是一件很好的事情,在增加分支的时候,也是一种比较郁闷的事情。利用语言的动态特性与模块化的设计,可以在一定程度上减轻这种问题。

class A{};
class B{};

$arr_actions = array(
    'a' => 'A',
    'b' => 'B',
);

function do_action_no_switch($action){

    global $arr_actions;

    if(!array_key_exists($action, $arr_actions)){
        return false;
    }   

    $job = new $arr_actions[$action];

    //job->do...
}

do_action_no_switch('a');
分类: 程序员 标签:

互联网企业进军电视趋势明显/dell优惠券

2010年4月19日 闫鹏 5 条评论

不知道为啥,dell总是给我发优惠卷,需要的朋友请留言。

robin曾经说过,百度的目标是成为媒体,而不是新媒体。百度还没看到啥明显的举动,但随着互联网对劳动人民生活的影响越来越大,各互联网企业已经开始在电视上频频露脸了。

比如最近各电视台风行的征婚交友节目,世纪佳缘不断出现。比如电视上频频出现的秒杀活动,淘宝还是什么购物网站来的,也总是被不断提起。

全方位包围的时代就要开始鸟,不过也只是就要而已嘎嘎,只有广电总局的才能决定这个时间点

分类: 互联网, 生活 标签:

汽油-坠机-生活

2010年4月15日 闫鹏 3 条评论

波兰出现一次大事故后,水木上很多同学都在问汽油是不是要涨价了,果然,就在发改委宣布汽油涨价后,美国海军一架飞机坠毁 3人丧生,印尼一客机坠河解体致20人受伤

有网友调侃:

发改委再次上调油价,美国各大航空公司宣布进入1级战备状态,而欧洲三大航空公司宣布明天停飞一天,东航、南航、国航新闻 发言人则表示:将用实际行动支持发改委的英明决定,明天加飞多个航班。

汽油涨价与坠机

这不,连新京报也来凑热闹,帮忙宣传一把政府的灰色幽默。

据米葛说,米国的油价大概折合人民币5元多,对米国人来说,一升油也就几毛钱吧,在认为米国1美元购买力与中国1人民币购买力差不多的情况下,米国人买汽油比我们买矿泉水还便宜!悲愤乎?

昨天回家的时候跟出租车师傅聊起社会收入分配不均等的问题,他说普通人挣钱少,是因为为祖国贡献小。真是一个品格高尚的好青年啊,祖国不爱你,你还爱祖国,想着做贡献~~。

想到“愤青”这个词的原意,我倒是觉得“愤怒”的成分少一些“悲愤”的成分多一些吧。在这片神奇的土地上,忍受着我们的石油企业在国外股市给人的巨额分红,忍受着低效率生产出来的油低价卖给人家还享受政府补贴,忍受着….

神州生活既是如此,如果你是那3000个控制了22万亿的家庭中一员,你就是这世界上最幸福的人,如果你不是,你也不是这世上最倒霉的,毕竟还有更惨的呢是吧

《亵渎》这本书里面有个说法:沿着这个制度向上走才能走的更快,随后你才能改变这个制度

作为普通百姓的我们,可能永远也无法与上流社会有交集,但总也要给自己个盼头,现在的大官僚大资产阶级原始积累阶段,再有两代人就要结束了吧。

分类: 生活 标签: