
《大规模分布式存储》
文章平均质量分 81
小埋汰0919
这个作者很懒,什么都没留下…
展开
-
《大规模分布式存储系统》第一章 概述
分布式存储概念分布式存储系统具备以下几个特点:可扩展:目前分布式存储系统几百台规模很常见,多的可以达到几千上万台,Amazon S3设计目标甚至达到10-30万台。集群规模并不是初始化阶段就会达到很大,都是随着业务的增长逐渐扩展,需要分布式系统支持可扩展。而且随着集群规模的增长,系统整体性能也需要呈线性增加。低成本:成本分为两部分,一部分是机器成本,分布式系统需要在异构的机器上运行,且机器可能是比...原创 2018-02-08 23:38:41 · 686 阅读 · 0 评论 -
《大规模分布式存储系统》第二章 单机存储系统
硬件基础CPU:首先,区分 多核处理器 与 多处理器,简单理解多处理器对应多CPU,多核处理器(core)是一个处理器(CPU)上集成多个核心,每个核心(core)是真正运行线程的物理单位,即一个CPU上有多个core,可以多线程并发执行。其次,了解多处理器的架构,主要包括CPU、core、L1Cache、L2Cache、L3Cache、内存、总线组成,其中L1Cache分为L1iCache(指令...原创 2018-02-25 16:57:19 · 699 阅读 · 0 评论 -
《大规模分布式存储系统》第六章 分布式表格系统
Google BigTable表格存储 与 键值存储 表格存储的数据格式<rowkey,column family,timestamp>代表一行,所有的数据是主键(rowkey)排序的,可以抽象为主键为key,行尾value的键值存储,故称键值存储是表格存储的一个特例。 需要注意的是,column family表示列组(很多列,需要预先定义),每列还可以有qualifler...原创 2018-03-04 14:30:50 · 1136 阅读 · 0 评论 -
《大规模分布式存储系统》第七章 分布式数据库
数据库中间层 本部分主要是介绍SQL集群化涉及的一些组件,主要包括:proxy、数据节点、agent、元数据节点等,与目前主流分布式存储系统无异。目前基于SQL的分布式数据库,最被诟病的几个问题主要如下: 1. 扩展性差,成倍扩容,甚至需要停止服务一段时间。 2. 单机SQL性能较差,单机吞吐的限制,会导致可用性下降(与引擎相关)。 3. 数据库复制,采用异步方式,可能有数...原创 2018-03-04 16:17:20 · 440 阅读 · 0 评论 -
《大规模分布式存储系统》第五章 分布式键值系统
Dynamo问题与方案数据分布一致性Hash分片内一致性协议NWR数据冲突处理向量时钟临时故障处理数据回传永久性故障恢复Merkle哈希树节点故障探测及元信息Gossip协议数据分布 常见的一致性Hash(虚拟节点、哈希环等),集群的元信息通过Gossip传播,每个节点都全量的存储集群元信息。一致性与复制 NWR保证数据的读写一致性,问题是分片内不区分主从,数据更新的协调者不是单点,引...原创 2018-02-28 20:18:45 · 879 阅读 · 0 评论 -
《大规模分布式存储系统》第十章 数据库功能
只读事务 首先,MergeServer模块中SQL层进行SQL语句解析、词法分析、申城语法树,其中查询优化是MySQL的核心和难点,但是OceanBase在本部分并没有很多工作。其次,无论是单表查询还是多表查询都会根据需求拆分为子请求,分发到目的ChunkServer上执行。最后,OceanBase 原则上尽量保持存储节点与计算节点一致,即ChunkServer可以计算的,尽量在ChunkS...原创 2018-03-08 16:29:00 · 293 阅读 · 0 评论 -
《大规模分布式存储系统》第四章 分布式文件系统
GFS系统特点:对大文件友好,支持追加写。租约机制:Chunk之间通过租约机制选主,减少了Master的压力。追加流程 数据流是复制连,控制流与数据流分开。数据流是复制连的优点是,减少延时、节省带宽,尤其是在跨交换机的情境下。 数据流与控制流分开的优点是,GFS专门设计给大文件(舍弃小文件),猜测可能是在异常情况下(例如,切主)减少带宽(数据流记录在日志中,控制流决定是否写入,如果切主...原创 2018-02-28 15:46:49 · 540 阅读 · 0 评论 -
《大规模分布式存储系统》第九章 分布式存储引擎
概述 本章主要介绍 OceanBase 分布式引擎层各模块的实现细节。涉及到数据结构、RPC开发框架、内存优化等细节,即使介绍的较为详细但是对于深入学习还是不够的,只能在日常工作中大量的实践才能充分体会。本部分只以个人视角,记录较为重要的技术。公共模块(基础库)内存管理:全局的内存池(64Kb、2MB两种),每个线程单独的内存管理。全局内存池好处有两个,第一是可以统计各模块的内存使用情况,第...原创 2018-03-07 18:01:20 · 411 阅读 · 0 评论 -
《大规模分布式存储系统》第三章 分布式系统
基本概念1. 异常类型 服务器宕机、网络异常、磁盘故障。2. 超时 在分布式系统中,机器交互有三个结果,即成功、失败、超时。超时单作为一小节讲述,表明了其特殊性。节点间交互超时返回,并不意味着失败,也可能成功,这种不确定性需要特殊的设计机制保证系统的确定性。一个典型的解决方案是,所有的操作是幂等的,这样重试即可。3. 一致性 分片内数据的一致性,可以从用户角度和存储系统两个角度描...原创 2018-02-27 15:15:38 · 390 阅读 · 0 评论 -
《大规模分布式存储系统》第八章 OceanBase 架构初探
设计目标 及 设计思路1. PB级存储量、数十万级TPS、数百级QPS。2. 支持跨行跨表事务。3. 可扩展、低成本、易用。 传统的数据库分库分表在性能上满不足不了需求的。BigTable仅支持单行事务。Google Percolator 使用BigTable + 2PC 技术实现分布式事务,但是性能不满足需求(2-5s),比较适合网页建库这样的半线上业务。 分析淘宝的业务发现,短时(...原创 2018-03-06 16:31:35 · 667 阅读 · 0 评论