最新 | 最热门 | 最高评价

+0  Amazon S3 & Simpledb内部实现分析

Tag: 分布式架构 | Amazon S3 | Amazon Simpledb
chuanhui 发于 2011年03月27日 19:50 | 点击: 3486 | 展开摘要
Amazon S3申请了一篇专利,名称为”Keymap Service Architecture for A Distributed Storage System“,而Amazon Simpledb的实现细节暂时没有公开。本文根据Dynamo论文,S3专利以及S3&Simpledb的对外API尝试推测这两个系统的内部实现。

对外API

1, S3:撇开S3系统中的Region, Bucket,用户权限管理等,和底层存储系统相关的API只有如

查看全文: http://www.udpwork.com/item/4634.html

+0  Amazon Dynamo – 纠结的设计

Tag: 分布式架构 | Amazon Dynamo,纠结的设计
chuanhui 发于 2011年03月22日 22:43 | 点击: 6614 | 展开摘要
从09年第一次阅读Dynamo论文,到最近阅读Amazon S3的一篇专利,一路过来对论文的理解可以简单归结为两个字 – 纠结。第一次看到Amazon Dynamo论文,有一种眼前一亮的感觉,Dynamo通过巧妙地组合一些P2P技术在Amazon构建了一个工程上可行的系统,CAP,NWR, Vector Clock一时成为流行词,更为神奇的是,Dynamo号称能够让用户设置不同的NWR策略从而在CAP三者之间获得一个很好的权衡,鱼和熊掌亦可兼得。而Amazon S

查看全文: http://www.udpwork.com/item/4571.html

+0  从Megastore看RDBMS和NOSQL系统结合

Tag: 分布式架构 | Megastore | RDBMS与NOSQL
chuanhui 发于 2011年03月13日 22:10 | 点击: 2343 | 展开摘要
RDBMS的优势在于功能,包括事务,强一致性,同时支持随机读和顺序扫描,索引。NOSQL系统的优势在于扩展性和性能。Google的经验告诉我们,系统设计的关键点还是在于可扩展性,依赖于底层GFS+Bigtable提供的无与伦比的可扩展性,Megastore能够在上层不断完善功能,兼具RDBMS和NOSQL系统的优点。

1, 兼顾随机读和顺序扫描。Bigtable底层的存储引擎为MemTable + SSTable构成的Merge-Dump存储引擎,SSTable设计成8K

查看全文: http://www.udpwork.com/item/4511.html

+0  Google Megastore系统事务机制

Tag: 分布式架构 | Google Megastore,事务机制
chuanhui 发于 2011年02月20日 17:13 | 点击: 2276 | 展开摘要
最近CSDN头条有一篇介绍Google Megastore的文章,讲得挺好,本文主要针对Google Megastore的事务实现做一个更详细的探讨。Google Megastore的底层是GFS + Bigtable系统,GFS + Bigtable解决可扩展性问题,但提供的用户接口简单:读接口只提供Get随机读取和Scan连续扫描,写接口也只能够支持单行事务。Google Megastore构建在Bigtable系统之上,通过客户端封装复杂的特性,包括事务支持,基于Ent

查看全文: http://www.udpwork.com/item/4319.html

+0  SQL到NOSQL的思维转变

Tag: 分布式架构 | NOSQL与SQL,NOSQL思维
chuanhui 发于 2011年01月29日 16:34 | 点击: 2453 | 展开摘要
NOSQL系统一般都会宣传一个特性,那就是性能好,然后为什么呢?关系型数据库发展了这么多年,各种优化工作已经做得很深了,NOSQL系统一般都是吸收关系型数据库的技术,然后,到底是什么因素束缚了关系型数据库的性能呢?我们从系统设计的角度看这个问题。

1, 索引支持。关系型数据库创立之初没有想到今天的互联网应用对可扩展性提出如此高的要求,因此,设计时主要考虑的是简化用户的工作,SQL语言的产生促成数据库接口的标准化,从而形成了Oracle这样的数据库公司并带动了上下游产业链的发

查看全文: http://www.udpwork.com/item/4197.html

+0  分布式系统的数据结构

Tag: 分布式架构 | 分布式数据结构,分布式Hash表,分布式B树
chuanhui 发于 2011年01月12日 20:03 | 点击: 3498 | 展开摘要
常用的数据结构包括:数组,队列,堆栈,链表,树(平衡二叉树,B树,Trie树,堆),哈希表,图,后缀数组,等等。其中,堆,图结构,Trie树及后缀数组解决特定问题,其它数据结构解决通用的查找,更新,删除操作。

查找,更新和删除操作一般是O(1),O(logN)或者O(N),通用的数据结果大致可分为如下三种:

1, 极端型;某些操作的算法复杂度为O(1),另外一些算法复杂度为O(N),比如有序链表查找复杂度为O(N),更新和删除为O(1);

2, 平衡型:主要操作的复杂度

查看全文: http://www.udpwork.com/item/4079.html

+0  【分布式系统工程实践】随机访问KV存储引擎

