2010-04-30 @ 00:38:07
· 作者 Volcano
上周挤到QCon的会场里,听了两场 —— Facebook的Memcached实战,以及Twitter 的可伸缩性数据架构。当时对facebook超大规模使用memcached印象很深刻,只可惜到现在也没见到这个的ppt。平时用php比较多,因此听闻同样使着php的facebook讲memcached,有些小小的感触,记录下来。
更高效的序列化函数
php有两个memcache扩展,默认都是使用php自带的序列化函数serialize来存储数组或对象。但是serialize最为人诟病的就是速度慢,序列化之后占用空间大。由于facebook已经在memcached里保存了200T字节的数据,因此序列化函数即便作出的百分之一的优化对它来说都是个不小的收益。他们发粪涂墙在thrift的binary协议基础上搞出了一个fb_serialize,据称这个序列化方法能快上3倍,快倒算了,还能节省30%空间, 200T字节的数据能节省出30%,简直就是传说中的银弹啊,这让php官方的开发人员们情何以堪?
阅读全文(1275字)
2010-04-23 @ 08:58:29
· 作者 Volcano
自从去年将xhprof用在生产环境以来,对生产环境的程序调试,性能优化都带来很多便利。但是在使用过程中,还是有一些细节需要改善。
问题
阅读全文(963字)
2010-04-18 @ 23:01:58
· 作者 Volcano
最近看到memcached扩展支持额外的序列化方式 — igbinary,这是一个未收录到pecl的php扩展,它提供的两个主要方法:
igbinary_serialize
阅读全文(1557字)
2010-03-15 @ 23:47:32
· 作者 Volcano
所谓LiteCloud,无非就是前些天提到的LightCloud的php版本实现。这个和原来的python版本有一些区别,会造成不兼容,如下:
把Consistent Hashing算法换成了ketama,在pecl的memcached扩展里有简单方法可以实现,效率比单纯的php好很多,能快个10倍吧。没有重复造轮子,因此我很是得意。
阅读全文(1844字)
2010-03-12 @ 01:37:16
· 作者 Volcano
LightCloud是最近看到的一个比较轻巧的分布式key-value数据库,尽管这类软件已经让人觉得审美疲劳,但我仍然觉得它的设计思路值得一提。
特色
除开其项目主页上列出来的特点不提,我觉得还能数得上的特色有:
阅读全文(1470字)
2010-02-28 @ 07:55:30
· 作者 Volcano
在邮件组里看到有人问能不能把多个hiphop-php编译后的程序跑在同一个端口上,想想也是合理的要求。如果一个服务器上跑了多个站点,那肯定都得用80端口,当大家共同租用服务器的时候,这个需求更为强烈。当时我所想到的解决办法是在前面搭个nginx之类的做代理,实际编译后的程序跑在别的端口,然后没过几天就看到了这份wiki – Using nginx as front server to HipHop。
简单的nginx配置示例
/etc/nginx/conf.d/ooso.conf:
阅读全文(813字)
2010-02-21 @ 18:55:15
· 作者 Volcano
不得不说,现在安装hiphop-php实在是太麻烦了,如果有rpm包一次搞定那该多好?就说周边那些零散的依赖库,也有不少安装比较繁琐的硬骨头。
Centos用户的好消息
Update: 在centos 64位机上完全通过rpm安装hiphop-php的步骤也已经提供了。
在邮件组上看到有人提供了centos下安装hiphop相关的rpm列表,把这些rpm装好,再按照wiki上专心编译hiphop即可。也许再过一阵,就会有人直接提供hiphop的rpm包,那就彻底方便了。
阅读全文(818字)
2010-02-21 @ 10:19:22
· 作者 Volcano
昨天facebook在github上发布了hiphop-php的源代码。之前听说这玩意能把php代码翻译成c++代码,然后带来巨大的性能提升,所以第一时间编译了一份hiphop-php。
我的机器环境是
Centos 5.3 x86_64
阅读全文(1052字)
2010-02-11 @ 23:34:19
· 作者 Volcano
facebook在GitHub上托管了大量的开源项目,足足有26个。其中hiphop-php以及xhp在这阵子炒的比较热,的确是让人印象深刻的东西。顺手把别的项目翻出来看,也有很实用的工具,比如git-review。
git-review为git新增了一个很方便的代码review途径,利用这个命令,可以调用别的工具比如vimdiff来review代码的改动。下面简单记录一下使用的过程:
下载并安装
首先确认已经装好了git,剩下的事情比较简单。
阅读全文(711字)
2010-01-04 @ 12:32:41
· 作者 Volcano
目前使用的服务器为centos,使用yum以及rpm来维护系统好处多多:
安装卸载,升级rpm软件包只需一条命令即可
阅读全文(535字)