Ceph与Swift简易对比
来源:互联网 发布:淘宝app怎么下载不了 编辑:程序博客网 时间:2024/06/05 23:07
Ceph
Ceph采用强一致性设计,即Write-All-Read-One,这种模式的好处在于读取效率较高,而且工程难度较低,比较适合与读多写少的系统。
Write-All-Read-One的特点是必须等待所有的副本全部写入完毕才算是写入成功,这实际上对系统硬件的可靠性要求较高,因为如果在写入过程中存在任意硬件故障,则写入过程都要受影响。通常表现为卡顿,一般在数秒级别,时间长短和判断故障的机制以及故障恢复过程中IO的处理策略相关。
在任意对象访问的时候,会指定其中一个存储节点(OSD, Object Service Device)多个副本中一定有一个是主节点,由该主节点负责将数据分发到其他两个节点。当然数据读取时也是首先访问主存储节点,以此保证,返回的数据一定是最新的数据。
Swift
Swift 是基于一致性散列技术,通过计算可将对象均匀分布到虚拟空间的虚拟节点上,在增加或删除节点时可**减少需移动的数据量;虚拟空间大小通常采用 2 的 n 次幂,便于进行高效的移位操作;然后通过独特的数据结构 Ring(环)再将虚拟节点映射到实际的物理存储设备上,完成寻址过程。
数据一致性模型
Swift 采用 Quorum 仲裁协议(Quorum 有法定投票人数的含义):
(1)定义:N:数据的副本总数;W:写操作被确认接受的副本数量;R:读操作的副本数量
(2)强一致性:R+W>N,以保证对副本的读写操作会产生交集,从而保证可以读取到最新版本;如果 W=N,R=1,则需要全部更新,适合大量读少量写操作场景下的强一致性;如果 R=N,W=1,则只更新一个副本,通过读取全部副本来得到最新版本,适合大量写少量读场景下的强一致性。
(3)弱一致性:R+W<=N,如果读写操作的副本集合不产生交集,就可能会读到脏数据;适合对一致性要求比较低的场景。
Swift 针对的是读写都比较频繁的场景,所以采用了比较折中的策略,即写操作需要满足至少一半以上成功 W >N/2,再保证读操作与写操作的副本集合至少产生一个交集,即 R+W>N。
相对而言Swift的存储方式更灵活一些,可以牺牲一定的一致性从而提高读取速度。而一致性可以通过后台的方式完成同步,从而保证数据的完整。
- Ceph与Swift简易对比
- Java与Swift对比
- Swift与OC语法对比
- Swift与OC的对比
- Swift与OC闭包回调对比
- 比较Swift与HDFS话Ceph本质(by quqi99)
- Swift与Objective-C的对比
- Swift与Java语法结构对比
- Swift-AnyOject与OC中Id对比
- Ceph vs Swift - 架构剖析
- Java数据结构简易对比
- OC与Swift调用函数方法格式对比
- Swift 新语法 guard 语法 与 if else 对比
- 从Android到Swift iOS开发:语言与框架对比
- swift计算型属性与懒加载的对比
- 从Android到Swift iOS开发:语言与框架对比
- swift 项目 简易计算器
- Swift写简易计算器
- Linux网络编程之socket函数
- 数组
- 笔记15--js基础知识--字符串
- final关键字
- SG定理与SG函数(模板)
- Ceph与Swift简易对比
- C++:重载、覆盖与隐藏
- 【PAT】【Advanced Level】1041. Be Unique (20)
- POJ3041 Asteroids【二分匹配】
- 监听浏览器回退事件
- 顺序表的基本操作用c语言实现
- 组合数求模
- Linux检测IP地址冲突
- Navigation Nightmare poj 1984