COPS论文总结——Lec17

news2024/11/25 4:58:17

文章目录

  • 一、简介
  • 二、ALPS
    • 1.可用性。
    • 2.低延迟。
    • 3.分区容忍。
    • 4.高可扩展性。
    • 5.对比CAP
  • 三、COPS的一致性
    • 1.一致性的分类
    • 2.Causal+ 一致性
      • (1)模型抽象
      • (2)Causal+ 定义

一、简介

1.论文的标题是‘Don’t Settle for Eventual:
Scalable Causal Consistency for Wide-Area Storage with COPS’,可以看出,论文提出了相对于‘最终一致性’更强的因果一致性的可扩展性,即Wide-Area存储COPS。
2.这篇论文的设计思想其实主要解决的是异地数据中心复制的问题,同时要保证因果一致性PLUS
3. 本文介绍一个KV存储系统COPS,其实现了集群级别的“带有收敛冲突处理的因果一致性”(Causal+),并有很好的扩展性。
收敛冲突处理,指的是不同的副本之间,通过相同的处理(解决冲突的行为相同),最终都会收敛至同一个结果。
4.本文还提出了具有事务一致性的KV存储:COPS-GT。

二、ALPS

1.可用性。

(availablity) 发出到数据存储的所有操作均已成功完成。 任何操作都不能无限期地阻塞或返回表明数据不可用的错误。

2.低延迟。

(low-latency) 客户操作“迅速”完成。商业服务级别的目标表明平均性能为几毫秒,而最差情况的性能(即99.9%)为10或100毫秒[16]。

3.分区容忍。

(partition-tolerance) 数据存储继续在网络分区下运行,例如,一个将亚洲的数据中心与美国的数据中心分开的网络。

4.高可扩展性。

(high scalability) 数据存储线性扩展。 向系统中添加N个资源可使总吞吐量和存储容量增加O(N)
以上条件满足1-3可表示系统在线。

5.对比CAP

相对于分布式数据库的CAP理论(C-consistency一致性,A-availability可用性,P-partition分区),ALPS舍弃了C一致性的高要求,在保留AP的基础上,增加了L低延迟,实际上低延迟也是可用性的一种表现,即ALPS在CA之间选择了高可用性。COPS在一致性上,退而求其次达到带收敛冲突处理的因果一致性Causal+, 收敛冲突处理使得副本之间不会有分歧。

三、COPS的一致性

1.一致性的分类

linearizability 线性化(或强一致性),可保持全局实时ordering;
sequential consistency 顺序一致性,确保至少全局排序;
causal consistency 因果一致性,保持依赖(happens-before)操作的偏序;
FIFO(PRAM)一致性,保持单线程依赖操作的偏序,而不保留线程之间的顺序。
per-key sequential consistency键顺序一致性,可确保对于每个键,所有操作都具有全局顺序;
eventual consistency 最终的一致性,副本最终会收敛于某个值;
前两个不能达成ALPS。因为强一致性无法达到low lantency
一致性
可参考另一篇博客什么是一致性

2.Causal+ 一致性

(1)模型抽象

操作:只有两个,即put(k,v) get(k,v)
逻辑副本:值存储和访问的地方,在COPS中,一个逻辑副本对应一个本地集群的所有节点
潜在的因果关系:用⇝表示,规则如下:
a)线程内规则:若一个线程先后有a,b两个操作,则a⇝b
b)读取规则:若a是put操作,b是get操作且读到a写的值,则a⇝b
c)传递规则:若a⇝b, b⇝c,则a⇝c

(2)Causal+ 定义

a)因果一致
get操作读到的值,和之前⇝顺序的操作得到的结果,两者一致。
但是⇝是一个偏序关系,可能出现a⇝̸b且b⇝̸a,即a和b是并发操作。若并发操作作用于相同的键,则它们是冲突的,这会带来一些问题:
①得到的副本可能是发散的,即冲突操作得到的值不能确定 ②带来一些额外的异常,需要特殊处理
因此就需要“+”的部分,即收敛的冲突处理。(针对没有因果关系的冲突操作做处理)
b)收敛冲突处理
所有的冲突写操作,都会以相同的行为(解决冲突),作用于所有的副本。
这个冲突解决函数记为h,必须满足交换率和结合律,即h(a,h(b,c))=h(c,h(b,a))。这保证了冲突操作不论顺序如何,都可以得到一个相同的值,即达成收敛。
冲突函数由很多种,常用的如last-writer-wins(即取最后一个操作值),也可以自定义该函数(如Bayou和Dynamo)。
COPS可自定义冲突函数,不过默认是last-writer-wins。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2190719.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

