Author Archives: 54chen
用sphinx轻松搞定方便管理的多节点过亿级数据搜索
概述 来自俄罗斯的开源全文搜索引擎软件Sphinx,单一索引最大可包含1亿条记录,在1千万条记录情况下的查询速度为0.x秒(毫秒级),实测千万级数据在0.0X秒和0.00X秒占大多数。 Sphinx创建索引的速度为:创建100万条记录的索引只需3~4分钟,实测30W线上复杂的blog数据需要5分钟,创建1000万条记录的索引可以在50分钟内完成,实测时间比这个更长得多,而只包含最新10万条记录的增量索引,重建一次只需几十秒,实测十万条在一分钟不到的时间。 Sphinx 是一个基于 GPL 2 协议颁发的免费开源的全文搜索引擎.它是专门为更好的整合脚本语言和SQL数据库而设计的.当前内置的数据源支持直接从连接到的 MySQL 或 PostgreSQL 获取数据, 或者你可以使用 XML 通道结构(XML pipe mechanism , 一种基于 Sphinx 可识别的特殊xml格式的索引通道) 。 sphinx安装 安装见 用Sphinx快速搭建站内搜索功能 配置多节点协同工作 第一点,原理 在sphinx.conf中可以配置index段落里的local和agent两个参数,local = blog_1表示使用本地索引名为blog_1的索引,agent = 10.1.1.1:3312:blog_2表示使用10.1.1.1这个机器的3312端口上服务的blog_2索引。这两个参数均可在此段落中重复出现。 利用这两个参数,可进行节点与节点间的配置。如图1所示,一个searchd服务在接到请求时两种使用索引的示意图。 图1 一个searchd服务在接到请求时两种使用索引的示意图
一条SQL引发的对order by的思考
==========尽职的安静的分隔线=========== 在实际工作中遇到下面一个问题: 有一个表,存有2000万数据。 主键为ID bigint(20) NOT NULL auto_increment 另有一字段time timestamp NOT NULL default CURRENT_TIMESTAMP 故事从这两个字段说起: sql1需要从这个表中检索出来时间为2010-05-26 11:55:00之前并且id号大于20000的前10条数据 sql2需要从这个表中检索出来时间为2010-05-26 11:55:00之后并且id号大于20000的前10条数据 两条sql写出来大概是这样子的: sql1:select * from table where time 20000 order by id limit 10; sql2:select * from table where time >'2010-05-26 11:55:00' …
7月3日 infoQ Qclub分享演示文稿下载
本次活动以RIA为主题,参会者多为关心RIA及后端数据服务的开发者和管理者。 我的主题是:"Ria的强力后盾:rest+海量存储 主要内容是给参会者分享了淘宝在nginx上作的关于rest的事情,和一些人人网nuclear的原理。 下面是此次会上我所使用的slide。(国外 有点慢 需忍) Ria的强力后盾:rest+海量存储 View more presentations from zhen chen.
近期分布式相关文章汇总
号外:http://url.cn/0ThU83 infoQ的线下技术活动Qclub本周六在知春路京仪大酒店举行,我给沙龙参会者分享来自人人网nuclear的开发经验以及如何运用在RIA上. 1.54chen解读NoSQL代表Dynamo 这篇文章颇费了心思从构思到成文,把dynamo原理描述得还算是清楚。 2.4月24日QCon现场直播流水帖 这篇是在QCon大会上现场记录的一些不算是太完整的笔记 4.java线程控制器代码分享-根据cpu情况决定线程运行数量和情况 一个根据cpu来执行的线程控制器实现,评论中有高人改进方案。 5.jdbc socketRead0 locked 记一个Mysql的不明bug 在开发nuclear过程中遇到的一个jdbc的bug 6.LinkIn基于Dynamo设计的系统:伏地魔(voldemort)设计中文文档[我是陈科学院译]-完稿 54chen翻译的一个来自国外SNS网站的分布式存储系统文档
用Sphinx快速搭建站内搜索功能
Sphinx[英] [sfɪŋks] [美] [sfɪŋks] 出自俄罗斯的开源全文搜索引擎软件Sphinx,单一索引最大可包含1亿条记录,在1千万条记录情况下的查询速度为0.x秒(毫秒级)。Sphinx创建索引的速度为:创建100万条记录的索引只需3~4分钟,创建1000万条记录的索引可以在50分钟内完成,而只包含最新10万条记录的增量索引,重建一次只需几十秒。 Sphinx 是一个基于 GPL 2 协议颁发的免费开源的全文搜索引擎.它是专门为更好的整合脚本语言和SQL数据库而设计的.当前内置的数据源支持直接从连接到的 MySQL 或 PostgreSQL 获取数据, 或者你可以使用 XML 通道结构(XML pipe mechanism , 一种基于 Sphinx 可识别的特殊xml格式的索引通道) 下面发出操作记录: 10106 wget http://www.coreseek.cn/uploads/csft/3.2/csft-3.2.12.tar.gz 10107 wget http://www.coreseek.cn/uploads/csft/3.2/mmseg-3.2.12.tar.gz 10109 tar -zxvf mmseg-3.2.12.tar.gz 10110 tar -zxvf csft-3.2.12.tar.gz 10111 cd …
54chen解读NoSQL代表Dynamo
本文已经首发于InfoQ中文站,版权所有,原文为《解读NoSQL技术代表之作Dynamo》,如需转载,请务必附带本声明,谢谢。 InfoQ中文站是一个面向中高端技术人员的在线独立社区,为Java、.NET、Ruby、SOA、敏捷、架构等领域提供及时而有深度的资讯、高端技术大会如QCon、免费迷你书下载如《架构师》等。 NoSQL在过去的一年里,逐渐已经成为了家喻户晓的东西,我(54chen)自从去年开始人人网的NoSQL系统Nuclear的研发以来,一直看着NoSQL越来越热,越来越引来大家的围观。受infoQ霍师傅之托,特作此文,一来作过去一年的总结,二来希望以平白的话语对NoSQL系统在国内的发展献绵薄之力。 1.我眼中的两种模式 NoSQL其实并不是什么妖魔鬼怪,相反的,NoSQL的真谛其实应该是Not Only SQL,其产生是在数据量和访问量的增大下,人为地去添加机器、切分数据到不同的机器,变得越来越困难,人力成本越来越高,于是便开始有了这样的项目,本意是提高数据存储的自动化程度,减少人为干预的时间,让负载更加均匀。在国际上,真正的代表之作有来自Google的 BigTable 和Amazon 的Dynamo,他们分别使用了不同的基本原理。 1.1 MapReduce 这是历史最久的一种模型,典型的代表是BigTable。Map表示映射,Reduce表示化简。MapReduce通过把对数据集的大规模操作分发给网络上的每个节点实现可靠性(Map);每个节点会周期性的把完成的工作和状态的更新报告回来(Reduce)。大多数分布式运算可以抽象为MapReduce操作。Ma
跨系统共享键盘鼠标利器分享:synergy
是这样的张总, ?在家里的电脑上按了CTRL+C,然后在公司的电脑上再按CTRL+V是。。。肯定不行的。即使同一篇文章也不行。不不,多贵的电脑都不行。 --题记 端午归来,特此总结,实现上述难题,靠一利器:synergy 此利器可打通mac\linux\windows任意两者的联系,使两个系统共享鼠标和键盘。下面以ubuntu 10.04与盗版windows XP为例。 首先,在ubuntu下面,建立服务端。 #sudo apt-get install synergy quicksynergy #quicksynergy 启动后如图所示: 只需要填写上下左右中的某一个位置修改成另一台机器的机器名,点击执行,常驻运行即可。 然后,在windows下面,安装客户端。 Synergy 1.3 Client 安装运行后如图: 输入Ubuntu机器的ip地址,点Start即可连上两机。 连上之后,可以撤掉在你办公桌面上的一个键盘,鼠标移动到哪个桌面上,键盘针对哪个系统输入,非常好用,还支持复制粘贴,对上班时候用两台电脑的同学非常适用。
一场技术的圣战:rose开源框架之portal
作者:人人网架构师 王志亮 (54chen按:此文为客座博文,王志亮大侠,人人网架构师,疱丁分词创始人,rose是他的另一开源大作。关于69圣战,请看http://zhidao.baidu.com/question/158643718.html?si=2&wtp=wk) 2010年的6月9日是一个圣战的日子,零点一到就有人开始,好戏也如约在晚上7点发生。人人网战场是SJ的公共主页:http://page.renren.com/sj 对不同人,这个日子意味着不同,滋味也不同。作为人人网技术团队,我们要保证服务能力、用户体验能够应付得了这个挑战。 某一个服务器的能力总有限,为了应付突然增长的读写量,web服务架构、内部服务架构、数据库架构等要能够轻松通过服务器调配来满足。就web服务器而言,我们增加了1倍的机器。现在再回头来看监控的数据,一切显得美好。这个期间整个服务做到了服务能力没有中断。除此之外,在这次圣战中,其中还有一项我们独有的技术起到了重要的作用:rose portal ,下面作一个介绍: 图1是sj的主页: 图1 sj在人人网的公共主页 这个页面分为三列: 左边有 “推荐给好友”、“基本信息”、“相册”; 中间有“给SJ留言”、“好友留言”; 右边有“好友”,“人人的用户还关注”等。 在后台,这些被分解为不同的模块,我们称之为”window”。这每一个window都意味着可能连接一个独立的服务集群,比如基本信息服务、留言服务、好友服务、相册服务等等。这样,一个公共主页就等于多个独立的、可配置的window模块组成,如图2所示 :
ubuntu 10.04 LTS版本下的Empathy MSN群聊显示昵称方法
1.关系普及 Empathy是个托,python-papyon是个python实现的msn库,telepathy-butterfly是个完成msn功能的python客户端。 2.修改办法 sudo vim /usr/share/pyshared/papyon/conversation.py 查找 if message_type == 这个字符串 找到内容为: if message_type == 'text/plain': msg = ConversationMessage(unicode(message.body, message_encoding), TextFormat.parse(message_formatting), self.__last_received_msn_objects) try: display_name = message.get_header('P4-Context') 将if判断后try之前中间定义msg这一堆内容修改为如下: try: msg = ConversationMessage(unicode("["+message.get_header('P4-Context')+"]"+message.body, message_encoding), TextFormat.parse(message_formatt
SEARCH
Update
- rose手册第三章三节:controller层:ErrorHandler支持
- 54chen Twitter memo 2012-05-13
- 54chen Twitter memo 2012-05-06
- rose手册第三章二节:controller层:拦截器支持
- 54chen Twitter memo 2012-04-29
- rose手册第三章一节:controller层:url对照规则与返回结果规则
- 54chen Twitter memo 2012-04-22
- 54chen Twitter memo 2012-04-15
- rose手册第二章:配置与使用
- 54chen Twitter memo 2012-04-08
- 54chen Twitter memo 2012-04-01
- rose手册第一章:入门指引
- 54chen Twitter memo 2012-03-25
- 54chen Twitter memo 2012-03-18
- senseidb使用手记