Tag: 分布式架构 | 随机读写,KV存储引擎
chuanhui 发于 2010年12月25日 21:29 | 点击: 2248 | 展开摘要
Key-Value系统只需要支持简单的随机读(Get),写(Put)和删除(Del)操作。由于磁盘是顺序存储介质,因此可以往数据文件追加Key-Value记录并在内存中存放记录所在的磁盘位置,即索引信息。由于对同一个Key的更新(Put)操作以最后一个为准,内存中的索引只需要记录最新的Key-Value对位置即可,而对于删除操作,也是往数据文件追加一个删除记录。由于内存的大小有限,需要尽可能减小索引记录的大小,比如只支持64位的整数Key(其它类型的Key可以通过md5运算得

查看全文: http://www.udpwork.com/item/4065.html

+0  【分布式系统工程实现】Bigtable Merge-Dump存储引擎

Tag: 分布式架构 | Merge-Dump,存储引擎,MemTable,SSTable
chuanhui 发于 2010年12月15日 21:29 | 点击: 2937 | 展开摘要
单机存储引擎解决单机读写问题,Merge-Dump存储引擎设计成一种通用的存储引擎,同时支持数据写入,随机读取和顺序扫描功能。顺序扫描功能应用很广,比如MapReduce批处理,同一个广告主的所有关键词广告统计,用户浏览所有的收藏信息,淘宝卖家管理大量的商品等。简单的KV系统只需要支持随机读取,而类似Bigtable这样的通用表格系统需要考虑基于主键的顺序扫描功能。Bigtable中的Merge-Dump存储引擎结构如下:

用户的操作首先写入到MemTable中,当内存中的

查看全文: http://www.udpwork.com/item/4066.html

+0  GFS, HDFS, Blob File System架构对比

Tag: 分布式架构 | Blob File System | GFS | HDFS | TFS
chuanhui 发于 2010年12月11日 21:07 | 点击: 2567 | 展开摘要
分布式文件系统很多,包括GFS,HDFS,淘宝开源的TFS,Tencent用于相册存储的TFS (Tencent FS,为了便于区别,后续称为QFS),以及Facebook Haystack。其中,TFS,QFS以及Haystack需要解决的问题以及架构都很类似,这三个文件系统称为Blob FS (Blob File System)。本文从分布式架构的角度对三种典型的文件系统进行对比。

我们先看GFS和HDFS。HDFS基本可以认为是GFS的一个简化版实现,二者因此有很多相

查看全文: http://www.udpwork.com/item/4067.html

+1  Facebook Haystack图片存储架构

Tag: 分布式架构 | Facebook Haystack,图片存储,淘宝TFS
chuanhui 发于 2010年12月05日 22:43 | 点击: 7622 | 展开摘要
OSDI 10中有一篇Facebook图片存储系统Haystack的论文,名称为”Finding a needle in Haystack: Facebook’s photo storage”。从这篇论文可以看出,数据量大的应用有时也并不复杂。

我们先给Facebook图片存储系统算一笔账。Facebook目前存储了260 billion图片,总大小为20PB,通过计算可以得出每张图片的平均大小为20PB / 260GB,约为800KB。

查看全文: http://www.udpwork.com/item/4068.html

+0  Jeff Dean关于Google系统架构的讲座

Tag: 系统架构 | Architecture | Google | 分布式系统
Guancheng (G.C.) 发于 2010年12月03日 06:00 | 点击: 2647 | 展开摘要
上个月Jeff Dean在Standford的Computer Systems Colloquium (EE380)这门讨论课上详细讲了讲Google的系统架构发展过程,因为这是份很新的资料,所以特意把它的Slide下下来与大家分享一下。这门课是Standford的讲座课程,每一节课都由不同的顶级工程师/科学家/投资人前来讲授IT行业的最新动向,非常非常有料,绝对值得深挖。这门课的每节课都是带视频的,Jeff Dean的这个讲座的录像在这里。想要下载该视频的同学可以去这里(要

查看全文: http://www.udpwork.com/item/3656.html

+0  【分布式系统工程实现】如何检测一台机器是否宕机?

Tag: 分布式架构 | Heartbeat | Lease | 宕机检测
chuanhui 发于 2010年11月20日 12:12 | 点击: 2123 | 展开摘要
检测一台机器是否宕机的应用场景如下:

1, 工作机器宕机,总控节点需要能够检测到并且将原有服务迁移到集群中的其它节点。

2, 总控节点宕机,总控节点的备份节点(一般称为Slave)需要能够检测到并替换成主节点继续对外服务。

检测一台机器是否宕机必须是可靠的。在大规模集群中,机器可能出现各种异常,比如停电,磁盘故障,过于繁忙导致假死等。对于机器假死,如果总控节点认为机器宕机并将服务迁移到其它节点,假死的机器又认为自己还可以提供服务,则会出现多个节点服务同一份数据而导致数据

查看全文: http://www.udpwork.com/item/4070.html
|<<<3456789>>>| 一共9页, 101条记录