CNN中的平移不变性和平移等变性

1. 平移等变性 数学上函数的等变性定义如下: 也就是给定一张图像,平移后卷积的结果与卷积后再平移的结果是相同的 2. 平移不变性 如果某个属性在任何平移下都不会改变,那么它就是平移不变的。考虑上面的图像。 即使像素值发生了位移&#x…

c++内存申请和释放

// // Created by 徐昌真 on 2024/10/5. // #include <iostream> using namespace std; int main() {//在堆区申请一块内存int* ptr new int(1314); //申请了一个int类型的内存 用ptr指针指向它 它的值是1314cout << *ptr << endl;//可以通过指针修改它的值…

【C++差分数组】1589. 所有排列中的最大和|1871

本文涉及知识点 C差分数组 LeetCode1589. 所有排列中的最大和 有一个整数数组 nums &#xff0c;和一个查询数组 requests &#xff0c;其中 requests[i] [starti, endi] 。第 i 个查询求 nums[starti] nums[starti 1] … nums[endi - 1] nums[endi] 的结果 &#xff…

华为OD机试 - 基站维护工程师数 - 动态规划(Python/JS/C/C++ 2024 E卷 200分)

华为OD机试 2024E卷题库疯狂收录中&#xff0c;刷题点这里 专栏导读 本专栏收录于《华为OD机试真题&#xff08;Python/JS/C/C&#xff09;》。 刷的越多&#xff0c;抽中的概率越大&#xff0c;私信哪吒&#xff0c;备注华为OD&#xff0c;加入华为OD刷题交流群&#xff0c;…

GEE问题:筛选指定区域的Sentinel-1影像缺乏VH等波段

目录 问题简介 原始代码 原始代码 问题解析 修改后的代码 问题简介 亲爱的同事们&#xff0c;我正在尝试使用 SAR 图像 - Sentinel-1 来改进使用机器学习的地上生物量建模。我想处理 Sentinel 图像并将它们作为波段插入以增强模型。通过阅读文档&#xff0c;可用的极化&a…

前端编程艺术(3)---JavaScript

目录 1.JavaScript 1.输出 2.变量和数据类型 3.运算符 4.数组 5.函数 6.面向对象 7.ES6面向对象 2.BOM 1.document对象 3.DOM 4.JSON 1.JavaScript JavaScript是一种脚本编程语言&#xff0c;通常用于为网页增加交互性和动态效果。它是一种高级语言&#xff…

用js和css实现一行一行文字交替显示

用js和css实现&#xff0c;效果是&#xff1a;有多行文字&#xff0c;一行一行的交替显示&#xff0c;每隔几秒显示一行&#xff0c;循环显示。 代码如下&#xff0c;保存为html即可看到效果&#xff1a; <!DOCTYPE html> <html lang"en"> <hea…

心觉:梦想成真的三个核心步骤

Hi&#xff0c;我是心觉&#xff0c;与你一起玩转潜意识、脑波音乐和吸引力法则&#xff0c;轻松掌控自己的人生&#xff01; 挑战每日一省写作190/1000天 梦想成真是每个人的愿望 但是希望你不要把“梦想成真”这四个字当成愿望或许愿&#xff0c;因为它实际上是一个成事的…

为什么芯片有多个不同的供电电压?

一、为什么芯片有多个不同的供电电压&#xff1f; 优化性能与功耗&#xff1a;芯片的核心部分&#xff08;Core&#xff09;和输入输出部分&#xff08;IO&#xff09;可能采用不同的电压。核心电压通常较低&#xff0c;以减少功耗和发热&#xff0c;提高能效&#xff1b;而IO电…

如何解决msvcp140.dll丢失,这6个方法可以解决msvcp140.dll丢失

在日常电脑使用中&#xff0c;可能会遇到一些常见问题&#xff0c;比如msvcp140.dll丢失或损坏。这个问题会导致程序无法正常运行&#xff0c;对我们的生活、工作造成困扰。本文将介绍6种解决msvcp140.dll丢失的方法&#xff0c;让大家能快速解决这个问题。 一&#xff0c;msvc…

