<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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/" version="2.0">

<channel>
	<title>Allen's World</title>
	
	<link>http://allenjoe.net</link>
	<description>关注云计算、分布式、Hadoop、NoSQL、BigData</description>
	<lastBuildDate>Tue, 08 May 2012 04:20:39 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/allenjoe" /><feedburner:info xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" uri="allenjoe" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
		<title>区分两种不同类型的列存储数据库</title>
		<link>http://allenjoe.net/2012/05/08/%e5%8c%ba%e5%88%86%e4%b8%a4%e7%a7%8d%e4%b8%8d%e5%90%8c%e7%b1%bb%e5%9e%8b%e7%9a%84%e5%88%97%e5%ad%98%e5%82%a8%e6%95%b0%e6%8d%ae%e5%ba%93/</link>
		<comments>http://allenjoe.net/2012/05/08/%e5%8c%ba%e5%88%86%e4%b8%a4%e7%a7%8d%e4%b8%8d%e5%90%8c%e7%b1%bb%e5%9e%8b%e7%9a%84%e5%88%97%e5%ad%98%e5%82%a8%e6%95%b0%e6%8d%ae%e5%ba%93/#comments</comments>
		<pubDate>Tue, 08 May 2012 03:20:50 +0000</pubDate>
		<dc:creator>Allen Joe</dc:creator>
				<category><![CDATA[数据库]]></category>
		<category><![CDATA[Database]]></category>
		<category><![CDATA[NoSQL]]></category>
		<category><![CDATA[列存储]]></category>

		<guid isPermaLink="false">http://allenjoe.net/?p=668</guid>
		<description><![CDATA[最近在看列存储型数据库，看到本文，分享给大家。 原文：http://dbmsmusings.blogspot.com/2010/03/distinguishing-two-major-types-of_29.html（访问此链接需要翻墙，为方便读者我把原文贴在了本文后面） 关于作者：DANIEL ABADI，耶鲁大学助理教授，主要研究方向为数据库架构和实现。 关于原文：作者写本文的目的是由于列存NoSQL（如BigTable、HBase、HyperTable、Cassandra等）的兴起，导致与关系型列存储数据库（如SybaseIQ、Vertica、C-Store、MonetDB等）在列存储概念上的混淆。作者将第一类成为GroupA，第二类成为GroupB，并从数据模型、列的独立性、访问接口、最优负载、存储层5个方面解释了这两类存在着本质的不同。最后，Daniel建议将GroupA更名为“column-family store”以区别于GoupB的“column-store”。Daniel的观点得到了Stonebraker的关注，Stonebraker回Email说，其实GroupA本质上是一个列族内的行存储，称之为“MV row-stores”。 个人观点，无论叫什么，只是从概念上更贴近其本质。我们更关心的是，这两类列存储确实存在着本质的区别，作者的分析也很到位，下面，请欣赏原文吧。 原文： Distinguishing Two Major Types of Column-Stores I have noticed that Bigtable, HBase, Hypertable, and Cassandra are being called column-stores with increasing frequency (e.g.here, here, and here), due to their ability to store and access column families separately. This makes them appear to be in the same category as column-stores such as Sybase IQ, C-Store,Vertica, VectorWise, MonetDB, ParAccel, [...]]]></description>
		<wfw:commentRss>http://allenjoe.net/2012/05/08/%e5%8c%ba%e5%88%86%e4%b8%a4%e7%a7%8d%e4%b8%8d%e5%90%8c%e7%b1%bb%e5%9e%8b%e7%9a%84%e5%88%97%e5%ad%98%e5%82%a8%e6%95%b0%e6%8d%ae%e5%ba%93/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>浏览器的工作原理</title>
		<link>http://allenjoe.net/2012/05/06/%e6%b5%8f%e8%a7%88%e5%99%a8%e7%9a%84%e5%b7%a5%e4%bd%9c%e5%8e%9f%e7%90%86/</link>
		<comments>http://allenjoe.net/2012/05/06/%e6%b5%8f%e8%a7%88%e5%99%a8%e7%9a%84%e5%b7%a5%e4%bd%9c%e5%8e%9f%e7%90%86/#comments</comments>
		<pubDate>Sun, 06 May 2012 14:55:12 +0000</pubDate>
		<dc:creator>Allen Joe</dc:creator>
				<category><![CDATA[未分类]]></category>
		<category><![CDATA[Web]]></category>
		<category><![CDATA[浏览器]]></category>

		<guid isPermaLink="false">http://allenjoe.net/?p=664</guid>
		<description><![CDATA[浏览器是我们日常上网用到的最多的工具，不管是IE/Chrome/Firefox/Safari，工作原理都是大同小异的。搞Web开发的人都来看看这篇文章吧，尤其是搞Frontend的开发者，更需要了解浏览器的运行机制，就像搞Java开发的一定要了解一下JVM的运行机制一样。我一直提倡从系统的角度去对待每一项技术，原理上理解了，在遇到问题的时候就有头绪去解决了，否则，只是机械的运用API那就没意思了。 原文很长，耐心看吧：http://taligarsiel.com/Projects/howbrowserswork1.htm 中文翻译：http://blog.csdn.net/allenwebapp/article/details/6852448]]></description>
		<wfw:commentRss>http://allenjoe.net/2012/05/06/%e6%b5%8f%e8%a7%88%e5%99%a8%e7%9a%84%e5%b7%a5%e4%bd%9c%e5%8e%9f%e7%90%86/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>【原】浅析大数据处理</title>
		<link>http://allenjoe.net/2012/05/03/bigdata-processing/</link>
		<comments>http://allenjoe.net/2012/05/03/bigdata-processing/#comments</comments>
		<pubDate>Thu, 03 May 2012 08:51:08 +0000</pubDate>
		<dc:creator>Allen Joe</dc:creator>
				<category><![CDATA[BigData]]></category>

		<guid isPermaLink="false">http://allenjoe.net/?p=616</guid>
		<description><![CDATA[&#160; 1       “大数据”时代来临 “大数据”这个词这两年着实火了一把，在我看来都抢过“云计算”的风头了。为什么？因为对于不搞云计算的人，要真正理解云计算实在太难了，而对于搞云计算的人来说，也很难讲清楚什么是云计算，结果最后把大家搞晕了，“云计算”成了“晕计算”，而“大数据”却是我们能够深切体会得到的。那么如何利用好这些数据，从中挖掘潜在的价值，就是我们今天要谈的“大数据”时代的商机。各大IT厂商无一不看好这块蛋糕，纷纷加入“大数据”掘宝阵营。 1.1     背景 随着Web2.0的发展，尤其是社交网络、移动计算和传感器等新的渠道和技术不断涌现，数据量呈现出前所未有的爆炸式增长。分析调研机构IDC 2011年6月发布了数字宇宙研究报告(Digital Universe Study)——《从混沌中提取价值》(Extracting Value from Chaos)。报告显示，全球信息总量每过两年，就会增长一倍。2011年，全球被创建和被复制的数据总量为1.8ZB。相较去年同期，这一数据上涨了超过1ZB。而到下一个十年(2020年)，全球所有IT部门拥有服务器的总量将会比现在多出十倍(包括虚拟机和物理机)，所管理的数据将会比现在多出五十倍。 而从数据形态上来看，在被创建的信息数据总量中，有75%来自于个人，这包括文字、图片、视频和音乐。这些个人数据的蔓延增速要比数据的创建速度更加迅猛。也就是说相比结构化数据，半结构化或者非结构化数据如XML、邮件、博客、即时消息等将成为数据的主体。 1.2     大数据的定义 对于大数据的定义，Gartner和McKinsey提出4个V： 1)        Volume（海量）：这点不必多说，从上面介绍的数字就能体会到。 2)        Velocity（快速）：虽然数据量增多了，但是某些应用对于访问数据的速度仍然要求很高，例如社交网络数据，用户往往要求有较高的实时性，这对大数据处理的实时性有较大挑战。 3)        Variety（多样性）：传统交易数据都是关系型的结构化数据，而现在更多互联网多媒体应用的出现，使诸如图片、声音和视频等非结构化数据占到了很大比重。 4)        Value（价值）：大数据隐藏的价值是可观的，面临的挑战是如何从海量数据中辨别有价值的信息，然后进行转化和分析。 2       传统架构面临的挑战与机遇 数据的变革，引发了一起IT架构的变革，在大数据的环境下，传统IT面临着巨大的挑战，已经远远满足不了应用的需求，同时这也催生了一些新兴的技术的产生。在大数据时代，出现了前所未有的百家争鸣的盛况，表现为以下几点： 2.1     传统RDBMS“one size fit all”时代的终结 之前我们一提到数据库就是Oracle、DB2、SQL Server、MySQL等等这些传统的RDBMS，那个时代我们都是讨论这些那个数据库多么功能强大，似乎什么都能干。然而随着大数据的产生，我们越来越发现，这种“one size fit all”的思路是错误的，不同的应用场景应该选择不同的数据库才更合适，也就是“one size fit one”（见关系数据库大牛Michael Stonebaker的论文《”One Size Fits All”: An Idea Whose Time Has Come and Gone》）。这是因为现在这些RDBMS的架构是60/70年代的产物，当时的设计思想主要是解决OLTP，都是集中式设计，其中的一些技术比如索引、事务等等均是解决OLTP应用的。而目前随着数据量的增大，尤其是BI的兴起，催生了越来越多的OLAP应用，还有互联网的快速发展，海量存储、高并发、高扩展等要求越来越高。传统OLTP型RDBMS在应用于这些场景时表现出了很大的瓶颈，具体表现为： 容量：数据量越来越大，集中式数据库难以支撑海量数据。 扩展性：单机容量有限，那就进行分布式存储，也就是对数据库进行分库分表，然而RDBMS的关系模型很难做到扩展。 [...]]]></description>
		<wfw:commentRss>http://allenjoe.net/2012/05/03/bigdata-processing/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Twitter开源实时流计算平台Storm</title>
		<link>http://allenjoe.net/2012/04/27/twitter%e5%bc%80%e6%ba%90%e5%ae%9e%e6%97%b6%e6%b5%81%e8%ae%a1%e7%ae%97%e5%b9%b3%e5%8f%b0storm/</link>
		<comments>http://allenjoe.net/2012/04/27/twitter%e5%bc%80%e6%ba%90%e5%ae%9e%e6%97%b6%e6%b5%81%e8%ae%a1%e7%ae%97%e5%b9%b3%e5%8f%b0storm/#comments</comments>
		<pubDate>Fri, 27 Apr 2012 03:08:39 +0000</pubDate>
		<dc:creator>Allen Joe</dc:creator>
				<category><![CDATA[BigData]]></category>
		<category><![CDATA[Storm]]></category>
		<category><![CDATA[流计算]]></category>

		<guid isPermaLink="false">http://allenjoe.net/?p=651</guid>
		<description><![CDATA[Storm: distributed and fault-tolerant realtime computation View more presentations from nathanmarz]]></description>
		<wfw:commentRss>http://allenjoe.net/2012/04/27/twitter%e5%bc%80%e6%ba%90%e5%ae%9e%e6%97%b6%e6%b5%81%e8%ae%a1%e7%ae%97%e5%b9%b3%e5%8f%b0storm/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>虚拟化技术培训教程</title>
		<link>http://allenjoe.net/2012/04/24/%e8%99%9a%e6%8b%9f%e5%8c%96%e6%8a%80%e6%9c%af%e5%9f%b9%e8%ae%ad%e6%95%99%e7%a8%8b/</link>
		<comments>http://allenjoe.net/2012/04/24/%e8%99%9a%e6%8b%9f%e5%8c%96%e6%8a%80%e6%9c%af%e5%9f%b9%e8%ae%ad%e6%95%99%e7%a8%8b/#comments</comments>
		<pubDate>Tue, 24 Apr 2012 09:33:30 +0000</pubDate>
		<dc:creator>Allen Joe</dc:creator>
				<category><![CDATA[云计算]]></category>
		<category><![CDATA[虚拟化]]></category>
		<category><![CDATA[KVM]]></category>
		<category><![CDATA[Xen]]></category>

		<guid isPermaLink="false">http://allenjoe.net/?p=647</guid>
		<description />
		<wfw:commentRss>http://allenjoe.net/2012/04/24/%e8%99%9a%e6%8b%9f%e5%8c%96%e6%8a%80%e6%9c%af%e5%9f%b9%e8%ae%ad%e6%95%99%e7%a8%8b/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>【原】整个社会其实就是一个巨大的分布式系统 ——从社会的角度思考分布式系统架构</title>
		<link>http://allenjoe.net/2012/04/23/the-whole-society-is-a-huge-distributed-system/</link>
		<comments>http://allenjoe.net/2012/04/23/the-whole-society-is-a-huge-distributed-system/#comments</comments>
		<pubDate>Mon, 23 Apr 2012 11:31:11 +0000</pubDate>
		<dc:creator>Allen Joe</dc:creator>
				<category><![CDATA[随笔杂谈]]></category>

		<guid isPermaLink="false">http://allenjoe.net/?p=632</guid>
		<description><![CDATA[1       前言 做分布式系统做了有一段时间了，在研究分布式技术的时候，冥思苦想的多了，越来越能体会到一个哲理：The Whole Society is a huge distributed System（整个社会其实就是一个巨大的分布式系统），不是吗？本文从社会的角度来思考分布式系统架构，并用通俗的一种方式来解释分布式系统中的一些关键技术。一方面算是对我整个分布式系统工作学习的阶段性总结，做个沉淀；另一方面也是希望把这个观点分享出来，并以一种通俗易懂的解释表达，希望对那些刚刚接触分布式系统的人有些许帮助。本文只为一家之言，不妥之处，请拍砖。 我们把整个社会看成是一个巨大的分布式集群，而社会中的每个人就是集群中的每一个节点。人是群居动物，需要进行交流，而交流其实就是通信，其实就是分布式系统里讲的IO。要管理这么大的集群（整个社会），显然不容易，所以整个大集群划分成了多个小集群（国家），小集群又划分为多个更小的集群（省），依次类推有市、县等等。而管理每个集群，都需要一个领导（Master）来负责吧，上有国家主席或总统，下有省长、市长、县长等等。他们是干嘛的，管着我们干活的呗，我们普通老百姓不就是一个个的Worker或者Slave吗？所以，你看，我们的社会不就是一个巨大的Master/Slave架构的分布式集群吗？ 好了，如果您同意我的观点，请继续往下看，下面我会从社会的角度去解释分布式系统中常见的一些术语。只是粗略的一些想法，大家只当是看小说，消遣消遣。 2       分布式关键技术的社会学解释 2.1     CAP理论 提到分布式，就不得不谈CAP理论。CAP理论是2000年，UC Berkeley的Eric Brewer在ACM分布式计算原理会议上提出的。2002 年被MIT 的Seth Gilbert 和Nancy Lynch 所证明。依据这个理论，在一个大规模分布式系统中，有三个需求是彼此循环依赖的：一致性、可用性和分区耐受性。    一致性（Consistency）：对于所有的客户端使用同样的查询都可以得到同样的结果，即使是有并发更新的时候也是如此。    可用性（Availability）：所有的客户端总是可以读写数据。    分区耐受性（Partition Tolerance）：数据可以分散到多台机器上，即使发生网络故障，被分成多个分区，依然可以提供服务。 CAP的结论是，用Eric Brewer的原话如下： 即，在一个分布式系统中一致性、可用性、分区容错性，这三点在任何一个给定的时间，只能满足其中两点。因此系统架构师不要把精力浪费在如何设计才能同时满足CAP三者的完美分布式系统，而是应该研究如何进行取舍，满足实际的业务需求。 按照这个理论，将现存的各类数据库产品可以用下图来划分： 那么，回到我们的现实社会，怎么来理解CAP呢。我是这么理解的： C：一致性，即和谐。人民发生暴乱了、各发生战争了，就是不和谐不一致了。 A：可用性，就是我们每个个体能够存活在这个社会中。但这谁也无法保证吧，由于疾病、灾难或者意外，指不定那天挂了，所以，对于整个社会而言，每个个体均是不可靠的。 P：分区容错性即整个社会由我们每个不同的个体组成，即使我们其中的某个人或者某些人挂了，地球照样转。 所以，你看，从CAP角度去考虑，我们的整个社会其实是一个CP的分布式系统。因为虽然会发生暴乱和战争，但社会整体保证和谐呀，呵呵。从和平到战争到和平，这不就是一次事务过程吗？从一致状态到不一致到最终一致。而这个社会，离了谁地球照样转，所以社会是分区容错性的。只有我们每个个体，由于疾病或意外等等，指不定哪天就玩完了，社会也无法保证我们每个个体的随时或者永久“可用性”啊。呵呵，太悲观了，但这就是事实啊。 2.2     架构 从架构的角度讲，分布式系统一般两种：Master/Slave架构和DHT架构。前者以Google的系统为代表，如GFS、BigTable，开源的Hadoop也一样，均是Master/Slave架构。后者以Amazon的Dynamo系统为代表，开源的如Cassandra、Riak等等。 2.2.1   Master/Slave架构 Master/Slave架构中，master负责整个集群的管理，负责数据分发或者任务的调度，是整个集群的领导。而Slave负责实际数据的存储管理或者完成任务，就是我们这些具体干活的老百姓。因此，master的重要性可想而知，如果它挂了，整个集群也就无法工作了（比如，如果奥巴马被暗杀了，你猜美国会咋样？），这就是所谓的SPOF（Single Point Of Failure，单点故障）。 Master/Slave架构，最大的好处是易于管理（一切听从领导指挥），而且易于扩展（如果活干不过来，多加几个干活的就可以了）。但最大的缺陷就是刚才讲的SPOF啦（领导的责任和权力重大啊，领导挂了，大家就乱了，群龙无首嘛）。所以Master/Slave架构需要保证Master的可用性，比如给它配置一个高性能高可靠的服务器（给奥巴马配空军一号、配防弹车），或者采用多Master机制，一旦其中一个Master挂了，马上由其他master接替它继续工作（组建国会，一旦奥巴马被暗杀，立刻选举出另一个新的总统接任）。 2.2.2   DHT架构 DHT架构中，每个节点的地位均是平等的，也就是P2P的，没有所谓的master。所以，在这种架构中，每个节点都干活，谁也不会管着谁。（多么理想的社会啊，人人平等，没人管着，不用听领导指指点点）。 DHT架构，最大的好处就是没有像Master/Slave架构那样的SPOF风险（人人平等嘛，谁挂了都不影响地球转）。听起来很美好，但事实呢？其实并不那么完美的（没有绝对公平的社会），它也存在着缺陷，有三： [...]]]></description>
		<wfw:commentRss>http://allenjoe.net/2012/04/23/the-whole-society-is-a-huge-distributed-system/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>【转】如何设计一个LRU Cache？</title>
		<link>http://allenjoe.net/2012/04/19/%e3%80%90%e8%bd%ac%e3%80%91%e5%a6%82%e4%bd%95%e8%ae%be%e8%ae%a1%e4%b8%80%e4%b8%aalru-cache%ef%bc%9f/</link>
		<comments>http://allenjoe.net/2012/04/19/%e3%80%90%e8%bd%ac%e3%80%91%e5%a6%82%e4%bd%95%e8%ae%be%e8%ae%a1%e4%b8%80%e4%b8%aalru-cache%ef%bc%9f/#comments</comments>
		<pubDate>Thu, 19 Apr 2012 14:02:42 +0000</pubDate>
		<dc:creator>Allen Joe</dc:creator>
				<category><![CDATA[数据库]]></category>
		<category><![CDATA[数据结构&算法]]></category>
		<category><![CDATA[Cache]]></category>
		<category><![CDATA[LRU]]></category>

		<guid isPermaLink="false">http://allenjoe.net/?p=624</guid>
		<description><![CDATA[如何设计一个LRU Cache？ Google和百度的面试题都出现了设计一个Cache的题目，什么是Cache，如何设计简单的Cache，通过搜集资料，本文给出个总结。 通常的问题描述可以是这样： Question： [1] Design a layer in front of a system which cache the last n requests and the responses to them from the system. 在一个系统之上设计一个Cache，缓存最近的n个请求以及系统的响应。 what data structure would you use to implement the cache in the later to support following operations. 用什么样的数据结构设计这个Cache才能满足下面的操作呢？ [a] When a request comes look it up [...]]]></description>
		<wfw:commentRss>http://allenjoe.net/2012/04/19/%e3%80%90%e8%bd%ac%e3%80%91%e5%a6%82%e4%bd%95%e8%ae%be%e8%ae%a1%e4%b8%80%e4%b8%aalru-cache%ef%bc%9f/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>【原】BerkeleyDB</title>
		<link>http://allenjoe.net/2012/04/18/%e3%80%90%e5%8e%9f%e3%80%91berkeleydb/</link>
		<comments>http://allenjoe.net/2012/04/18/%e3%80%90%e5%8e%9f%e3%80%91berkeleydb/#comments</comments>
		<pubDate>Wed, 18 Apr 2012 02:51:09 +0000</pubDate>
		<dc:creator>Allen Joe</dc:creator>
				<category><![CDATA[数据库]]></category>
		<category><![CDATA[BDB]]></category>
		<category><![CDATA[BerkeleyDB]]></category>
		<category><![CDATA[Database]]></category>

		<guid isPermaLink="false">http://allenjoe.net/?p=619</guid>
		<description><![CDATA[BerkeleyDB（DBD）是一款高性能的、嵌入数据库。目前有三个家族，BDB（C版）、BDB JE（Java版）、BDB XML（XML版）。 BDB不是一个完整的数据库，而是一个嵌入式库，可以嵌入到你的程序中，也就是和你的程序共享一个进程。BDB可以保存任意类型的键/值对，并且允许应用程序自定义键/值的结构，从而实现结构化存储。BDB小而精，虽然真个库只有几百K，但可以支持数千的并发线程同时操作数据库，支持最大256TB的数据。支持完整的ACID事务，并且支持HA。 BDB被广泛应用到多种场合，Google用BDB HA （High Availability） 来管理他们的帐户信息. Motorola在他的无线产品中用Berkeley DB跟踪移动单元，HP、Microsoft、EMC等都在用BDB。据了解，Amazon的Dynamo底层也是用的BDB，MySQL也支持BDB存储引擎。 BDB的起源Wiki百科是这样描述的： Berkeley DB的前身是伯克利加州大学為了移除受AT&#38;T限制的程式碼，從BSD 4.3到4.4時所改寫的軟體。1996年，網景公司希望Berkeley DB的作者群改善函式庫，以在網景公司的LDAP伺服器和網景瀏覽器中使用，因而促成了Sleepycat Software（2006年2月，甲骨文公司收購了Sleepycat Software）。 Berkeley DB以Sleepycat Public License發行（該授權條款為OSI及FSF所認可的條款）。發行時包括了完整的程式碼、編譯工具、測試套件，以及說明文件。由於良好的程式碼的品質以及工具程式，Berkeley DB常被其他開放原始碼軟體所使用。對於不想使用Sleepycat Public License的開發團體，甲骨文公司也提供了其他付費的授權方式。 BDB很好很强大，目前被Oracle收纳为其11g家族，命名为Oracle BerkeleyDB11g，而且官方资料很全，很适合作为数据库开发的底层存储引擎。 参考资料： 1. 官方的一个Slide（介绍的很好，可做入门，不不过是英文的）：http://oukc.oracle.com/static05/opn/oracle9i_database/34313/050306_34313/index.htm 2. BDB官网首页（开发部署文档、白皮书、datasheet一应俱全）：http://www.oracle.com/technetwork/products/berkeleydb/overview/index.html 3. Oracle BerkeleyDB 中国研发团队博客（英文不好的同学有福了）：http://www.bdbchina.com &#160; &#160;]]></description>
		<wfw:commentRss>http://allenjoe.net/2012/04/18/%e3%80%90%e5%8e%9f%e3%80%91berkeleydb/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>【原】大数据处理架构_前言</title>
		<link>http://allenjoe.net/2012/04/16/%e5%a4%a7%e6%95%b0%e6%8d%ae%e5%a4%84%e7%90%86%e6%9e%b6%e6%9e%84_%e5%89%8d%e8%a8%80/</link>
		<comments>http://allenjoe.net/2012/04/16/%e5%a4%a7%e6%95%b0%e6%8d%ae%e5%a4%84%e7%90%86%e6%9e%b6%e6%9e%84_%e5%89%8d%e8%a8%80/#comments</comments>
		<pubDate>Mon, 16 Apr 2012 04:01:50 +0000</pubDate>
		<dc:creator>Allen Joe</dc:creator>
				<category><![CDATA[BigData]]></category>
		<category><![CDATA[Hadoop]]></category>
		<category><![CDATA[OLAP]]></category>

		<guid isPermaLink="false">http://allenjoe.net/?p=555</guid>
		<description><![CDATA[好吧，我承认我是标题党，一直以来就想写篇博客总结下大数据处理相关的技术，给出个架构。今天看了一篇博客思路清晰了许多，今天先准备下思路，具体内容不久后奉上。 废话不多说，隆重推出这篇文章： 分析型RDBMS架构：http://www.dbms2.com/2011/01/18/architectural-options-for-analytic-database-management-systems/ 口水： 这篇博客介绍了分析型RDBMS的架构思路及关键技术。作者Curt Monash自1981年开始就专注于数据分析领域，Oracle CEO Larry Ellison称赞其“在技术和市场趋势上有着无与伦比的洞察力”。Curt曾担任许多知名的公司，包括Oracle，IBM，微软，AOL，和SAP的战略顾问。他的博客对研究分析型RDBMS有着非常重要的参考价值。 &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211; 一、在大数据时代，充满无数商机，基本上有两大阵营： 1. 分析型RDBMS：主要用于结构化数据分析，商业产品有Oracle Exadata、EMC Greenplum、IBM Netezza、SAP SybaseIQ、HP Vertica、Teradata等；开源项目有C-Store、MonetDB、VectorWise、Infobright等 2. Hadoop生态系统：主要用于非结构化数据分析，核心是MapReduce。 二、两大阵营各有优劣势： 1. 分析型RDBMS 技术成熟，包括关系理论、SQL标准、列存储、索引等，在传统OLTP RDBMS基础上的下一代演进，但面对海量数据仍然有些力不从心，扩展性不够好，对于非结构化数据只能先进行ETL加载进库后才能分析。 2. Hadoop轻松可扩展到上千节点，支持海量数据，MapReduce框架非常方便的分析非结构化数据，但MapReduce处理延迟大，生态系统仍然不够完善，技术尚不成熟，只适合做离线分析。 三、目前两大阵营有合作融合的趋势，如Oracle和Cloudera合作使Exadata集成Hadoop、EMC Greenplum和MapR合作推出GreenplumHD及UAP平台、Microsoft和Hortonworks合作将SQL Server2012集成Hadoop，Sybase IQ15.4/Netezza/Asterdata等均集成Hadoop MapReduce。 四、大数据（BigData）这个词越来越火，我自认为不是一个跟风者，不喜欢玩概念瞎忽悠，对于大数据这个词，我们不必在意与争执。但大数据的来临，我觉得是历史的必然，我们应该抓住机遇，当然机遇和风险是并存的，还有很多很多的技术难题需要我们去解决。用一句说烂了的话总结：“前途是光明的，道路是曲折的”。我对大数据的态度，还是用一句俗话说吧：“革命尚未成功，同志仍需努力”。]]></description>
		<wfw:commentRss>http://allenjoe.net/2012/04/16/%e5%a4%a7%e6%95%b0%e6%8d%ae%e5%a4%84%e7%90%86%e6%9e%b6%e6%9e%84_%e5%89%8d%e8%a8%80/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>【转】Linux环境中使用Flex_Bison进行SQL语法分析</title>
		<link>http://allenjoe.net/2012/04/16/linux%e7%8e%af%e5%a2%83%e4%b8%ad%e4%bd%bf%e7%94%a8flex_bison%e8%bf%9b%e8%a1%8csql%e8%af%ad%e6%b3%95%e5%88%86%e6%9e%90/</link>
		<comments>http://allenjoe.net/2012/04/16/linux%e7%8e%af%e5%a2%83%e4%b8%ad%e4%bd%bf%e7%94%a8flex_bison%e8%bf%9b%e8%a1%8csql%e8%af%ad%e6%b3%95%e5%88%86%e6%9e%90/#comments</comments>
		<pubDate>Mon, 16 Apr 2012 00:52:56 +0000</pubDate>
		<dc:creator>Allen Joe</dc:creator>
				<category><![CDATA[数据库]]></category>
		<category><![CDATA[Bison]]></category>
		<category><![CDATA[Database]]></category>
		<category><![CDATA[Flex]]></category>

		<guid isPermaLink="false">http://allenjoe.net/?p=552</guid>
		<description />
		<wfw:commentRss>http://allenjoe.net/2012/04/16/linux%e7%8e%af%e5%a2%83%e4%b8%ad%e4%bd%bf%e7%94%a8flex_bison%e8%bf%9b%e8%a1%8csql%e8%af%ad%e6%b3%95%e5%88%86%e6%9e%90/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

