文章分类 -  数据库与存储

摘要:Twitter首席工程师:如何“打败”CAP定理作者: Nathan Marz来源: 《程序员》发布时间: 2011-12-09 13:43阅读: 973 次原文链接 全屏阅读 [收藏] 英文原文:How to beat the CAP theorem CAP 定理是数据系统设计的基本理论,目前几乎所有的数据系统的设计都遵循了这个定理。但 CAP 定理给目前的数据系统带来了许多复杂的、不可控的问题,使得数据系统的设计越来越复杂。Twitter 首席工程师、Storm 的作者 Nathan Marz 在本文中通过避开 CAP 定理带来的诸多复杂问题,展示了一个不同于以往的数据系统设计方案,... 阅读全文
posted @ 2011-12-14 12:05 madonion 阅读(215) 评论(0) 推荐(0)
摘要:海量数据处理面试题 续一from:http://www.cnblogs.com/yuklin/archive/2011/12/10/2283062.html1. 给你A,B两个文件,各存放50亿条URL,每条URL占用64字节,内存限制是4G,让你找出A,B文件共同的URL。解法:由于给的内存有限,我们无法将单个文件不加处理直接存放到内存中,所以第一步要预处理数据。在题目中的数据是64字节的URL,也就是有64个char的字符串,考虑将每一个字符串进行模式提取,或者干脆压缩字符串,得到唯一标识。但这样的内存开销还是满足不了题目的要求。或者使用Hash函数针对64个char的字符串进行处理,得到 阅读全文
posted @ 2011-12-13 21:11 madonion 阅读(128) 评论(0) 推荐(0)
摘要:海量数据处理面试题from:http://www.cnblogs.com/yuklin/archive/2011/12/09/2282780.html有2.5E个整数数据,找出其中重复的,给定的内存是600M。由于题目描述的不够清晰,现在假定整数指的是int32,其中有正有负有零,范围就是int32的范围。可以用编程珠玑里的位图来处理,由于内存只有600M,刚好可以将数据分作正,负和0来处理,这个范围是两个2^31,那就是一次处理位图占用512M的内存。之前我用byte数组表示位图,有很多繁琐的步骤和数据结构,在分析博客园其他大牛的文章和手头资料之后决定使用BitArray来处理。总共需要两个 阅读全文
posted @ 2011-12-13 21:10 madonion 阅读(207) 评论(0) 推荐(0)
摘要:分布式哈希表Posted on 2011-11-26 16:42天地玄黄阅读(19)评论(0)编辑收藏我们从浅入深一步一步介绍什么是分布式哈希表。1、哈希函数 哈希函数是一种计算方法,它可以把一个值A映射到一个特定的范围[begin, end]之内。对于一个值的集合{k1, k2, … , kN},哈希函数把他们均匀的映射到某个范围之中。这样,通过这些值就可以很快的找到与之对应的映射地址{index1, index2, … , indexN}。对于同一个值,哈希函数要能保证对这个值的运算结果总是相同的。 哈希函数需要经过精心设计才能够达到比较好的效果,但是总是无法达到理想的效果。多个值也许会映 阅读全文
posted @ 2011-12-02 11:45 madonion 阅读(354) 评论(0) 推荐(0)
摘要:海量存储系列之四2011年11月26日 22:17标签: 海量存储检索原理上一篇 事务原理http://qing.weibo.com/1765738567/693f084733000672.html单机事务:其实在上面介绍ACID的时候我们已经提到了一种最简单的实现方式,就是锁的实现方式。从原理来看,事务是个变态而复杂的事情。其实如果是序列化的话呢,那么实现起来一定是非常简单的。但问题就在于,这样性能实在比较低,于是,就有了非常多的方案,为了能哪怕减少一个地方的锁,或者降低一个地方的锁的级别,就付出大量的时间和代码加以实现。那么,让我们以崇敬的心情,去拜读一下他们的劳动成果吧~-------- 阅读全文
posted @ 2011-11-28 01:25 madonion 阅读(245) 评论(0) 推荐(0)
摘要:海量存储系列之五2011年11月27日 22:24http://qing.weibo.com/1765738567/693f08473300067j.html 上一篇在上一章节,我们一起浏览了如何进行单机事务操作。下面我们来看一下分布式场景中我们碰到的问题吧。需要说明的一点是,这里涉及到的权衡点非常的多。就我短短的工作经验里面,也只是能够简单的涉猎一部分,因为在事务这个领域,目 前大家都在尝试提出各种各样的不同的方法,而在taobao,我们目前也没有完美的解决这个问题,更多的是在权衡,在金钱和开发成本之间,做出选择。那么,我们就先从问题开始,来看一下原来的事务出了什么问题。在事务中,有ACID 阅读全文
posted @ 2011-11-28 01:25 madonion 阅读(213) 评论(0) 推荐(0)
摘要:海量存储系列之二2011年11月22日 18:46标签: 海量存储检索原理​http://qing.weibo.com/1765738567/693f0847330005sm.html上一篇在上一篇里面,我们对数据库的抽象的组成原理进行了简单的描述。在这一篇里面,我们一起来看看,如何能够使用kv这样的工具。来完成关系代数运算。那么,让我们先来热热身:这是一组数据,以pk作为主键,user_id和Name是外key.那么,如果我要运行查询:Select * from tab where id = ?应该如何进行呢?这里需要一些额外的知识,在数据结构中,有那么一种结构,可以用于处理按照某个key找 阅读全文
posted @ 2011-11-28 01:24 madonion 阅读(167) 评论(0) 推荐(0)
摘要:海量存储系列之三2011年11月26日 20:05上一篇http://qing.weibo.com/1765738567/693f0847330005v7.html首先是回答上次的问题。假设有这么一组数据,性别有4种,user_id是一对多的关系,如果我想查询select * from tabwhere user_id in (?,?,?,?) and 性别='不明'如何进行索引构建能够获得比较好的效果呢?我个人认为,应该建立的是以user_id作为前导列,性别作为辅助列的索引,在大量单值查询时会有优势。理由如下1. 假定总数据量为N,user_id的区分度为N/10000 而 阅读全文
posted @ 2011-11-28 01:24 madonion 阅读(153) 评论(0) 推荐(0)
摘要:海量存储系列之一2011年11月20日 21:08标签: 海量存储检索原理​http://qing.weibo.com/1765738567/693f0847330005sk.html海量存储系列之序言那么 在走进海量存储与检索的世界之前,我们先看一看目前似乎觉得最落伍的数据库系统。丑话先说。。我也没在这个领域沉浸几年,所以其实里面很多的概念也是有可 能模糊的,所以在这里写出来,一是希望我能把以前的积累再次重新的梳理一次,查缺补漏。二也是在这世界留下点记录。。表明我曾经来到过这世界,学到过这些 东西。。之所以从这里开始,一部分的原因是我本身是从这里开始接触存储这个领域的,另外一部分原因是因为, 阅读全文
posted @ 2011-11-28 01:23 madonion 阅读(459) 评论(0) 推荐(0)