问题 问答题 案例分析题

阅读以下关于分布式存储系统设计的叙述,回答问题1至问题3。

某软件公司开发基于云计算的分布式文档协作平台(DDCP),系统部分需求如下所述:

(1)实现文档的分布式存储,客户端可随时随地上传和下载文档;

(2)支持多客户端并发编辑同一文档,某个客户端所做修改会实时显示在其他客户端;

(3)要求系统具有自我修复机制,当系统中某个节点失效时,无需人工干预能够自动实现节点替换并恢复到一致状态。

项目组经过讨论,决定采用现有的分布式文件系统作为基础架构,但在具体选用哪种设计方案时产生了分歧。王工建议采用Hadoop分布式文件系统HDFS作为系统参考架构,但张工认为Google分布式文件系统GFS更适合该系统需求。最后经过更为详细的分析和讨论,同意了张工的建议,采用GFS作为分布式文档协作平台的文件系统架构。

针对图2-1所示DDCP基础架构,请分别说明一次数据读操作和一次并发写操作的过程。

答案

参考答案:

读数据过程:

①应用程序将读数据请求发送给DDCP客户端;

②DDCP客户端访问DDCP主服务器请求所需数据位置信息;

③DDCP主服务器查询数据分块和地址信息发送给DDCP客户端;

④DDCP客户端根据地址信息向DDCP块服务器发送读数据请求;

⑤DDCP块服务器将所请求数据发送给DDCP客户端;⑥DDCP客户端将数据转发给应用程序。

并发写数据过程:

①并发写的应用程序分别将数据和写数据请求发送给DDCP客户端;

②DDCP客户端依次访问DDCP主服务器请求所写数据位置信息;

③DDCP主服务器依次查询数据分块和地址信息发送给DDCP客户端;

④DDCP客户端将所要写入的数据重新组织,将属于同一个DDCP块服务器的数据按照分组报文和分组序列信息发送给DDCP块服务器数据缓存(Primary);

⑤DDCP客户端将所写数据按照分组报文发送给DDCP块服务器数据缓存(Secondary);

⑥DDCP块服务器数据缓存(Primary)按照分组序列将数据写入到DDCP块服务器数据块(Primary);

⑦DDCP块服务器(Primary)将分组序列发送给DDCP块服务器(Secondary);

⑧DDCP块服务器数据缓存(Secondary)按照分组序列将数据写入DDCP块服务器数据块(Secondary);

⑨DDCP块服务器(Secondary)将写入完成信息发送给DDCP块服务器(Primary);

⑩DDCP块服务器数据(Primary)将写数据完成信息发送给DDCP客户端。

解析:

本问题要求考生认真分析图中给出的DDCP系统架构,依据图中节点之间的数据传输关系描述数据传输过程。(1)读数据的过程:应用程序将读数据请求发送给客户端后,客户端访问主服务器请求所需数据位置信息,主服务器查洵数据分块和地址信息返网给客户端,客户端根据地址信息向块服务器发送读数据请求,块服务器将所请求数据发送给客户端,客户端将数据转发给应用程序。

(2)写数据的过程:应用程序分别将数据和写数据请求发送给客户端,客户端依次访问主服务器请求所写数据位置信息,主服务器依次查询数据分块和地址信息发送给客户端,客户端将所要写入的数据重新组织,将属于同一个块服务器的数据按照分组报文和分组序列信息发送给块服务器数据缓存(Primary),客户端将所写数据按照分组报文发送给块服务器数据缓存(Secondary),块服务器数据缓存(Primary)按照分组序列将数据写入到块服务器数据块(Primary),块服务器(Primary)将分组序列发送给块服务器(Secondary),块服务器数据缓存(Secondary)按照分组序列将数据写入块服务器数据块(Secondary),块服务器(Secondary)将写入完成信息发送给块服务器(Primary),块服务器数据(Primary)将写数据完成信息发送给客户端。

填空题
单项选择题