<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>五四陈科学院-坚信科学，分享技术 &#187; 校内</title>
	<atom:link href="http://www.54chen.com/tag/%e6%a0%a1%e5%86%85/feed" rel="self" type="application/rss+xml" />
	<link>http://www.54chen.com</link>
	<description>PHP、JAVA、缓存、架构、经验、分享</description>
	<lastBuildDate>Sat, 11 Feb 2012 17:09:00 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>为人人设计的分布式key-value系统架构[原创]</title>
		<link>http://www.54chen.com/architecture/design-for-all-key-value-of-the-distributed-system-architecture-original.html</link>
		<comments>http://www.54chen.com/architecture/design-for-all-key-value-of-the-distributed-system-architecture-original.html#comments</comments>
		<pubDate>Sun, 09 Aug 2009 11:12:07 +0000</pubDate>
		<dc:creator>cc0cc</dc:creator>
				<category><![CDATA[架构研究]]></category>
		<category><![CDATA[cabinet]]></category>
		<category><![CDATA[人人]]></category>
		<category><![CDATA[分布式存储]]></category>
		<category><![CDATA[校内]]></category>

		<guid isPermaLink="false">http://www.54chen.com/architecture/design-for-all-key-value-of-the-distributed-system-architecture-original.html</guid>
		<description><![CDATA[<a href="http://www.54chen.com"><img border="0" src="http://www.54chen.com/wp-content/themes/54chen2011/images/54chen-logo.gif"></a><br>以下内容由<a href="http://www.54chen.com">[五四陈科学院]</a>提供<br>[作者：陈臻 转载请注明出处：http://www.54chen.com/714-design-for-all-key-value-of-the-distributed-system-architecture-original/ 版本：1.1  2090810] 8.10 增加dev4server组里esx大侠提出的几个代表性问题 这个架构的产生，是为了公司的一个新项目，而后来慢慢变成了解决整个公司的所有问题的一个架构，期间经yahoo的angentZh先生、dev4server组里张立冰先生、盛大的许式伟先生推荐研究了bigtable、Dynamo等很有代表性的分布式架构。 如下图所示： 总体：底层以key-value存储，每个节点内作主主互备，节点以一致性哈希存取，哈希所使用的key为relation-key，非直接存取时的key。 step 0：连接客户端收到一个key为relatioin-key_id的存取请求，取出relation-key进行一致性哈希计算，这里是为了让相关的内容都能存在一个节点上，类似bigtable的tablet； step 1：连接客户端读取最新的配置文件，server.conf。 step 2：根据配置文件寻找正确的节点。 step 3：在B节点之间增加了一个节点A的时候，A前的虚拟节点将寻找不到数据，此时连接客户端会重新读取老的配置文件server.conf.1，根据老的配置，这里的数据会去B节点读取原来的数据，读到的数据会转移到新增加的节点A中。 step 4：增加节点A后，服务器端会同时运行手动的转移脚本，转移脚本直接将B节点中符合A节点的存取规则的数据全部转移，转移结束将操作server.conf.1，进行删除老配置文件的操作。 这个架构的特点： 1.底层的key-value引擎并不特指某种，用cabinet或者是mysql都是可以的； 2.增加或者删除节点都可以是半自动+半手动或者是全手动处理； 3.适合大多数大型网站任何业务。 这个架构的名字：未命名 1. 速度：relation-key存储的方式，使相关性强的数据都在一起，保障批量的速度； 2.容灾：底层master-master同步的DB保障了其中一台出现故障不会影响整个系统； 3.扩展：手动加自动的方式使扩展节点应对自如。 Q&#38;A: Q:如何发现是找不到数据，而不是数据本来就没有？ A:系统中有server.conf server.conf.1 server.conf.2....只检测历史配置文件，如果手动迁移数据结束，历史配置文件将被删除。 Q:节点A进入时，是否能有选择的向B所要数据？ A:这里的确是忽略了同一个key的数据的版本控制的问题。如果先执行了手动脚本再存到A结点是正常的，如果先存到A再执行手动脚本，会出现老数据盖了新数据。不知有啥好的idea没? Q:所要数据后，何时算完成？因为B可能一直在有新数据生成。 A:如果是新的配置文件上来了，写入B的数据应该就已经是新的规则了，这样，只需要手动执行的脚本循环当前的数据一圈，其中的数据自然是正确无误的了。手动脚本完成后删除老的配置文件标志迁移结束。 Q:完成后，节点A如何生效？ A:老的配置文件删除前，读数据操作是半生效状态（逐步恢复）；老的配置文件被删除后，A节点的读写都自然生效了。 Q:容灾，如果节点A掉了，那B上是否有A所保存的信息？ &#8230;<br><br>想快点找到作者也可以到Twitter上留言: <a href="https://www.twitter.com/54chen" target="_blank">@54chen</a><br>或者你懒得带梯子上墙，请到新浪微博：<a href="http://t.sina.com.cn/54chen" target="_blank">@54chen</a>]]></description>
			<content:encoded><![CDATA[<a href="http://www.54chen.com"><img border="0" src="http://www.54chen.com/wp-content/themes/54chen2011/images/54chen-logo.gif"></a><br>以下内容由<a href="http://www.54chen.com">[五四陈科学院]</a>提供<br><p>[作者：陈臻 转载请注明出处：<a href="http://www.54chen.com/714-design-for-all-key-value-of-the-distributed-system-architecture-original/">http://www.54chen.com/714-design-for-all-key-value-of-the-distributed-system-architecture-original/</a> 版本：1.1  2090810]</p>
<p>8.10 增加dev4server组里esx大侠提出的几个代表性问题</p>
<p>这个架构的产生，是为了公司的一个新项目，而后来慢慢变成了解决整个公司的所有问题的一个架构，期间经yahoo的angentZh先生、dev4server组里张立冰先生、盛大的许式伟先生推荐研究了bigtable、Dynamo等很有代表性的分布式架构。</p>
<p>如下图所示：</p>
<p><a href="http://www.54chen.com/wp-content/uploads/2009/08/e7bb98e59bbe1.jpg"><img class="aligncenter size-full wp-image-715" title="e7bb98e59bbe1" src="http://www.54chen.com/wp-content/uploads/2009/08/e7bb98e59bbe1.jpg" alt="" width="500" height="582" /></a></p>
<p>总体：底层以key-value存储，每个节点内作主主互备，节点以<a href="http://www.54chen.com/705-peer-to-peer-distributed-hash-algorithm-in-the-mainstream-of-comparative-analysis-of-the-collection/">一致性哈希</a>存取，哈希所使用的key为relation-key，非直接存取时的key。</p>
<p>step 0：连接客户端收到一个key为relatioin-key_id的存取请求，取出relation-key进行一致性哈希计算，这里是为了让相关的内容都能存在一个节点上，类似bigtable的tablet；</p>
<p>step 1：连接客户端读取最新的配置文件，server.conf。</p>
<p>step 2：根据配置文件寻找正确的节点。</p>
<p>step 3：在B节点之间增加了一个节点A的时候，A前的虚拟<a href="http://www.54chen.com/399-yahoo%e3%80%81tao%e4%ba%91%e8%ae%a1%e7%ae%97%e5%88%a9%e5%99%a8%e4%b9%8b%e2%80%9c%e4%ba%91%e2%80%9d%e7%ab%af%e7%9a%84%e5%b0%8f%e9%a3%9e%e8%b1%a1%e2%80%94hadoop/">节点</a>将寻找不到数据，此时连接客户端会重新读取老的配置文件server.conf.1，根据老的配置，这里的数据会去B节点读取原来的数据，读到的数据会转移到新增加的节点A中。</p>
<p>step 4：增加节点A后，<a href="http://www.54chen.com/379-%e8%bd%bb%e7%82%b9%e9%ad%94%e6%a3%92%ef%bc%8c%e7%9e%ac%e9%97%b4%e5%ae%89%e8%a3%85%e4%b8%8a%e7%99%be%e5%8f%b0%e6%9c%8d%e5%8a%a1%e5%99%a8/">服务器</a>端会同时运行手动的转移脚本，转移脚本直接将B节点中符合A节点的存取规则的数据全部转移，转移结束将操作server.conf.1，进行删除老配置文件的操作。</p>
<p>这个架构的特点：</p>
<p>1.底层的key-value引擎并不特指某种，用cabinet或者是mysql都是可以的；</p>
<p>2.增加或者删除节点都可以是半自动+半手动或者是全手动处理；</p>
<p>3.适合大多数大型网站任何业务。</p>
<p>这个架构的名字：未命名</p>
<p>1. 速度：relation-key存储的方式，使相关性强的数据都在一起，保障批量的速度；</p>
<p>2.容灾：底层master-master同步的DB保障了其中一台出现故障不会影响整个系统；</p>
<p>3.扩展：手动加自动的方式使扩展节点应对自如。</p>
<h3><span class="mw-headline">Q&amp;A:</span></h3>
<p>Q:如何发现是找不到数据，而不是数据本来就没有？</p>
<p>A:系统中有server.conf server.conf.1 server.conf.2....只检测历史配置文件，如果手动迁移数据结束，历史配置文件将被删除。<br />
Q:节点A进入时，是否能有选择的向B所要数据？</p>
<p>A:这里的确是忽略了同一个key的数据的版本控制的问题。如果先执行了手动脚本再存到A结点是正常的，如果先存到A再执行手动脚本，会出现老数据盖了新数据。不知有啥好的idea没?<br />
Q:所要数据后，何时算完成？因为B可能一直在有新数据生成。</p>
<p>A:如果是新的配置文件上来了，写入B的数据应该就已经是新的规则了，这样，只需要手动执行的脚本循环当前的数据一圈，其中的数据自然是正确无误的了。手动脚本完成后删除老的配置文件标志迁移结束。<br />
Q:完成后，节点A如何生效？</p>
<p>A:老的配置文件删除前，读数据操作是半生效状态（逐步恢复）；老的配置文件被删除后，A节点的读写都自然生效了。<br />
Q:容灾，如果节点A掉了，那B上是否有A所保存的信息？</p>
<p>A:一个节点下有至少两个物理实际节点做主主备份，上面是一个带网络检测和自动选取连接的工具，虚拟成一个节点，换句话说，A节点两台机器全部坏掉的可能性这里视为零。</p>
<br><br>想快点找到作者也可以到Twitter上留言: <a href="https://www.twitter.com/54chen" target="_blank">@54chen</a><br>或者你懒得带梯子上墙，请到新浪微博：<a href="http://t.sina.com.cn/54chen" target="_blank">@54chen</a>]]></content:encoded>
			<wfw:commentRss>http://www.54chen.com/architecture/design-for-all-key-value-of-the-distributed-system-architecture-original.html/feed</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>校内正式更名  人人等你参与</title>
		<link>http://www.54chen.com/life/officially-renamed-the-school-waiting-for-you-all-to-participate-in.html</link>
		<comments>http://www.54chen.com/life/officially-renamed-the-school-waiting-for-you-all-to-participate-in.html#comments</comments>
		<pubDate>Wed, 05 Aug 2009 00:26:04 +0000</pubDate>
		<dc:creator>cc0cc</dc:creator>
				<category><![CDATA[生活备份]]></category>
		<category><![CDATA[人人]]></category>
		<category><![CDATA[校内]]></category>

		<guid isPermaLink="false">http://www.54chen.com/life/officially-renamed-the-school-waiting-for-you-all-to-participate-in.html</guid>
		<description><![CDATA[<a href="http://www.54chen.com"><img border="0" src="http://www.54chen.com/wp-content/themes/54chen2011/images/54chen-logo.gif"></a><br>以下内容由<a href="http://www.54chen.com">[五四陈科学院]</a>提供<br>视频下载中... window.onload = function(){ var videoPlayer = new SWFObject("http://xnimg.cn/100800/marksfine/videoPlayer_v3.swf", "mymovie", "450", "338", "8", "#336699"); videoPlayer.addParam("quality", "high"); videoPlayer.addParam("wmode", "transparent"); videoPlayer.addParam("salign", "t"); videoPlayer.addParam("allowfullscreen", "true"); videoPlayer.addVariable("videoListUrl", "http://xnimg.cn/100800/marksfine/thumbnailList.xml"); videoPlayer.addVariable("autoPlay", "true"); videoPlayer.write("videoPlayer"); }<br><br>想快点找到作者也可以到Twitter上留言: <a href="https://www.twitter.com/54chen" target="_blank">@54chen</a><br>或者你懒得带梯子上墙，请到新浪微博：<a href="http://t.sina.com.cn/54chen" target="_blank">@54chen</a>]]></description>
			<content:encoded><![CDATA[<a href="http://www.54chen.com"><img border="0" src="http://www.54chen.com/wp-content/themes/54chen2011/images/54chen-logo.gif"></a><br>以下内容由<a href="http://www.54chen.com">[五四陈科学院]</a>提供<br><div class="box-content">
<div id="videoPlayer">
<p>                        	视频下载中...
                        </p></div>
</p></div>
<p>  <script type="text/javascript" src="http://s.xnimg.cn/100800/marksfine/swfobject.js">
        </script><br />
        <script type="text/javascript">
            window.onload = function(){
                var videoPlayer = new SWFObject("http://xnimg.cn/100800/marksfine/videoPlayer_v3.swf", "mymovie", "450", "338", "8", "#336699");
                videoPlayer.addParam("quality", "high");
                videoPlayer.addParam("wmode", "transparent");
                videoPlayer.addParam("salign", "t");
				videoPlayer.addParam("allowfullscreen", "true");
                videoPlayer.addVariable("videoListUrl", "http://xnimg.cn/100800/marksfine/thumbnailList.xml");
                videoPlayer.addVariable("autoPlay", "true");
                videoPlayer.write("videoPlayer");
            }
        </script></p>
<br><br>想快点找到作者也可以到Twitter上留言: <a href="https://www.twitter.com/54chen" target="_blank">@54chen</a><br>或者你懒得带梯子上墙，请到新浪微博：<a href="http://t.sina.com.cn/54chen" target="_blank">@54chen</a>]]></content:encoded>
			<wfw:commentRss>http://www.54chen.com/life/officially-renamed-the-school-waiting-for-you-all-to-participate-in.html/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>校内网招聘研发工程师</title>
		<link>http://www.54chen.com/life/%e6%a0%a1%e5%86%85%e7%bd%91%e6%8b%9b%e8%81%98%e7%a0%94%e5%8f%91%e5%b7%a5%e7%a8%8b%e5%b8%88.html</link>
		<comments>http://www.54chen.com/life/%e6%a0%a1%e5%86%85%e7%bd%91%e6%8b%9b%e8%81%98%e7%a0%94%e5%8f%91%e5%b7%a5%e7%a8%8b%e5%b8%88.html#comments</comments>
		<pubDate>Tue, 17 Mar 2009 09:01:49 +0000</pubDate>
		<dc:creator>cc0cc</dc:creator>
				<category><![CDATA[生活备份]]></category>
		<category><![CDATA[招聘]]></category>
		<category><![CDATA[校内]]></category>

		<guid isPermaLink="false">http://www.54chen.com/life/%e6%a0%a1%e5%86%85%e7%bd%91%e6%8b%9b%e8%81%98%e7%a0%94%e5%8f%91%e5%b7%a5%e7%a8%8b%e5%b8%88.html</guid>
		<description><![CDATA[<a href="http://www.54chen.com"><img border="0" src="http://www.54chen.com/wp-content/themes/54chen2011/images/54chen-logo.gif"></a><br>以下内容由<a href="http://www.54chen.com">[五四陈科学院]</a>提供<br>任职资格： 1、计算机或通信、数学等相关专业毕业； 2、至少3年以上软件开发经验，有团队合作精神； 3、精通java面向对象编程，精通JSP/Servlet/HTML/JavaScript/JDBC/XML； 4、了解MVC和Apache Struts，Spring，Hibernate者； 5、熟悉Oracle，Sql Server，Mysql等数据库开发经验； 6、精通HTML、JavaScript；精通JSP、Java的开发；精通SQL程序设计； 7、熟悉Apache、Tomcat、Resin等配置；  要求，全日制本科以上学历  211工程学校的优先考虑 待遇：5.6.7.8.9.10 等等<br><br>想快点找到作者也可以到Twitter上留言: <a href="https://www.twitter.com/54chen" target="_blank">@54chen</a><br>或者你懒得带梯子上墙，请到新浪微博：<a href="http://t.sina.com.cn/54chen" target="_blank">@54chen</a>]]></description>
			<content:encoded><![CDATA[<a href="http://www.54chen.com"><img border="0" src="http://www.54chen.com/wp-content/themes/54chen2011/images/54chen-logo.gif"></a><br>以下内容由<a href="http://www.54chen.com">[五四陈科学院]</a>提供<br><p>任职资格：</p>
<p>1、计算机或通信、数学等相关专业毕业；</p>
<p>2、至少3年以上软件开发经验，有团队合作精神；</p>
<p>3、精通java面向对象编程，精通JSP/Servlet/HTML/JavaScript/JDBC/XML；</p>
<p>4、了解MVC和Apache Struts，Spring，Hibernate者；</p>
<p>5、熟悉Oracle，Sql Server，Mysql等数据库开发经验；</p>
<p>6、精通HTML、JavaScript；精通JSP、Java的开发；精通SQL程序设计；</p>
<p>7、熟悉Apache、Tomcat、Resin等配置；</p>
<p> 要求，全日制本科以上学历</p>
<p> 211工程学校的优先考虑</p>
<p>待遇：5.6.7.8.9.10 等等</p>
<br><br>想快点找到作者也可以到Twitter上留言: <a href="https://www.twitter.com/54chen" target="_blank">@54chen</a><br>或者你懒得带梯子上墙，请到新浪微博：<a href="http://t.sina.com.cn/54chen" target="_blank">@54chen</a>]]></content:encoded>
			<wfw:commentRss>http://www.54chen.com/life/%e6%a0%a1%e5%86%85%e7%bd%91%e6%8b%9b%e8%81%98%e7%a0%94%e5%8f%91%e5%b7%a5%e7%a8%8b%e5%b8%88.html/feed</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
	</channel>
</rss>

