Archive for 九月, 2010

Is Terracotta’s BigMemory a big thing?

星期四, 九月 30th, 2010

Terracotta最近推出了个新东西–BigMemory,使得Infoq上的这篇Terracotta’s BigMemory Aiming to Eliminate Garbage Collection for Java Caches文章引来长长的争论。像GigaSpaces、Infinispan等和Terracotta有竞争关系的商业或开源的对手,对BigMemory的诸多方面提出了疑问和质疑。如果BigMemory真的如Terracotta吹的那般好,那些竞争对手该情何以堪?就算它真的好,也要挑出它的不是,比如就有评论说现在都分布式年代了,还搞什么单JVM实例优化?暂且放下这些争论,看看BigMemory是个怎样的东西,值得大家如此大动神经。

Facebook的Online Schema Change for MySQL

星期三, 九月 29th, 2010

Feng的 Facebook 针对 MySQL 开源 Online Schema Change 代码 介绍了 Facebook最新开源的在线修改mysql schema的工具,并对该工具极尽赞扬之辞。于是乎,我这个有大半年没动过mysql的人翻看起该工具的文档Online Schema Change for MySQL,并简单的浏览了其代码OnlineSchemaChange.php。总的来说,尽管其实现思想很朴素,这个工具真的很实用,它借鉴的openark-kit似乎发布了很长时间,只是名头没有Facebook的guys响亮,知道的人似乎不多。openark上的其他工具也很不错,比如ycheckpoint,就是个很不错的监控mysql运行状态的工具。

分享:Playfish’s Social Gaming Architecture

星期三, 九月 22nd, 2010

highscalability.com上的Playfish’s Social Gaming Architecture – 50 Million Monthly Users and Growing是篇很不错的大杂烩,内容涉及全球第二大social game公司Playfish的技术架构、产品设计、团队协作、产品运营等诸多经验之谈,尤其对初创团队很有借鉴意义。我这里还只是对文中提到的一些技术经验做些汇总,也推荐大家去浏览原文,重点看看自己感兴趣的段落。但说起架构的事情,其实看多了,往往都是大方向上相似,细节上有自己的考量和特点,以形成自己的架构风格。

mongodb MapReduce使用初步

星期六, 九月 18th, 2010

最近在做搜索的查询日志的统计分析,对每一条查询统计日志,我将其解析出来后以特定字段格式存在mongodb中,定时调度做些统计分析。其中有个需求是,统计某个时间段(每天、每周、每月)各个query的查询次数,展示上就是热门查询query了。考虑到处理的数据量不会很大,解决方法也可以简单来之。我现在使用的方法就是mongodb的MapReduce功能,其实这个需求也可以认为是个group操作,而mongodb的group功能就是基于MapReduce的,但group对结果集的大小是有限制的。本文就针对一个示例介绍一下mongodb MapReduce功能。

[Solr实践]自定义SolrEventListener实现searcher的autowarm策略

星期天, 九月 5th, 2010

Solr的searcher autowarm(预热)有两个时机,一个是系统启动时(firstSearcher),一个是使用新的searcher替换旧的searcher时(newSearcher)。Solr支持在solrconfig.xml中对SolrCore配置SolrEventListener来实现自定义的autowarm。通常来说,Solr提供的默认实现QuerySenderListener就够用了。在我的需求中,希望solrconfig.xml中配置的SolrEventListener是针对多个SolrCore的,这要是因为我的多个SolrCore共用了一个solrconfig.xml配置。就配置autowarm的查询query来说,简单的就是配置一个常见的query,但如果系统有排序查询(sort),可以配置适宜的sort条件以预热lucene的fieldCache。下面是我自定义的SolrEventListener,效果是,如果SolrCore没有配置query,就使用default的,否则使用自己的。