The Chubby lock service for loosely-coupled distributed systems 论文阅读笔记

本文是《The Chubby lock service for loosely - coupled distributed systems》论文阅读笔记,介绍了 Chubby 锁服务特点,如高可靠、高可用等,主要用于集群配置管理和系统元数据。还阐述了其设计,包括系统结构、锁机制、事件监听、客户端缓存等,以及故障切换保证服务稳定。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

The Chubby lock service for loosely-coupled distributed systems 论文阅读笔记

特点:高可靠、高可用、粗粒度锁服务、小文件存储
主要用于高可用的集群配置管理和系统元数据

  • GFS:使用 Chubby lock 任命 master server
  • Bigtable
    • 选举 master
    • master 轮询获得下面的 server
    • client 找到 master

设计

  • 选择锁服务,而不是分布式共识服务
  • 支持小文件,让 leader 可以写入参数,而不是维护另一个服务

情况

  • 很多 server 读配置参数
  • 当 leader 变更,server 需要通知机制
  • consistent server caching

系统结构

在这里插入图片描述

每个 Chubby cell 根据分布式共识算法来选出一个 master,master 负责读写操作,其他都是 replica。(外界怎么知道谁是 master)

file, directory, handle

Chubby 的命名结构类似文件系统,每个 directory 包含一个所有 sub-file 和 sub-directory 的列表,而每个 file 包含一串二进制字节。file 和 directory 统一叫做 node。node 在其所在的 Chubby cell 内只有一个名字,没有符号链接和硬链接。
node 可以是 permanent 或者 ephemeral。

lock 和 sequencer

由于 communication 的复杂与不稳定性,在使用锁服务的交互中使用序号,即虚拟时间戳。

我认为引入时间戳是因为锁有 fence 语义,所以要保证其中事件的同步。

如果一个锁是因为持有者停止工作或者不可访问,锁服务将阻塞其他的 server 在一个被称作锁延时(lock-delay)的时间段内索取该锁。

event

client 可以注册一些监听事件,当某些动作发生时,就可以收到消息。这样减少了轮询的开销。

consistent client caching

客户端缓存文件数据和结点元数据,有两种方式使得缓存过期:

  1. 超过 lease 的时间
  2. 接收到 master 发出的 invalidation 信号(消息延迟怎么处理?标记序号?)

当数据将被修改时,master 先阻塞写操作,发出 invalidation 信号,并且可能等待 lease 超时。直到确保 client 缓存失效后才执行写操作。(要么因为客户端答谢了过期信号,要么因为客户端让它的缓存租期(cache lease)过期。)

如果两个机器的时间速率不一样咋办?

Session 和 KeepAlive

client 发起 KeepAlive RPC,master 阻塞直到 client 的 lease 快过期才返回,并延长 lease。client 在收到上一个回复以后立即发起一个新的 KeepAlive RPC,这样 client 保证几乎总是有一个 KeepAlive RPC 阻塞在 master 上。
KeepAlive 还可以搭载事件,比如 cache invalidation。

如果 client 的 lease 过期了,那么这个 session 称为 jeopardy。这之后的一段指定时间内,给一个被续的机会。如果没有被续上,那么这个 session 就过期了。

故障切换

在这里插入图片描述

说了那么多,总之就是向应用程序保证,仿佛 master 没有发生过故障。

Reference

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值