[姚文辉课程笔记]链式写流程与主从模式写流程

【链式写正常流程】

(1)Client端进程在Master上打开文件写(Client请求时传输文件名,Master返回数据写入位置等)。
(2)Client端以链式方式将数据写入到多个CS中。
Client将数据传递给CS1,CS1将数据传递给CS2,CS2将数据传递给CS3……最后一个节点将写入成功的结果依次向上传递给Client。

【写流程——主从模式】

链式写入方式适合:数据写入量大,但是不注重latency(延迟)的业务。
主从模式适合:数据写入频繁,要求低延迟的业务。
primary:写操作的协调者和接收者
replica:数据的接收者
流程:
(1)Client将数据传送给Primary,Primary将数据转发给另外两台Replica,等到所有数据都合并到内存的cache后,Primary返回给Client确认消息。
(2)等待Replica将所有数据都写入到物理磁盘后,Replica将发送磁盘写入成功的消息给Primary。Primary在将数据成功写入磁盘后,也将发送数据写入成功的消息给Client。
分析:
(1)Primary流量是两份流量(有两个Replica交互)。如果是数据导入量较大的业务,则不适合。
(2)在写入3个副本的情况下,只需两跳即可达到Client端(1个Primary和2个Replica一共写了3个副本,之后Replica发送一跳到Primary,Primary再发送一跳到Client,一共需要发送两跳)。从而减小了网络延迟。

【链式写入异常】

以链式写入方式为例。使用链式写入方式在写入时,如果链条中间节点写入失败,可以采取放弃写入,直接写入到失败节点后边的节点的方法来提高写入成功率。

【Seal and New】

在性能和数据安全方面进行协调以满足业务需求。
前提是Chunk的长度是不固定的(因此导致需要更多meta管理)。
(1)Seal(封闭):当发现异常节点时,先Seal当前正在写的chunk副本,不再允许写入,然后以当前最短的副本作为chunk的标准长度。
(2)New:申请一个新的chunk,在新的chunk副本继续写入数据。

0

Leave a Reply

Your email address will not be published.