Chubby:面向松耦合分布式系统的锁服务

Chubby:面向松耦合分布式系统的锁服务

Mike Burrows, Google Inc.

摘要

我们描述了使用 Chubby 锁服务的经验。Chubby 旨在为松耦合的分布式系统提供粗粒度的锁定机制,以及可靠(尽管数据量较小)的存储功能。Chubby 提供的接口类似于一个带有建议性锁(advisory locks)的分布式文件系统,但其设计重点在于可用性与可靠性,而非高性能。多个 Chubby 服务实例已运行超过一年,其中一些实例同时为数万个客户端提供服务。本文介绍了该系统最初的设想与预期用途,将其与实际使用情况进行对比,并解释了为适应这些差异而对设计所做的修改。

1. 引言

本文介绍了一种名为 Chubby 的锁服务。它旨在用于由中等规模数量的小型机器通过高速网络连接而成的松耦合分布式系统。例如,一个 Chubby 实例(也称为一个 Chubby 单元,Chubby cell)可能为一万个四核处理器的机器提供服务,这些机器通过 1Gbit/s 的以太网连接。大多数 Chubby 单元被限制在单个数据中心或机房内,但我们确实运行着至少一个 Chubby 单元,其副本之间相隔数千公里。

锁服务的目的是让其客户端能够同步它们的操作,并就其运行环境的基本信息达成一致。该服务的主要目标包括可靠性、能够为中等规模数量的客户端提供高可用性,以及提供易于理解的语义;而吞吐量和存储容量则被视为次要目标。Chubby 的客户端接口类似于一个简单的文件系统,支持对整个文件的读写操作,并扩展了建议性锁功能,以及对各种事件(如文件修改)的通知机制。

我们原本期望 Chubby 能帮助开发者处理系统中的粗粒度同步问题,特别是解决从一组功能相同的服务器中选举主节点(leader) 的难题。

例如,

最后更新于