当前位置: 首页 > news >正文

天津市工程建设信息系统/太原自动seo

天津市工程建设信息系统,太原自动seo,成品网站源码1688自动跳转,做网站 图片是文本论文 Chain Replication for SupportingHigh Throughput and Availability 提出了链式复制(Chain Replication)的方案,用于在保证强一致性的同时,提供支持高吞吐和高可用的存储服务。 原始的 Chain Replication 方案在性能上存在…

论文 Chain Replication for SupportingHigh Throughput and Availability 提出了链式复制(Chain Replication)的方案,用于在保证强一致性的同时,提供支持高吞吐和高可用的存储服务。

原始的 Chain Replication 方案在性能上存在一些问题,因为数据读取只能在 tail 节点进行,这样会导致 tail 节点压力过大,而其他节点利用率较低。后续普林斯顿大学发表了论文Object Storage on CRAQ,提出了 CRAQ 的方案,通过将数据读请求分摊到所有节点的方式提高了读取性能。

这里我们来详细读下 CRAQ 的论文,看看其是如何解决原始 Chain Replication 方案的性能问题的。

CRAQ 基本原理

原始的 Chain Replication 读写数据流程是:

  • 写请求发送到 header 节点,依次向后传播,直到 tail 节点写入成功后,由 tail 节点响应给客户端。
  • 读请求发送到 tail 节点,由 tail 节点响应给客户端。

chain-replication-01

可以看到真正对外提供访问的只有 header 和 tail 节点,其他节点只是单纯的负责数据备份,造成了一定程度的资源浪费。

CRAQ 全称为 Chain Replication with Apportioned Queries,顾名思义就是将查询进行了分摊(Apportioned),其将负载分摊到所有节点,提高了读取性能。整个读写过程变成了下面这样:

写操作

如图中蓝色的箭头所示:

  1. 写请求依然发送到 header 节点,并沿着链向后传递到 tail 节点,但 tail 节点写入成功后不在直接响应给客户端,而是基于 TCP 协议通信,向其 predecessor 节点响应 ACK 消息,节点在收到 ACK 消息后确认写入成功。

  2. 每个 object 会有一个单调递增的版本号(本质就是一个逻辑时钟),每次更新都会导致版本号递增。同时维护一个状态属性,默认为 clean,当有写请求进来更新 object 时,节点将版本号递增,同时存储两个版本的数据,并设置最新版本的状态为 dirty

  3. 节点在收到 successor 节点的 ACK 后,确认写入成功,会将旧版本数据清理并更新对象状态为 clean

读操作

  1. 读请求可以发送到任意节点。

  2. 如果节点对应 object 的状态为 clean,则直接响应给客户端。

  3. 如果节点对应 object 的状态为 dirty,则节点会向 tail 节点发送请求,查询对应 object 的数据,最终以 tail 节点的数据为准进行返回

可以看到,采用 CRAQ 方案时,服务的读性能与链的长度呈线性关系。对于写负载的高的场景,可能过多的 dirty 数据会导致 tail 节点要频繁的执行版本查询,一个优化方案是将 tail 节点只作为版本查询的处理使用,不对外提供查询服务。

http://www.lryc.cn/news/580478.html

相关文章:

  • wordpress插件制作教程视频/seo软件定制
  • 越秀网站建设策划/免费网站自助建站系统
  • 网站建设项目/聚名网官网登录
  • 武汉网站建设华企加速器/广告门
  • 网站开发常遇到客户问题/10种营销方法
  • 怎么自己做淘宝网站吗/网络广告推广方案
  • 网站 侧边栏/广州品牌营销服务
  • 国外ui界面设计网站/网络营销策划步骤
  • 门户网站建设目的/大连谷歌seo
  • 做旅游网站的目的是什么/百度推广是干什么的
  • 廊坊哪里有做网站的/百度下载免费
  • frontpage网站建设论文/网站开发的流程
  • 成都市网站建设费用及企业/关键词的选取原则有
  • 哪个浏览器可以做网站/纵横seo
  • 门头广告设计图片/济南seo关键词优化方案
  • 腾讯企点怎么删除聊天记录/百度网站优化培训
  • <三>Sping-AI alibaba 文生图
  • 08_容器化与微服务:构建弹性架构
  • 在 Windows 上安装和运行 Apache Kafka
  • FLUX.1-Kontext 高效训练 LoRA:释放大语言模型定制化潜能的完整指南
  • bean注入的过程中,Property of ‘java.util.ArrayList‘ type cannot be injected by ‘List‘
  • [学习] 深入理解 POSIX
  • 不依赖框架,如何用 JS 实现一个完整的前端路由系统
  • Linux systemd 服务启动失败Main process exited, code=exited, status=203/EXEC
  • 浏览器与服务器的交互
  • 五、jenkins之升级jenkins
  • Python统一调用多家大模型API指南
  • puppteer page.$$eval 和 puppteer page.$eval
  • 【数据结构】排序算法:归并与堆
  • HarmonyOS学习1---ArkTs语法