Curve支持S3 数据缓存方案
© XXX Page 1 of 9 Curve支持S3 数据缓存方案© XXX Page 2 of 9 版本 时间 修改者 修改内容 1.0 2021/8/18 胡遥 初稿 背景 整体设计 元数据采用2层索引 对象名设计 读写缓存分离 缓存层级 对外接口 后台刷数据线程 本地磁盘缓存 关键数据结构 详细设计 Write流程 Read流程 ReleaseCache流程 因此需要通过Cache模块解决以上2个问题。 整体设计 整个dataCache的设计思路,在写场景下能将数据尽可能的合并后flush到s3上,在读场景上,能够预读1个block大小,减少顺序读对于底层s3的访问频次。从这个思路上该缓存方案主要针对的场景是顺序写和顺序 读,而对于随机写和随机读来说也会有一定性能提升,但效果可能不会太好。 元数据采用2层索引 由于chunk大小是固定的(默认64M),所以Inode中采用map读写缓存分离 读写缓存的设计采用的是读写缓存分离的方案。 写缓存一旦flush即释放,读缓存采用可设置的策略进行淘汰(默认LRU),对于小io进行block级别的预读。 即读写缓存相互没影响不相关, 缓存层级 缓存层级分为fs->file->chunk->datacache 4层,通过inodeId找到 0 码力 | 9 页 | 179.72 KB | 5 月前32.1.1 Golang主动式内存缓存的优化探索之路
Golang主动式内存缓存的优化探索之路 安晏伯 学而思网校 技术专家 目 录 问题引入 01 难点攻克 02 主动式内存缓存框架 03 总结 04 问题引入 第一部分 为什么能有极致的性能? 01. 如何优化? 解决了哪些技术难题? 主动式内存缓存 如何优化? 极致的性能 除了网络IO,与Redis有什么区别? 复杂的查询怎么办? 02. 传统的Cache很难 • 复杂的查询场景,内存数据如何高效组织? • 主动式内存缓存,如何保证数据实时性? • 数据太多,内存不够用,如何进行存储扩展? 通过本次分享,可以带来哪些收获? 难点攻克 第二部分 使用内存缓存 数据一致性如何保证? 一致性 01. 缓存如何保证更新,如何与数据库同步 同步、更新 被动方式 缓存过期 定期同步 主动方式 监听数据变化 数据加载,更新 热数据的交换 冷 热 新 系 统 历 史 数 据 冷数据、数据量多 缓存成本大、命中低、收益小 热 数 据 当前系统中的热点数据 命中率高 系 统 新 增 数 据 近期新增数据,较大概率命中 存储空间 缓存性能 冷热可交换,引擎可扩展 06. 冷热数据交换,通过栈式缓存结构,实现多级缓存策略 语言的局限性 07. 基于golang语言,内存对象超过百万量级后出现的GC耗时问题0 码力 | 48 页 | 6.06 MB | 1 年前3CurveFS S3本地缓存盘方案
Page 1 of 9 Curvefs-S3 本地写缓存盘方案© XXX Page 2 of 9 背景 方案设计 主要数据结构定义 方案设计思考 POC验证 背景 当前,s3客户端在写底层存储的时候是直接写入远端对象存储,由于写远端时延相对会较高,所以为了提升性能,引入了写本地缓存盘方案。也即要写底层存储时,先把数据写到本地缓存硬盘,然后再把本地缓存 硬盘中的数据异步上传到远端对象存储。 方案设计© S3模块接收到写入后先写入写内存缓存页,如果满足持久化的条件后,那么则准备持久化。 如果未配置本地硬盘作为写缓存,那么直接持久化到远端的对象存储;如果配置了本地硬盘作为写缓存,那么则尝试先写入本地硬盘写缓存目录。 写本地硬盘缓存目录之前先判断缓存目录容量是否已达到阈值,如果已经达到阈值,那么则直接写入到远端对象存储;否则,则写入到本地硬盘写缓存目录中。文件写入本地硬盘写缓存目录后,从本地硬盘读目录© XXX Page 4 of 9 做一个硬链接链接到该文件。 本次io在本地硬盘写入好之后,异步上传模块会适时把本地硬盘写缓存目录中的文件上传到远端对象存储集群,上传成功后,删除本地写缓存目录中的对应文件。 同时,缓存清理模块会定时检查本地硬盘缓存目录容量情况,如果容量已经达到阈值了,则进行文件的清理工作。 另外,异常管理模块处理客户端挂掉后的文件重新上传问题。 主要数据结构定义 class0 码力 | 9 页 | 150.46 KB | 5 月前32.2 龚浩华(月牙寂)p2p缓存系统 基于Golang的Aop设计模式
LOGO p2p缓存系统 基于Golang的Aop设计模式 龚浩华 QQ 29185807 月牙寂 背景 v Web缓存(类似CDN技术) § 网页、图片 § 普通下载 § 普通视频 v P2P缓存 § 下载(bt等) § 视频(qvod、百度影音等) 背景 v P2P缓存好处 § 一次获取,多次利用 § 减少局域网出网流量 减少局域网出网流量 § 提升用户体验 背景 v P2P缓存服务器(基于c++开发) § 代码量大 § 协议数量多 § 耦合性高 § 潜在bug多 重构 or 重新推倒? 背景 现实世界是怎么样的 分布式、并发 职能化、松散化 自组织、智能化 程序框架是否也可以这样? OOP v C++对象代码运行 仍然存在不确定性 现实世界的设计模式直接可以拿来借鉴 P2P缓存框架 P2P缓存框架 1、入口监听模块 常驻 功能监听识别连接 2、任务管理模块 常驻 管理任务、分流client P2P缓存框架 3、任务模块 文件缓存度:是否需要下载 文件热点程度:是否热点0 码力 | 29 页 | 338.20 KB | 1 年前3Apache ShardingSphere 中文文档 5.1.1
45 柔性事务 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 4.5 读写分离 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 4.5.1 背景 . . . 53 高可用类型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 动态读写分离 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 4.6.5 使用规范 . . . . 7.4 DatabaseSQLEntry . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215 6.8 读写分离 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 215 6.8.10 码力 | 409 页 | 4.47 MB | 1 年前3Apache ShardingSphere 中文文档 5.1.0
45 柔性事务 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 4.5 读写分离 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 4.5.1 背景 . . . 53 高可用类型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 动态读写分离 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 4.6.5 使用规范 . . . . 7.4 DatabaseSQLEntry . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210 6.8 读写分离 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 210 6.8.10 码力 | 406 页 | 4.40 MB | 1 年前3阿里云云数据库 Redis 版 产品简介
于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 云数据库 Redis 版支持字符串(String)、链表(List)、集合(Set)、有序集合(SortedSet)、哈希表 (Hash)等多种数据类型,及事务(Transactions)、消息订阅与发布(Pub/Sub)等高级功能。 通过“内存+硬盘”的存储方式,云数据库 Redis 版在提供高速数据读写能力的同时满足数据持久化需求。 版在提供高速数据读写能力的同时满足数据持久化需求。 云数据库 Redis 版支持灵活的部署架构:单副本、双副本、集群版,能够满足不同的业务场景。 单节点架构: 适用于纯缓存场景,支持单节点集群弹性变配,满足高 QPS 场景,提供超高性价比。 双机热备架构:系统工作时主节点(Master)和备节点(Slave)数据实时同步,主节点故障时系统 自动秒级切换,备节点接管业务,全程自动且对业务无影响,主备架构保障系统服务具有高可用性。 // 主从复制用到的内存 10) (integer) 16858 11) "clients.normal" //普通用户客户端的读写缓冲区 12) (integer) 49630 13) "aof.buffer" //aof持久化使用的缓存和aofrewrite时产生的缓存之和 14) (integer) 3253 15) "db.0" //每个db的元数据所占用内存 16) 1) "overhead0 码力 | 33 页 | 1.88 MB | 1 年前3Apache ShardingSphere v5.5.0 中文文档
8.2.9 附录 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 8.3 读写分离 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 8.3.1 背景 . 119 数据分片 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119 读写分离 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121 分布式事务 . . . 擎和调度引擎等。 2.3.2 L2 功能层 用于提供增量能力,其所有组件均是可选的,可以包含零至多个组件。组件之间完全隔离,互无感知,多 组件可通过叠加的方式相互配合使用。主要包括数据分片、读写分离、数据加密、影子库等。用户自定义 功能可完全面向 Apache ShardingSphere 定义的顶层接口进行定制化扩展,而无需改动内核代码。 2.3.3 L3 生态层 用于对接和融入现有数据库生态,包括数据库协议、SQL0 码力 | 557 页 | 4.61 MB | 1 年前3Apache ShardingSphere 中文文档 5.2.0
3.2.9 附录 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 3.3 读写分离 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 3.3.1 背景 . . . 35 高可用类型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 动态读写分离 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35 3.4.7 使用限制 . . . . . 152 数据分片 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152 读写分离 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154 分布式事务 . . .0 码力 | 449 页 | 5.85 MB | 1 年前3Apache ShardingSphere 中文文档 5.1.2
46 柔性事务 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 4.5 读写分离 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 4.5.1 背景 . . . 54 高可用类型 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 54 动态读写分离 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 55 4.6.5 使用规范 . . . . 7.4 DatabaseSQLEntry . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227 6.8 读写分离 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 227 6.8.10 码力 | 446 页 | 4.67 MB | 1 年前3
共 855 条
- 1
- 2
- 3
- 4
- 5
- 6
- 86