赞
踩
答:可扩展、低成本、高性能
答:文件模型、键值模型、表格模型
答:数据分布、一致性、容错、负载均衡、并发控制、易用性、压缩/解压缩
答:集群整体切换、单个集群跨机房、Paxos选主副本
答:原子性(atomicity)、一致性(consistency)、隔离性(isolation)、持久性(durability)
答:成功、失败、超时
答:性能、可用性、可扩展性、一致性
答:DataServer管理、映射关系维护、Block管理
答:主控服务器、数据块服务器、客户端
答:数据回传、Merkle树同步、读取修复
答:强一致性、弱一致性、最终一致性
答:客户端库、协调者、复制服务器
答:准备、批准、确认
答:命名空间、文件到chunk之间的映射、chunk副本的位置信息
答:租约机制(lease)
答:无中心节点、最终一致性、可扩展
答:服务器宕机、网络异常和磁盘故障。
答:副本一致性和更新顺序一致性
答:强同步或者异步
答:顺序分布
答:冗余存储
答:租约机制
答:用来实现分布式事务
答:用于确保多个节点对某个投票达成一致
答:向量时钟
答:不仅支持简单的CRUD操作,还支持扫描
答:GPS和原子钟
答:介于传统的关系型数据库和NoSQL的存储技术
答:多个逻辑图片文件共享一个物理文件
答:子表
答:Blob对象、定长块和大文件
答:Paxos协议
答:原子性(atomicity):指事务的不可分割性,一个事务的所有操作要么不间断地全部被执行,要么一个也没有执行。
一致性(consistency):一个或多个事务执行后,原来一致的数据和数据库仍然是一致的。
隔离性(isolation) :一个事务内部的操作及使用的数据对其他事务是隔离的,并发执行的各个事务之间不能相互干扰。
持久性(durability):事务完成后,它对于数据库的影响是永久性的,即使系统出现各种异常也是如此。
答:分布式存储系统数据分布的主要方法有散列分布和顺序分布,散列分布采用某种算法将数据分散到各存储设备,顺序分布一般应用在表格和键值系统,按照主键顺序有序分布
答:采用的改进的一致性哈希算法
基本思想:每个物理节点根据性能的差异分配多个token,每个token对应一个“虚拟节点”;每个虚拟节点的处理能力基本相当,并随机分布在哈希空间中;数据按照哈希值落到某个虚拟节点负责的区域,然后被存储在该虚拟节点对应的物理节点中。
答:CAP定理又称 CAP原则,指在分布式系统中,一致性 (Consistency) 、可用性 (Availability) 、分区容错性 (Partition Tolerance) 、三者不可兼得
答:在分布式系统中,因为节点分布在不可靠的网络中,原子性问题更加复杂,不仅需要确保一个操作在一个节点上的原子性,还要确保一个操作在多个节点上的原子性,也就是说,操作要么在所有的节点上都生效,要么不在任何一个节点上生效,每个节点提交或中止事务的操作要保持一致。
可以使用两阶段提交、三阶段提交、Paxos提交算法、Saga事务等原子提交算法来保证分布式事务的原子性。
如:两阶段提交(Two-Phase Commit,2PC)由两个阶段组成,是最经典的原子提交协议。包含两个角色:协调者 (Coordinator) 和参与者 (Participants),协调者负责协调算法的各个阶段,而参与者则参与到事务中执行事务操作,也可以选择其中一个参与者来同时扮演协调者。
两阶段提交协议执行过程如下:
阶段1:请求阶段(Prepare Phase)。在请求阶段,协调者通知事务参与者准备提交或者取消事务,然后进入表决过程。在表决过程中,参与者将告知协调者自己的决策:同意(事务参与者本地执行成功)或者取消(事务参与者本地执行失败)
阶段2:提交阶段(Commit Phase)。在提交阶段,协调者将基于第一个阶段的投票结果进行决策:提交或者取消。当且仅当所有的参与者同意提交事务协调者才通知所有的参与者提交事务,否则协调者通知所有的参与者取消事务。参与者在接收到协调者发来的消息后执行相应的操作。
或者举Paxos的例子
答:中间控制节点架构:部分节点NameNode存放管理数,另一部分节点DataNode存放业务数据,DataNode负责管理具体数据
完全无中心架构-计算模式:客户端通过一个设备映射关系计算出数据写入的位置,实现与存储节点的直接通信,避免中心节点的性能瓶颈
完全无中心架构-一致性哈希:通过一致性哈希将设备做成一个哈希环,然后根据数据名称计算出的哈希值映射到哈希环的某个位置,实现数据的定位
答:算法思想如下:给系统中每个节点分配一个随机 token,这些 token 构成一个哈希环。执行数据存放操作时,先计算 Key(主键)的哈希值,然后存放到顺时针方向第一个大于或者等于该哈希值的 token 所在的节点。
优点在于节点加入/删除时只会影响到在哈希环中相邻的节点,而对其他节点没影响。
该算法主要用于解决分布式存储系统中的数据分布和负载均衡问题
答:TFS和GFS的相同处为都采用了主控节点设置,利用主控节点对整个系统进行管理;和GFS类似,TFS的负载均衡也需要考虑机架分布、磁盘利用率、数据服务器读写负载等因素;TFS内部不维护文件目录树,每个小文件使用一个64位的编号;TFS是一个读多写少的应用,其写流程更为简单有效
答:同构系统:将存储系统分为若干组,每组内的节点服务完全相同的数据,其中一个节点为主节点,其他节点为备节点同构系统增加副本需要迁移的数据量太大,拷贝需花费的时间过长,再次发生故障的概率也很高。
异构系统:将数据划分为很多大小接近的分片,每个分片的多个副本分布在集群中的任意一个存储节点由于应用了数据分片,异构系统故障恢复的时间很短,且集群规模越大,优势越明显。
答:准备:Proposer首先发送一个提议序号n给其他节点,如果提议的序号大于Acceptor已经回复的所有消息,则Acceptor将自己上次接受的提议回复Proposer
批准:如果Acceptor回复了上次接受的提议,Proposer选择序号最大的提议值发给Acceptor批准,否则Proposer生成一个新的提议值发给Acceptor批准
确认:如果超过一半的Acceptor接受,提议值生效
作用:Paxos协议确保在主节点出现问题时,能够顺利的选举出新的主节点。
答:①客户端向Master请求每个副本所在的ChunkServer,其中主服务器持有修改租约;②Master返回客户端主副本所在的ChunkServer的位置信息,客户端缓存这些信息供以后使用;③客户端将要追加的记录发送到每一个副本,每一个ChunkServer 会在内部缓存这些数据;④当所有副本都确认收到数据,客户端会发起一个写请求控制命令给主副本;⑤主副本把写请求提交给所有的备副本,每一个备副本会根据主副本确定的顺序执行写操作;⑥备副本成功完成后应答主副本;主副本应答客户端,如果有副本发生错误,将出现主副本写成功但是某些备副本不成功的情况,客户端将重试。
答:Dynamo采用一致性哈希算法解决数据分布问题
采用复制写协议解决数据复制问题
向量时钟解决数据冲突问题
数据回传机制对临时故障进行处理
采用Merkle哈希树对永久故障进行恢复
利用Gossip的成员资格和错误检测协议对成员资格及错误进行检测
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。