标签存档: 架构

系统性能优化

性能优化的目标是什么?不外乎两个:(1)时间性能:减小系统执行的时间;(2)空间性能:减小系统占用的空间。如何从代码、工具、系统层面进行调优呢,请查看本文。

继续阅读 »

大规模服务器设计与开发实践经验(阅读笔记)

本文就设计与开发大规模服务器的话题进行总结,得出出一系列实践经验。设计和开发大规模服务器是一个高速发展的领域,本文的目的是:(1)快速交付运维友好的服务;(2)避免凌晨收到报警短信的骚扰(深受其害啊)。
进入正题之前,提出三点原则,这三点贯穿后面讨论的主轴:(1)故障时刻会发生;(2)KISS原则:时刻保持简单;(3)自动化;

继续阅读 »

Amazon Dynamo阅读笔记(四)

Dynamo系统的设计与实现的经验和教训(一点收尾)。

继续阅读 »

Amazon Dynamo阅读笔记(三)

Dynamo架构层面的考虑:接口、划分、复制、数据版本、故障处理、故障检测等等。

继续阅读 »

Amazon Dynamo阅读笔记(二)

Amazon Dynamo为什么不支持schema?系统的实现做了哪些假设?查询模型如何?是否支持ACID特性?如何保证效率?如何解决冲突?又有些什么样的设计原则?这些问题需要一一解答。

继续阅读 »

Amazon Dynamo阅读笔记(一)

大规模系统的可靠性是Amazon面临的巨大挑战之一,Amazon.com平台,为全球许多客户提供服务,它构建于成千上万的服务器之上,由许许多多网络基础设施组成。Dynamo是一个kv存储系统,提供基于主键的存取服务,它的核心思想是“去中心化”,并使用了一致性哈希,对象版本,仲裁,基于gossip的成员协议等等技术。

继续阅读 »

Google BigTable阅读笔记(四)

Google BigTable在实现上有何优化?整个项目又有啥经验教训呢?

继续阅读 »

Google BigTable阅读笔记(三)

Google BigTable实现细节是怎么样的呢?子(Tablet)表的位置信息是如何存储的?如何分配的?如何压缩存储的?

继续阅读 »

Google BigTable阅读笔记(二)

Google BigTable提供了怎样的客户端API?它的基础构件又是哪些?

继续阅读 »

Google BigTable阅读笔记(一)

Google BigTable是一个分布式的结构化数据存储系统,用来存储海量的数据,这些数据分布在以千计数的普通PC集群上。Google有很多项目都使用BigTable存储数据,如Web索引、Google地图、Google金融等。这些应用对存储量、响应速度、吞吐量需求各异,但BigTable还是成功成为一个灵活且高性能的解决方案。

继续阅读 »

Google MapReduce阅读笔记(三)

Google MapReduce如何支持多种分区函数与合并函数,如何保证顺序,支持何种输入输出类型,如何处理损坏数据,能否支持进度查看,这些问题都需要得到解决。

继续阅读 »

Google MapReduce阅读笔记(二)

MapReduce模型有多种实现方式,一种是小型共享内存式,一种是基于NUMA架构的大型多处理器。Google是如何实现MapReduce的呢?整个执行流又是怎么样的呢?

继续阅读 »

Google MapReduce阅读笔记(一)

MapReduce不是一个产品,它是一种基于分治思想,一种解决问题的思路。Google MapReduce是Google产出的一个编程模型,算法模型,当然Google也有其相关实现,提供给了用户相关函数接口:
(1)Map函数接口处理一个基于key/value(后简称kv)的成对(pair)数据集合,同时也输出基于kv的数据集合;
(2)Reduce函数接口用来合并Map输出的kv数据集合;
现实中有许多应用需求都能用这种模型处理,许多应用都能用这种方法解决。

继续阅读 »

GFS阅读笔记(三)

诊断与容错是GFS设计时需要考虑的重要因素:机器挂掉了怎么办?数据不完整怎么办?

继续阅读 »

GFS阅读笔记(二)

GFS系统设计原则是:最小化客户端与master的交互;master的职能是管理名字空间,元信息,并实施垃圾回收。

继续阅读 »

第 2 页,共 3 页123