分布式存储题库
分布式存储系统要求实现的特性有哪些?
答:低成本、高性能、可扩展、易用。
分布式存储系统设计的技术性挑战包括那些。
答:数据分布、一致性、容错、负载均衡、并发控制、易用性、压缩/解压缩。
非结构化数据对象主要代表有哪些?
答、图片、视频、音频。
常用的单机存储引擎有哪些?
答:哈希存储引擎、B树存储引擎、LSM树存储引擎。
分布式存储系统处理的数据模型有哪些?
答:文件模型、关系模型、键值模型。
单机存储中每秒读写次数最快的存储介质是什么。
答:内存。
分布式存储系统中跨机房部署的方案有哪些?
答:集群整体切换、单个集群跨机房、Paxos选主副本
事务的ACID特性指的是什么。
答:原子性(atomicity)、一致性(consistency)、隔离性(isolation)、持久性(durability)
数据库语言SQL的修改命令包含哪些?
答:INSERT、DELETE、UPDATE。
什么是事务?
答:数据库的一个或多个操作。
GFS系统的节点按角色分为哪些类型?
答:元数据服务器、主控服务器、客户端。
TFS 的NameServer具有的功能有哪些?
答:DataServer管理、映射关系维护、Block管理。
分布式存储系统中,“三态”指的是哪些?
答:成功、失败、超时。
从客户端的角度看,分布式系统的一致性有哪些类型?
答:强一致性、弱一致性、最终一致性。
完整的一轮Paxos协议包含哪些步骤?
答:准备、批准、确认。
GFS的主控服务器上保存了哪三种元数据信息?
答:命名空间、文件到chunk之间的映射、chunk副本的位置信息。
Dynamo分布式键值系统在设计时面临的主要问题有哪些?
答:数据分布问题、复制协议、数据冲突处理、临时故障处理、永久故障恢复、成员资格及错误检测。
Dynamo分布式键值系统的容错机制有哪些?
答:数据回传、Merkle树同步、读取修复。
Megastore系统的组成部分包含哪些?
答:客户端库、协调者、复制服务器。
Dynamo键值系统的性能特点有哪些?
答:无中心节点、最终一致性、可扩展、系统相对复杂。
存储系统的角度看,一致性主要包含哪些?
答:副本一致性、更新顺序一致性。
Google的Bigtable采用的数据分布方式是什么?
答:顺序分布。
分布式存储系统采用的主要容错技术是什么?
答:冗余存储。
分布式存储面临的数据类型有哪些?
答:结构化数据、半结构化数据、非结构化数据。
GFS通过什么将chunk写操作授权给ChunkServer。
答:租约机制。
分布式存储系统运行过程中可能出现的异常类型有哪些?
答:服务器宕机、网络异常和磁盘故障。
Paxos协议的作用是什么?
答:使多个节点对某个问题达成一致。
机房之间的数据同步方式可分为哪两种?
答:强同步、异步。
Dynamo中[nodes,counter]对表示什么?
答:向量时钟。
持久化Tair和非持久化Tair的区别是什么?
答:持久化Tair可以看成是一个分布式缓存,持久化的Tair将数据存放于磁盘中
分布式存储系统的故障检测机制是什么?
答:租约机制。
两阶段提交协议(Two-phase Commit, 2PC)的作用是什么?
答:实现分布式事务。
GFS的设计成功的经验表明了什么?
答:单Master的设计是可行的。
从存储数据类型上看,Google Megastore 的特点是什么?
答:存储数据介于关系型数据库和NOSQL之间。
TFS在设计时采用的思路是什么?
答:多个逻辑图片文件共享一个物理文件。
Bigtable访问控制的基本单元是什么?
答:子表。
Spanner通过实现了什么实现了跨数据中心的多个副本之间的一致性。
答:Paxos协议。
Dynamo设计支持哪种存储引擎?
答:可插拔
分布式表格系统支持哪些操作?
答:CRUD操作和扫描
Google Spanner中TrueTime API实现的基础是什么?
答:GPS和原子钟。
分布式存储系统数据分布的主要方法有哪些?
答:分布式存储系统数据分布的主要方法有散列分布和顺序分布,散列分布采用某种算法将数据分散到各存储设备,顺序分布一般应用在表格和键值系统,按照主键顺序有序分布。
事务的ACID特性指什么。
答:原子性(atomicity)、一致性(consistency)、隔离性(isolation)、持久性(durability)
什么是分布式存储系统中的CAP定理。
答:CAP定理又称 CAP原则,指在分布式系统中,一致性 (Consistency),可用性 (Availability),分区容错性 (Partition Tolerance),三者不可兼得。
Dynamo键值系统针对数据分布问题采用的方法及其基本思想。
答:采用的改进的一致性哈希算法。
基本思想:每个物理节点根据性能的差异分配多个token,每个token对应一个“虚拟节点”,每个虚拟节点的处理能力基本相当,并随机分布在哈希空间中,数据按照哈希值落到某个虚拟节点负责的区域,然后被存储在该虚拟节点对应的物理节点中。
分布式存储系统架构的主要类型及其技术特点。
答:中间控制节点架构:部分节点NameNode存放管理数,另一部分节点DataNode存放业务数据,DataNode负责管理具体数据。完全无中心架构-计算模式:客户端通过一个设备映射关系计算出数据写入的位置,实现与存储节点的直接通信,避免中心节点的性能瓶颈。完全无中心架构-一致性哈希:通过一致性哈希将设备做成一个哈希环,然后根据数据名称计算出的哈希值映射到哈希环的某个位置,实现数据的定位。
分布式系统如何实现分布式事务的原子性,详细描述一种实现分布式事务原子性方法的步骤。
答:在分布式系统中,操作要么在所有的节点上都生效,要么不在任何一个节点上生效,每个节点提交或中止事务的操作要保持一致。一般使用两阶段提交和Paxos协议等算法来保证事务的原子性。
两阶段提交由协调者负责协调算法的各个阶段,参与者参与到事务中执行事务操作。两阶段提交协议执行过程包括请求阶段和提交阶段。协调者发起提交请求,由参与者进行表决,当所有的参与者同意提交事务,协调者才通知所有的参与者提交。
Taotao文件系统TFS和Google文件系统GFS在架构设计上的异同。
答:TFS和GFS的相同处为都采用了主控节点设置,利用主控节点对整个系统进行管理。和GFS类似,TFS的负载均衡也需要考虑机架分布、磁盘利用率、数据服务器读写负载等因素。TFS内部不维护文件目录树,每个小文件使用一个64位的编号,TFS是一个读多写少的应用,其写流程更为简单有效。
Paxos协议的执行过程及其在分布式存储中发挥的主要作用。
答:准备:Proposer首先发送一个提议序号n给其他节点,如果提议的序号大于Acceptor已经回复的所有消息,则Acceptor将自己上次接受的提议回复Proposer。
批准:如果Acceptor回复了上次接受的提议,Proposer选择序号最大的提议值发给Acceptor批准,否则Proposer生成一个新的提议值发给Acceptor批准。
确认:如果超过一半的Acceptor接受,提议值生效。
作用:Paxos协议确保在主节点出现问题时,能够顺利的选举出新的主节点。
一致性哈希算法的思想和优点是什么,主要作用是什么。
答:算法思想:给系统中每个节点分配一个随机 token,这些 token 构成一个哈希环。
执行数据存放操作时,先计算 Key(主键)的哈希值,然后存放到顺时针方向第一个大于或者等于该哈希值的 token 所在的节点。
优点在于节点加入/删除时只会影响到在哈希环中相邻的节点,而对其他节点没影响。
Dynamo键值系统在系统设计上采用的关键分布式技术及解决的相关问题。
答:Dynamo采用一致性哈希算法解决数据分布问题
采用复制写协议解决数据复制问题
向量时钟解决数据冲突问题
数据回传机制对临时故障进行处理
采用Merkle哈希树对永久故障进行恢复
利用Gossip的成员资格和错误检测协议对成员资格及错误进行检测
分布式存储同构系统和异构系统的系统布置方式及其优缺点是什么。
答:同构系统:将存储系统分为若干组,每组内的节点服务完全相同的数据,其中一个节点为主节点,其他节点为备节点。同构系统增加副本需要迁移的数据量太大,拷贝需花费的时间过长,再次发生故障的概率也很高。
异构系统:将数据划分为很多大小接近的分片,每个分片的多个副本分布在集群中的任意一个存储节点。于应用了数据分片,异构系统故障恢复的时间很短,且集群规模越大,优势越明显。
Google文件系统GFS的追加流程。
答:客户端向Master请求每个副本所在的ChunkServer,其中主服务器持有修改租约; Master返回客户端主副本所在的ChunkServer的位置信息,客户端缓存这些信息供以后使用;客户端将要追加的记录发送到每一个副本,每一个ChunkServer 会在内部缓存这些数据;当所有副本都确认收到数据,客户端会发起一个写请求控制命令给主副本;主副本把写请求提交给所有的备副本,每一个备副本会根据主副本确定的顺序执行写操作; 备副本成功完成后应答主副本;主副本应答客户端,如果有副本发生错误,将出现主副本写成功,但是某些备副本不成功的情况,客户端将重试。