25游卡(服务器)面试经验 游卡最常见面试问题总结

目录 【面试经历】 问题+详细答案 面试流程 面试攻略 【面试经历】 秋招目前面了十多家,第一家不开摄像头且表示麦不好要求找个耳机的。贴面经(纯八股) 1.HTTP与HTTPS 2.MTU如何设置,过大过小的后果 3.DNS过程 4.如何创建进程/线程,孤儿进程 5.java从文件到运行的过程…

大厂笔试现已经禁用本地IDE怎么看

如果我说本来面试做题这种事情就是反人类你相信吗&#xff1f; 这个罪恶的源头就是 Google&#xff0c;说是为了选择高素质的计算机编程水平的人才&#xff0c;然后把面试就变成了考试&#xff0c;最大的受益者当然是印度人了。 当把一个考察过程变成标准化的考试过程&#x…

每日一道算法题——二分查找

文章目录 开口闭口区分:1、问题2、示例3、解决方法&#xff08;1&#xff09;注意点&#xff08;2&#xff09;代码 开口闭口区分: 开口闭口区分: [1,2,3] 左闭右闭[1,2,3) 左闭右开(1,2,3] 左开右闭 开口如数组(1,2,3)不包含当前数据&#xff0c;也就是指只有2&#xff0c;闭口…

各省-科技创新、研发强度数据(2007-2022年)

研发强度通常指研究与试验发展&#xff08;R&D&#xff09;经费与国内生产总值&#xff08;GDP&#xff09;之比&#xff0c;是衡量一个国家或地区科技活动强度的重要指标。高研发强度往往意味着更强的科技创新能力和更快的技术进步速度。 从地区分布来看&#xff0c;研发…

什么是 HTTP 请求中的 preflight 类型请求

在浏览器的 HTTP 请求中&#xff0c;当我们使用 fetch API 或者 XMLHttpRequest 来进行跨域请求时&#xff0c;浏览器有时会发送一种称为 Preflight 的请求。这种请求是浏览器在实际发送跨域请求前&#xff0c;先与目标服务器进行的一次 “探测” 请求&#xff0c;以确认服务器…

java基础_异常总结详解

1 列举一些列举常见的运行时异常 运行时异常都是 RuntimeException 子类异常 NullPointerException - 空指针异常 ClassCastException - 类转换异常 IndexOutOfBoundsException - 下标越界异常 ArithmeticException - 计算异常 IllegalArgumentException - 非法参数异常 Numb…

C - Separated Lunch

题目链接: C - Separated Lunch (atcoder.jp) 题目描述: 大致意思是&#xff1a;有n个人&#xff0c;让你把他们分为两个组&#xff0c;然后分完后的这两个组的最大值最小为多少&#xff1f; 数据范围&#xff1a; 样例输入&#xff1a; 5 2 3 5 10 12 样例输出&#xff1a;…

二分查找算法——在排序数组中查找元素的第一个和最后一个位置

1.题目解析 题目来源&#xff1a;在排序数组中查找元素的第一个和最后一个位置——力扣 测试用例 2.算法原理 查找左端点 此时根据二段性&#xff0c;需要将数组分为大于target与小于target两部分&#xff0c;然后取出中点位置判断此时中点位置的值与target的大小关系&#xf…

SpringBoot校园资料分享平台:设计与实现

3系统分析 3.1可行性分析 通过对本校园资料分享平台实行的目的初步调查和分析&#xff0c;提出可行性方案并对其一一进行论证。我们在这里主要从技术可行性、经济可行性、操作可行性等方面进行分析。 3.1.1技术可行性 本校园资料分享平台采用JAVA作为开发语言&#xff0c;Sprin…

基于Springboot+Vue的计算中心共享平台(含源码数据库)

1.开发环境 开发系统:Windows10/11 架构模式:MVC/前后端分离 JDK版本: Java JDK1.8 开发工具:IDEA 数据库版本: mysql5.7或8.0 数据库可视化工具: navicat 服务器: SpringBoot自带 apache tomcat 主要技术: Java,Springboot,mybatis,mysql,vue 2.视频演示地址 3.功能 系统中…