chubby——用于松耦合分布式系统的锁服务

2023-10-27

chubby——用于松耦合分布式系统的锁服务
首先,Chubby是什么?Chubby主要用于解决分布式一致性问题。在一个分布式系统中,有一组的Process,它们需要确定一个Value。于是每个Process都提出了一个Value,一致性就是指只有其中的一个Value能够被选中作为最后确定的值,并且当这个值被选出来以后,所有的Process都需要被通知到。这就是一致性问题。
       其次,它是一个粗粒度的分布式锁服务。本质上,Chubby是Google设计的提供粗粒度锁服务的文件系统,存储大量小文件。每个文件就代表一个锁。在GFS中,创建文件就是进行“加锁”操作,创建文件成功的那个server其实就是抢占到了“锁”。用户通过打开、关闭、读取文件来获取共享锁或者独占锁;并通过通信机制,向用户发送更新信息。一群机器需要选举master时,这些机器同时申请某个锁文件。成功获取锁得服务器当选主服务器,并在文件中写入自己的地址。其他服务器通过读取文件中的数据获取master的地址。其他分布式系统可以使用它对共享资源的访问进行同步。同时这种锁服务是建议性的,而非强制性的,这样能带来更大的灵活性。
       Chubby的设计目标基于以下几点:高可用性、高可靠性、支持粗粒度的建议性锁服务、支持小规模文件直接存储,这些当然是拿高性能与存储能力tradeoff来的。
       图1是Chubby的整体架构,容易看出几点。一,Chubby共有5台服务器,其中一个是master,客户端与服务器之间使用RPC交互。我们会问,其他服务器是干什么的?没错,它们纯粹是作为master挂掉后的替代品。Zookeeper的多余服务器均是提供就近服务的,也就是,服务器会根据地理位置与网络
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

chubby——用于松耦合分布式系统的锁服务 的相关文章

