坚信科学,分享技术

2018全新版本,未来在blog.54chen.com更新博客!

>>>尝试更加利于阅读的2014版科学院,以后都在新版上写。

Category Archives: 架构研究

大负载网站架构相关的研究记录。

近期分布式相关文章汇总

号外: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网站的分布式存储系统文档

Continue reading

Posted in linux, 架构研究 | Tagged , , | Leave a comment

用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 …

Continue reading

Posted in linux, 架构研究 | Tagged | 5 Comments

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

Continue reading

Posted in linux, 架构研究 | Tagged , | 8 Comments

一场技术的圣战: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所示 :

Continue reading

Posted in 架构研究 | Tagged , | 5 Comments

mysql explain详解

doubanclaimed89ad216b01beaf 题注:感谢suchasplus兄弟在第一时间提示explain拼写错误~~~:) 对于经常使用mysql的兄弟们,对explain一定不会陌生。当你在一条SELECT语句前放上关键词EXPLAIN,MySQL解释它将如何处理SELECT,提供有关表如何联合和以什么次序的信息。 借助于EXPLAIN,你可以知道 1)你什么时候必须为表加入索引以得到一个使用索引找到记录的更快的SELECT。 2)你也能知道优化器是否以一个最佳次序联结表。为了强制优化器对一个SELECT语句使用一个特定联结次序,增加一个STRAIGHT_JOIN子句。 官方的关于explain的文档在http://dev.mysql.com/doc/refman/5.1/en/using-explain.html(英文),本文可作为官方文献的不完整通俗读物。 使用的方法 EXPLAIN tbl_name 或: EXPLAIN [EXTENDED] SELECT select_options 前者可以得出一个表的字段结构等等,后者主要是给出相关的一些索引信息,而今天要讲述的重点是后者。 举例 mysql> explain select * from event; +----+-------------+-------+------+---------------+------+---------+------+------+-------+ | id | select_type | table | type | possible_keys | key

Continue reading

Posted in 架构研究 | Tagged , | 3 Comments

Qcon北京2010相关ppt下载

QCon是由C4Media媒体集团InfoQ网站主办的全球顶级技术盛会,每年在伦敦、旧金山、东京、北京召开。2009年4月,QCon首次登陆北 京。大会吸引了500多名架构师、项目经理、资深开发者和技术领导者、以及100多家企业的参与,并获得了业界空前的好评!2010年,QCon全球企业 开发大会(北京站)将于4月23日~25日,在北京京仪大酒店举行。大会将开设包括架构、语言、敏捷、SOA、BAAP、案例在内的6大主题,邀请40多 名国内外著名讲师授课,预计将有200多家企业、500多名来自业内的资深人士参会。 QCon回忆录 4月24日QCon现场直播流水帖 54chen有幸参加并记录了Qcon24日的全过程,上周接到会议的ppt,大小共计90M左右,在网上看到TimYang大侠和blogKid都有提供下载,无赖因为文件太大,反而没有办法持续提供,周末想想,根据以前我发802.1x代码的经验,可以让需要的同志提供email,我转发过去,前提是你要准备个有90M左右空间的邮箱,我是用gamil发过来的,分成了4个部分,一部分20M的附件。慢慢享用吧!需要的同志请留言留下email地址,通过RSS看到本文的同志,如果点feedburner的url被墙的话,请点击下面的地址进来: http://www.54chen.com/architecture/qcon-beijing-2010-related-ppt-download.html

Continue reading

Posted in 架构研究 | Tagged | 144 Comments

QCon回忆录

在前天(2010年4月24日),有幸参加了第二届的QCon北京全球企业开发大会。会上有来自facebook\twitter等国际知名企业的技术高手,和来自国内一线互联网公司的高手,对相应研究的主题进行了深刻的交流。 大早爬起床来,困顿中来到大钟寺附近,寻找到目标酒店。 找到目标、进入,入口很开放,不需要有效证件,能找到自己的牌子就能进去了。领了写上自己名字的牌子挂上脖子,感觉质量差了点。 凭感觉上楼,无特别标识。找到主会场。 未遇到同事,领同声传译耳机,无身份证,不给领。正巧电话淘宝老同事正赴现场,帮领,一枚。 会议开始,现场满座。 第一场,万众期待的eclipse之父Erich Gamma没有出现,颇有些失望。取而代之的是一场敏捷开发管理的内容。相关的现场笔录在 http://www.54chen.com/architecture/april-24-live-stream-qcon-posts.html 第二场,facebook的大侠,讲他们咋用memcached,这哥们具说是设计了个memcache的udp读取的方法,得了个美国的奖。同声传译的影响太大,断断续续的理解了些大概,感觉他们用的二级甚至三级的memcache的方案是很不错的。这哥们自己也同意,方法有些山寨,但好用才是王道。他一定不知道什么是“山寨”。 第三场,twitter的大侠上场,兄弟胡子好浓密呀,哪国人仕?胡子浓密的一定是高手。讲了他们在使用时间片的分步数据方案时的问题。 然后基本上就到了中午十二点了。。。开饭时间一到,拖了十分钟,结束了早上的会议。 同淘宝的老同事一起吃饭,不到四十分钟吃饭的时间。 回到

