技术头条 - 一个快速在微博传播文章的方式     搜索本站
您现在的位置首页 --> 查看专题: 分布式
    最近了解了一个分布式文件系统――MooseFS,之前对分布式的东西知道的很少,分布式文件系统、分布式数据库都是近而远之,觉得太复杂了离我还很遥远。在各位老师的推动下我用6台机器实践了一下moosefs,moosefs的部署还是很简单的,和配置NFS很像,就是多了两种角色的机器,正是有了它们,才使得moosefs在可扩展性和稳定性上都要远好于NFS,在读写的性能方面,通过dd进行的简单测试来看,moosefs也就是写入的速度稍微好于NFS,读上...
    scribe 是facebook 开源的分布式日志系统 。其使用了thrift传输log,由于使用thrift,所以不论是什么语言的项目都可以实现日志收集,可达到远程或者是本地同步远程的分布式日志收集效果,在其示例配置中,并发量可达到max_msg_per_second=2000000,对普通的应用来说,每秒上百万的访问量可能性很小,因此基本上即使最简单的配置,远程收集所有项目的log也是可靠的,如果压力大的话,可以采取主从的配...
    Key-Value系统只需要支持简单的随机读(Get),写(Put)和删除(Del)操作。由于磁盘是顺序存储介质,因此可以往数据文件追加Key-Value记录并在内存中存放记录所在的磁盘位置,即索引信息。由于对同一个Key的更新(Put)操作以最后一个为准,内存中的索引只需要记录最新的Key-Value对位置即可,而对于删除操作,也是往数据文件追加一个删除记录。由于内存的大小有限,需要尽可能减小索引记录的大小,比如只支持64位的整数Key(其它类型的K...
    单机存储引擎解决单机读写问题,Merge-Dump存储引擎设计成一种通用的存储引擎,同时支持数据写入,随机读取和顺序扫描功能。顺序扫描功能应用很广,比如MapReduce批处理,同一个广告主的所有关键词广告统计,用户浏览所有的收藏信息,淘宝卖家管理大量的商品等。简单的KV系统只需要支持随机读取,而类似Bigtable这样的通用表格系统需要考虑基于主键的顺序扫描功能。
    检测一台机器是否宕机的应用场景如下: 1, 工作机器宕机,总控节点需要能够检测到并且将原有服务迁移到集群中的其它节点。 2, 总控节点宕机,总控节点的备份节点(一般称为Slave)需要能够检测到并替换成主节点继续对外服务。 检测一台机器是否宕机必须是可靠的。在大规模集群中,机器可能出现各种异常,比如停电,磁盘故障,过于繁忙导致假死等。对于机器假死,如果总控节点认为机器宕机并将服务迁移到其它节点,假死的机器又认为...
    分布式文件系统很多,包括GFS,HDFS,淘宝开源的TFS,Tencent用于相册存储的TFS (Tencent FS,为了便于区别,后续称为QFS),以及Facebook Haystack。其中,TFS,QFS以及Haystack需要解决的问题以及架构都很类似,这三个文件系统称为Blob FS (Blob File System)。本文从分布式架构的角度对三种典型的文件系统进行对比。 我们先看GFS和HDFS。HDFS基本可以认为是GFS的一个简化版实现,二者因此有很多相似之处。
    常用的数据结构包括:数组,队列,堆栈,链表,树(平衡二叉树,B树,Trie树,堆),哈希表,图,后缀数组,等等。其中,堆,图结构,Trie树及后缀数组解决特定问题,其它数据结构解决通用的查找,更新,删除操作。 查找,更新和删除操作一般是O(1),O(logN)或者O(N),通用的数据结果大致可分为如下三种: 1, 极端型;某些操作的算法复杂度为O(1),另外一些算法复杂度为O(N),比如有序链表查找复杂度为O(N),更新和删除为O(1); 2,...
    zookeeper简介 zookeeper是一个开源分布式的服务,它提供了分布式协作,分布式同步,配置管理等功能. 其实现的功能与google的chubby基本一致.zookeeper的官方网站已经写了一篇非常经典的概述性文章,请大家参阅:ZooKeeper: A Distributed Coordination Service for Distributed Applications 在此我仅花少量笔墨介绍下本文相关的内容。 在zookeeper的集群中,各个节点共有下面3种角色和4种状态: 角色:leader,follower,observer 状态...
    HBase简介 HBase
    Hadoop平台已经成为了大多数公司的分布式数据处理平台,随着数据规模的越来越大,对集群的压力也越来越大,集群的每个节点负担自然就会加重,而且集群内部的网络带宽有限,数据交换吞吐量也在面临考验,由此引发了人们对大规模数据处理进行优化的思考。 本文仅从实践经验出发,针对Hadoop Job优化提出了一些观点,不包含HDFS的优化。 Job Tracker Related 严格来说,下面这个配置项,是决定HDFS文件block数量的多少(也就是文件个数...
    在2010年4月,Google的网页索引更新实现了实时更新,在今年的OSDI大会上,Google首次公布了有关这一技术的论文。          在此之前,Google的索引更新,采用的的批处理的方式(map/reduce),也就是当增量数据达到一定规模之后,把增量数据和全量索引库Join,得到最新的索引数据。采用新的索引更新系统之后,数据的生命周期缩短了50%,所谓的数据生命周期是指,数据从网页上爬下...
    这篇论文讲的是,一个全球的搜索引擎,需要在不同的地区布署一套服务,不同地区的索引不同。注:这也很容易理解,首先是带宽的压力,索引一般都是TB级别的,不能到处拷;其次是性能考虑,不同地区用户关注的网页是不同的,把用户不需要的网页也加进索引里,会使得检索性能很差。但是如果要地区的索引不能满足用户的需求,需要读取别的地区的索引的时候,怎么办?需要解决两个问题,一是是否需要读取别的地区的索引,二是读取哪...
    6.优化前面一章描述了BT的实现,我们还需要很多优化工作来获得用户需要的高性能,高可用性和高可靠性.本章描述实现的一些部分,以强调这些优化.局部性群组客户可以将多个列族组合成局部性群族.对每个子表中的每个局部性群组都会生成一个单独的SSTable.将通常不会一起访问的列族分割成不同的局部 性群组,将会提高读取效率.例如,Webtable中的网页元数据(语言和校验和之类的)可以在...
    5.实现BT 的实现有三个主要组件:客户程序库,一个主服务器和多个子表服务器.针对负载的变化,可以动态的从服务器群中添加(或者去除)子表服务器.主服务器的任务 是:给子表服务器指定子表,检测加入或者失效的子表服务器,子表服务器负载均衡,以及对google文件系统的文件进行垃圾收集.除此之外,它还处理诸如 建立表和列族之类的表模式改变工作.每个子表服务器管理一个子表集合(通常每个服务器处理数十乃至上千个...
    这篇大表,是我和彼岸合作在06年翻译的。后来我放弃了免费的my.donews上面的blog,后来那个免费的blog也消失了。现在从网络上面各方转载的地方恢复一下。 http://labs.google.com/papers/bigtable-osdi06.pdf {中是译者评论,程序除外} {本文的翻译可能有不准确的地方,详细资料请参考原文.} 摘要 bigtable是设计来分布存储大规模结构化数据的,从设计上它可 以扩展到上2^50字节,分布存储在几千个普通服务器上.Google的很多项目...
    维基百科上对 Memcached 的介绍是一个分布式的缓存系统, 但是 Memcachd 到底是什么意思,有什么作用呢?缓存一般用来保存一些经常被存取的数据和资源(例如:浏览器会将访问过的网页会话缓存起来),因为通过缓存来存取数据要比从磁盘存取同样的数据要快得多。所以 Memcached 顾名思义,意味着 “内存缓存”,所有缓存的内容都在服务器的内存中。内存中的这些缓存数据可以通过 API 的方式被存取。数据是以 key/value 的配对方式...
    因为近来在研究 Mogilefs 的分布文件系统,在读读这个的源码,别外,为公司新设计了一个下载的系统,所以更加要深入研究一下,因为这个好东西是 Perl 写的,真不容易,在读这个的时间发现了几个好东西,其中一个就是我现在要提到的 Gearman ,这是个分布的任务分发的框架。使用 Perl 写的。后来用 C 重写了其中一些部分。作者 Brad Fitzpatrick 大神开发的 Gearman, 他原来是 livejournal 的成员,设计最初也是用于LiveJournal的图片 resize 功能,目前是 Google 的成员.
    Google 的 Jeff Dean 同学说,设计分布式系统一定要有 Protocol Description Language。Google Proto Buffers 的意义在于,定义了一个不错的 PDL 。protobuffers 的实现反而不那么重要了。这几天我一直在倒腾 lua 下的 proto buffers 的支持。一直在思考,怎样的接口才是最适合 lua 使用的。大多数语言下的 proto buffers 实现,都是将编码的数据块展开成本地语言的数据结构。对于 C/C++ ,这是最高效的形式。但对于动态语言,那就...
    数据库的可用性和扩展性一直是数据库厂商和用户最关注的问题。过去我们采用高端的设备,比如使用小型机和大型存储来保证数据库的可用 性。而扩展性主要采用向上扩展(Scale up)的方式,通过增加CPU,内存,磁盘等方式提高处理能力。这种集中式数据库的架构,使得数据库成为了整个系统的瓶颈,已经越来越不适应海量数据对计 算能力的巨大需求。近些年来,分布式系统成为了一种趋势,我们...
    分布式系统的hash策略,决定了数据的分布。传统的方式采用mod n的算法,非常简单,但是一旦节点发生变化,所有的数据都需要重组,代价非常大。一致性哈希(Consistent hash)很好的解决了这个问题,当节点发生变化时,只会影响到部分数据,而且永远可以找到一个提供服务的节点。对于数据库Sharding的架构,Consistent hash并不十分适合,我们采用了一种新的hash策略,我将其称之为“Virtual Partition Hash”策略。为了解决节点数...
[ 共66篇文章 ][ 第3页/共4页 ][ 1 ][ 2 ][ 3 ][ 4 ]
© 2009 - 2024 by blogread.cn 微博:@IT技术博客大学习

京ICP备15002552号-1