随机推荐

  • Qt 智能指针详细介绍

    1 Qt智能指针概述 Qt 提供了一套基于父子对象的内存管理机制 所以我们很少需要去手动 delete 但程序中不一定所有类都是QObject的子类 这种情况下仍然需要使用一些智能指针 注意 在 Qt 中使用智能指针时 一定要避免发生多次析
  • 数据结构与算法——RB树简介

    二叉树 任何节点最多只允许有两个子节点 二叉搜索树 可以提供对数时间的元素插入和访问 任何节点的键值一定大于其左子树中的每一个节点的键值 并不小于其右子树中的每一个节点的键值 平衡二叉搜索树 平衡的意思是 没有任何一个节点过深 深度过大 二
  • R语言-相关

    相关系数是可以用来描述定量变量之间的关系 相关系数的符号 是表明关系的方向 正相关或负相关 其值 绝对值 大小表示关系的强弱程度 完全不相关时为0 完全相关时为1 一 相关的类型 1 Pearson Spearman和Kendall相关 P
  • nasal脚本起源与环境搭建(flightgear开源项目)

    目录 FlightGear FlightGear下载 nasal 脚本 nasal脚本起源 nasal脚本介绍 使用FlightGear内置的环境 使用开源的Nasal脚本解释器 Create VS project 创建 VS 工程 Fir
  • QT中有关QString的各种数据类型转换

    提示 刚接触QT 对类型转换不太熟悉的朋友们不需要再各个去查了 文章持续将更新有关QT中类型转换的内容 文章目录 一 QString QByteArray QJsonObject std string QStringList UTF 8 一
  • R语言broom包整洁化模型

    文章目录 载入包 建模 broom 整洁模型数据 purrr包向量化函数与broom包结合 broom是tidyverse系列包之一 可以帮助人们获得干净整洁的模型数据结果 有效改善了R语言建模的用户体验 载入包 library tidyv
  • SpringBoot自动装配原理

    文章目录 一 简介 二 自动装配源码分析 三 自动装配以mybatis举例 四 总结 一 简介 Spring Boot 的自动装配 Auto configuration 是 Spring Boot 框架中一项强大的功能 它可以根据应用程序的
  • 2021年中职“网络安全“江西省赛题—B-5:应急响应

    B 5 应急响应 1 黑客通过网络攻入本地服务器 在Web服务器的主页上外挂了一个木马连接 请你找到此连接并删除该连接 将对应的标题名称作为flag值提交 直接去连接去查看网站目录 发现有几个php文件 在3 php中发现了一句话木马 我们
  • word 2013 尾注后继续添加正文的方法

    通常 文档的尾注后面是不能再添加 编辑正文性质的内容的 这篇文章介绍一种稍微 曲折 的方法来解决这一问题 当我们利用尾注的方法在论文中添加参考文献时 如果参考文献后面还有正文内容 那么此方法将对你十分有用 1 准备文档的基本内容 我们先准备
  • ES6 数组内对象去重

    去重Set const arr 张三 张三 三张三 let set new Set arr set 自带去重 Set 张三 三张三 console log set console error Array from set 张三 三张三 去重
  • 深度优先搜索(dfs),宽度优先搜索(bfs),深度优先遍历,宽度优先遍历

    图的遍历 我们希望从图中某一顶点出发访遍图中其余顶点 且使每一个顶点仅被访问一次 通常有两条遍历图的路径 对有向图和无向图都适用 深度优先搜索 广度优先搜索 一 DFS 深度优先搜索 深度优先搜索 暴搜 一条路走到黑 1 树 排列数字为例
  • 《python语言程序设计》第5.9题---统计大学四年的总学费,十年后的学费。

    基础学费 base tuition 10000 每年增长幅度 increase rate 5 100 基础学费加每年增幅 incr year increase rate base tuition 需要统计从今年开始到大四的全部学费 此为判断
  • [入门]vscode 选中所有相同

    重命名变量 选中变量名后按F2 转到变量名的定义处 选中变量名后按F12 同时选择多个单词 Alt Click 同时选择上一行 Ctrl Alt Up 或者下一行 Ctrl Alt Down 的相同位置 依次找出文中所有的当前选中的单词 C
  • 使用CDN 大幅减少webpack打包大小,提升前端页面响应速度

    使用CDN 大幅提升页面加载速度 前言 之前做了一个静态网站 做了个关于地图的小工具 使用了element ui和xlsx两个组件 在打包之后静态资源目录下的文件大小达到了1 7m 使用nginx部署在我的云服务器上之后 我的配置很低1m带
  • day17-基础加强(类加载器和反射)

    1 类加载器 1 1类加载器 理解 作用 负责将 class文件 存储的物理文件 加载在到内存中 1 2类加载的过程 理解 类加载时机 创建类的实例 对象 调用类的类方法 访问类或者接口的类变量 或者为该类变量赋值 使用反射方式来强制创建某
  • VScode远程连接服务器

    由于teamviewer 向日葵远程连接十分卡顿 通过ssh远程连接服务器进行开发是程序员必不可少的技能 下面主要介绍如何通过vscode cpolar进行远程连接 此处作者的客户端和服务端都是ubuntu18 04的系统 但是客户端的GP
  • linux 串口波特率的修改与sdma的设置

    最近这几天准备用串口实现DMA的传输数据 刚开始研究三天DMA 结果是一脸懵逼 无奈之下 只能跑去研究串口 结果发现Linux系统串口和DMA是真的难 小白 而且没人一起研究 芯片手册对应的页数可以让人放弃 最后还是放弃看芯片手册 从网上百
  • leetcode----三数之和图解

    原题链接 https leetcode cn com problems 3sum 三数之和 给你一个包含 n 个整数的数组 nums 判断 nums 中是否存在三个元素 a b c 使得 a b c 0 请你找出所有满足条件且不重复的三元组
  • 微信小程序 getUserProfile直接进入fail函数,getUserProfile调用失败:fail can only be invoked by user TAP gesture.

    问题描述 小程序更改了调用用户信息的接口 详情 调用getUserProfile直接进入失败 返回的错误信息如下 getUserProfile fail can only be invoked by user TAP gesture 大概意
  • chubby——用于松耦合分布式系统的锁服务

    chubby 用于松耦合分布式系统的锁服务 首先 Chubby是什么 Chubby主要用于解决分布式一致性问题 在一个分布式系统中 有一组的Process 它们需要确定一个Value 于是每个Process都提出了一个Value 一致性就是