Continue reading

Posted in 架构研究 | Tagged | 4 Comments

4月24日QCon现场直播流水帖

才连接上3G,开始直播 Eric Gamma因为冰岛火山灰原因,没能到,更换成了Scurm的主席   1.scrum agile 30+years管理经验 存在的问题: 1.在公司和团队的环境中,存在沟通问题 2.组织的管理层没有关注到知识性的工作与体力性工作之间的差异 3.高技术的工作人员存在优先选择的问题 4.人们觉得我们不了解我们工作的复杂性 agile宣言 四项价值观: 个体和交互重于过程和工具 可工作软件重于详尽的文档 。。 12个原则: 要经常性地交互可用的软件,周期从几周到几个月不等到,交互的时间越短越好(经常和客户沟通) 最重要的一点:激励项目人员,调动工作经验,钱不是万能的 非常有意思的原则 面对面的交谈 可用的软件是衡量进度的主要指标 项目周期需要保持长期稳定,要有节奏,不要过多催促 技术的精益求精及对设计的不断完善将提升敏捷性 尽最大可能简洁 允许团队自己放手去做,相信你的团队成员,他们会犯错误但是可以理解的 团队经常地自我反省如何提高技术能力 Scrum 不仅仅用在软件上,其他用途也是可以的 Scrum的角色职能 ScrumMaster的误解:这个角色不是项目经理,是为这个团队提供服务的。5-12个人组织团队 产品的backlog:产品功能表 任务表:sprint backlog 在实现上述的功能,我们要做些什么,这并不是真正意义上的时间表 sprint planning:30天要完成这个工作 日常会议 sprint …

Continue reading

Posted in 架构研究 | Tagged | 7 Comments

中国博客协会挨踢技术专业委员会"哥学社"正式成立

最新的成员列表和任务列表都会记录在 http://www.54chen.com/blog-brother 中国博客协会挨踢技术专业委员会"哥学社"今日在北京成立。中国博客协会无会长、盛大代表坦克、人人网代表54chen分别在会上做了演讲。来自三大运营商的代表表示将全力支持哥学社开展工作,提升哥学社挨踢技术水平。 有容乃大在发言中总结出,回眸2009年,技术博客频发,发了又发、信息重复等非传统博客问题十分突出,网络恶意行为的趋利化特征日益明显,黑客个体、地下产业链等方面的问题都给挨踢技术带来了严峻挑战,技术整体形势日趋严峻。哥学社的成立,将有助于对发博客探讨技术提供规范化有效化管理,更好地为遇到难题解决不了的兄弟提供决策依据,有助于互联网各公司对解决方案做出全面客观的评定。大家希望,哥学社要充分发挥学社作为各大公司间的桥梁纽带作用,代表企业积极主动向大家反映他们的合理诉求,维护企业利益,促进企业和谐发展。 大家还就如何做好当前的工作提出了几点规则:一要切实增强每个会员工作的责任感、紧迫感和使命感,凡参加必须提出博客议题;二要深入开展博客内容建设,定时定量挑选有意义的博客议题进行发挥;三要充分发挥学会的支撑作用,到处宣扬,拉新鲜血液入会;四要积极拓展博客工作的服务范围,不仅仅局限在挨踢技术;五要大力开展自己博客的自律,积极主动提议题、发内容。 作者:郭庆婧    来源:人民邮电报 转自:http://www.c114.net/news/16/a495168.html 现有议题: 1.mysql explain全解 2.shorturl算法方案 3.tokyo cabine

Continue reading

Posted in 架构研究 | Tagged | 16 Comments

用java操作bdb的方法记录二

在科学院之前的一篇文章中,介绍过普通的操作BDB的方法,见: java使用bdb手记(Berkeley DB Java api记录) 下文记录的是利用BDB的事务来完成的一个put和一个get方法的代码。其速度与原始的操作方法相当。 ================================================代码段============================== /** * @author zhen.chen * @createTime 2010-2-20 上午10:43:31 */ package com.renren.nuclear.storage; import java.io.File; import java.util.ArrayList; import java.util.List; import com.sleepycat.je.Cursor; import com.sleepycat.je.Database; import com.sleepycat.je.DatabaseConfig; import com.sleepycat.je.DatabaseEntry; import com.sleepycat.je.DatabaseException; import com.sleepycat.je.Environment; import com.sleepycat.je.EnvironmentConfig; import com.sleepycat.je.LockMode; …

Continue reading

Posted in java, 架构研究 | Tagged , , | 2 Comments
Page 5 of 7« First...34567