Curve 分布式存储设计Curve 分布式存储设计 程义 — Curve Maintainer XAgenda 第二 第三 第四 第一 Curve的由来 Curve的设计目标 Curve块存储 和 Curve文件存储 Curve社区Curve的由来 1. 代码复杂/代码量大 2. 运维难度高 3. 无法满足高的性能需求Curve的设计目标 1. Curve云原生软件定义存储 2. Curve块存储 Curve块存储 3. Curve文件存储 4. 高性能,易运维,云原生Curve块存储 1. 高性能分布式共享数据库场景 2. Curve块存储提供底层分布式共享存储 3. Polardb for PostgreSQL提供上层高性能数 据库服务 4. 性能测试 1. benchmarkSQL 每分钟事务数提升39% 2. pgbench 延迟降低21% TPS提升26% 研究现状Curve块存储 研究现状Curve块存储 1. 分布式块存储服务 2. KVM块存储服务 3. iSCSI协议 4. 容器云块存储(CSI) 应用场景Curve块存储 1. 高可用性/高可靠性 (易运维) 2. RAFT一致性协议 3. CopySet分配算法 4. 拓扑结构 5. 高性能 6. chunkfilepool (降低写放大) 7. data stripe (增大并发) 8. zerocopy0 码力 | 20 页 | 4.13 MB | 6 月前3
Raft在Curve存储中的工程实践分布式存储系统,支持 块存储 和 文件存储 2018~2021 Curve块存储 2021~2022 Curve文件存储 • 基于Openstack构建云计算平台 • 底层存储使用Ceph块存储 • 稳定性挑战 • 算力平台kubernetes的迅速发展 • AI/大数据业务的快速增长 • 存储使用Ceph文件存储/HDFS • 成本/性能挑战 Curve块存储和文件存储均采用raft协议整体架构 对接OpenStack平台为云主机提供高性能块 存储服务 • 对接Kubernetes为其提供RWO、RWX等类 型的持久化存储卷 • 对接PolarFS作为云原生数据库的高性能存储 底座,完美支持云原生数据库的存算分离架 构 • Curve作为云存储中间件使用S3兼容的对象 存储作为数据存储引擎,为公有云用户提供 高性价比的共享文件存储 • 支持在物理机上挂载使用块设备或FUSE文件 致已经被提交,系统切换到新的配置(new)。RAFT协议简介 日志压缩 • 日志会不断增长,占用空间 • 采用快照的方式压缩日志 • 在某个时间点,整个系统的状态都以快照的形式写入 到稳定的持久化存储中 • 完成一次快照之后,删除时间点之前的所有日志和快 照。BRAFT简介 • raft协议提出之后,涌现出了非常多的实现,比如etcd,braft,tikv等。 • braft是raft的一0 码力 | 29 页 | 2.20 MB | 6 月前3
新一代云原生分布式存储新一代云原生分布式存储—Curve 上 李小翠 网易数帆存储团队分布式存储介绍 01 存储的发展 | 分布式存储的分类 | 分布式存储的要素 02 03 04 Ceph 架构简介 | 场景介绍 | 使用中的问题 Curve 架构简介 | 数据对比 | 应用情况 FAQ 答疑存储的发展 互联网时代,数据大爆炸 大型主机 成本高 单点问题 扩容困难 各存储设备通过网络互联 各存储设备通过网络互联 大规模 弹性扩容 底层构建在分布式存储之上 云的概念 成本:共用基础设施 弹性:随意扩缩容 速度:更快的构建发布业务 底层构建在分布式存储之上 云原生的概念: 易用性:跨平台,超融合,弹性 小型主机 容量有限分布式存储的分类 按照各种应用场景所需的存储接口分类 对象 存储 文件 存储 块存储 接口为简单的 Get、PUT、DEL 和其他扩展 通常意义是支持 对指定地址空间进行随机读写 传统意义的块存储:磁盘分布式存储的要素 如何构建分布式文件系统? 以分布式块存储为例。 •提供大容量的块设备 •可以在指定地址空间内随机读写 write(offset, len) •服务质量要求:数据不能丢、服务随时可用、弹性扩缩容 要什么 •成百上千台存储节点 •磁盘故障、机器故障、网络故障概率性发生 有什么 分布式存储系统需要满足接口需求,并且有持续监控、错误检测、容错与自动恢复的能力0 码力 | 29 页 | 2.46 MB | 6 月前3
TiDB v8.5 中文手册· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 624 6.3.3 预估存储空间· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · Open Protocol 中的 Row Changed Event 是 INSERT 事件还是 UPDATE 事件?· · · · · · · 954 7.8.19 TiCDC 占用多少 PD 的存储空间 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 955 7 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 1828 12.5.11 只读存储节点最佳实践 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·0 码力 | 5095 页 | 104.54 MB | 10 月前3
TiDB v8.4 中文手册· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 618 6.3.3 预估存储空间· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 1570 12.5.11 只读存储节点最佳实践 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 2530 14.1.2 TiDB 数据库的存储· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·0 码力 | 5072 页 | 104.05 MB | 10 月前3
TiDB v8.2 中文手册· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 560 6.3.3 预估存储空间· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 1502 12.5.11 只读存储节点最佳实践 · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · 2522 14.1.2 TiDB 数据库的存储· · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · · ·0 码力 | 4987 页 | 102.91 MB | 10 月前3
Python 标准库参考指南 3.8.20 --- 安全哈希与消息摘要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 499 15.2 hmac --- 基于密钥的消息验证 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 508 15.3 secrets --- 生成管理密码的安全随机数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 667 16.16 ctypes --- Python 的外部函数库 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 673 17 并发执行 703 17.1 threading False: >>> (-2.0).is_integer() True >>> (3.2).is_integer() False 两个方法均支持与十六进制数字符串之间的转换。由于 Python 浮点数在内部存储为二进制数,因此浮点 数与 十进制数字符串之间的转换往往会导致微小的舍入错误。而十六进制数字符串却允许精确地表示和 描述浮点数。这在进行调试和数值工作时非常有用。 float.hex() 以十六0 码力 | 1927 页 | 9.69 MB | 9 月前3
Python 标准库参考指南 3.8.20 --- 安全哈希与消息摘要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 499 15.2 hmac --- 基于密钥的消息验证 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 508 15.3 secrets --- 生成管理密码的安全随机数 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 667 16.16 ctypes --- Python 的外部函数库 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 673 17 并发执行 703 17.1 threading False: >>> (-2.0).is_integer() True >>> (3.2).is_integer() False 两个方法均支持与十六进制数字符串之间的转换。由于 Python 浮点数在内部存储为二进制数,因此浮点 数与 十进制数字符串之间的转换往往会导致微小的舍入错误。而十六进制数字符串却允许精确地表示和 描述浮点数。这在进行调试和数值工作时非常有用。 float.hex() 以十六0 码力 | 1927 页 | 9.69 MB | 9 月前3
跟我学Shiro - 张开涛........................................................................................... 95 会话存储/持久化 .............................................................................................. Manager:会话管理,即用户登录后就是一次会话,在没有退出之前,它的所有信 息都在会话中;会话可以是普通 JavaSE 环境的,也可以是如 Web 环境的; Cryptography:加密,保护数据的安全性,如密码加密存储到数据库,而不是明文存储; Web Support:Web 支持,可以非常容易的集成到 Web 环境; Caching:缓存,比如用户登录后,其用户信息、拥有的角色/权限不必每次去查,这样可以 跟我学 后通过 相应的接口注入给 Shiro 即可。 接下来我们分别从外部和内部来看看 Shiro 的架构,对于一个好的框架,从外部来看应该 具有非常简单易于使用的 API,且 API 契约明确;从内部来看的话,其应该有一个可扩展 的架构,即非常容易插入用户自定义实现,因为任何框架都不能满足所有需求。 首先,我们从外部来看 Shiro 吧,即从应用程序角度的来观察如何使用 Shiro 完成工作。如0 码力 | 219 页 | 4.16 MB | 10 月前3
Python 标准库参考指南 3.8.20 安全哈希与消息摘要 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 535 15.2 hmac --- 基于密钥的消息验证 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 546 15.3 secrets --- . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 716 16.16 ctypes --- Python 的外部函数库 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 722 17 并发执行 755 17.1 threading False: >>> (-2.0).is_integer() True >>> (3.2).is_integer() False 两个方法均支持与十六进制数字符串之间的转换。由于 Python 浮点数在内部存储为二进制数,因此浮点数 与 十进制数字符串之间的转换往往会导致微小的舍入错误。而十六进制数字符串却允许精确地表示和描述 浮点数。这在进行调试和数值工作时非常有用。 float.hex() 以十六0 码力 | 2052 页 | 9.74 MB | 9 月前3
共 144 条
- 1
- 2
- 3
- 4
- 5
- 6
- 15













