Curve支持S3 数据缓存方案小io每次都要和s3交互,导致性能非常差。 因此需要通过Cache模块解决以上2个问题。 整体设计 整个dataCache的设计思路,在写场景下能将数据尽可能的合并后flush到s3上,在读场景上,能够预读1个block大小,减少顺序读对于底层s3的访问频次。从这个思路上该缓存方案主要针对的场景是顺序写和顺序 读,而对于随机写和随机读来说也会有一定性能提升,但效果可能不会太好。 元数据采用2层索引 inodeId是永远不可重复。 读写缓存分离 读写缓存的设计采用的是读写缓存分离的方案。 写缓存一旦flush即释放,读缓存采用可设置的策略进行淘汰(默认LRU),对于小io进行block级别的预读。 即读写缓存相互没影响不相关, 缓存层级 缓存层级分为fs->file->chunk->datacache 4层,通过inodeId找到file,通过index找到chunk,然后通过offs0 码力 | 9 页 | 179.72 KB | 6 月前3
BazelCurve 编译 Curve bazel 编译分享 程义 - 存储计算部 2022 年 11 月 11 日 C ur v e1 升级 bazel 到 4.2.2 2 支持 Debian9 、 Debian10 、 Debian11 3 支持 gcc clang 更新内容 Curve1 编译 Debian11-Dockerfile .bazelrc :build-debian11 cd /curve/ # 使用 gcc 编译 bazel build –config=gcc7-later … # use '-faligned-new' to enable C++17 over-aligned new support # 使用 clang 编译 CC=clang CXX=clang++ bazel build …2 制作镜像 com/curve/curvefs:chengyi01-debian113 修改 & 单元测试 curvefs/test/tools/curvefs_version_tool_test.cpp # 使用 clang 编译 CC=clang CXX=clang++ bazel build curvefs/...THANK YOU0 码力 | 6 页 | 4.69 MB | 6 月前3
Curve核心组件之chunkserverChunkServer的目录结构: • 每个copyset一个目录,后面三个目录由braft管理,data目录由DataStore管理 • Curve中的Chunk全部来自Chunkfilepool,是在系统初始化的时候预创建好并覆盖写过一遍的一些chunk,减少IO放大CURVE基本架构 01 02 03 04 ChunkServer架构 ChunkServer核心模块 新版本ChunkServer性能优化新版本ChunkServer性能优化0 码力 | 29 页 | 1.61 MB | 6 月前3
Curve质量监控与运维 - 网易数帆9/33新代码提交 Dailybuild测试 提交issue 开发设计 提交PR review +1 CI测试(编译、静态检 查、单元测试、集成测 试、覆盖率80%卡点) 合入master 分支 代码提交流程 异常自动化 测试 混沌测试 (每周一次) CI测试(编译、静态检 查、单元测试、集成测 试、覆盖率80%卡点) 邮件通知 Curve所有代码均在github托管。新 代码需要通过CI测试和code0 码力 | 33 页 | 2.64 MB | 6 月前3
TGT服务器的优化支持复杂的存储系统,例如ceph rbd, sheepdog, glfs • 纯C代码,外加一些脚本 • 完整的源代码和维护工具、手册 • 编写IO驱动比较容易,容易扩展支持新的存储系统 • 代码独立,容易编译、调试、修改,适应性强让TGT支持curve • 编写curve驱动,底层异步提交I/O,pipeline • 利用NEBD PART 1接口,需要与nebdserver运行在同一台机器 •0 码力 | 15 页 | 637.11 KB | 6 月前3
BRPC与UCX集成指南Channel远程调用的发起21 UCX ●NVIDIA Mellanox 开源项目 ●支持RDMA,TCP,Shared memory等 ●能透明支持多个链路传输,例如多网卡bond ●编译成.so或lib的方式,可以集成到应用程序里 ●有完善的配置功能,ucx_info可以dump配置信息 ●有性能测试工具 ●比较详细的文档2223 UCS ●是一些工具代码,例如 –链表0 码力 | 66 页 | 16.29 MB | 6 月前3
共 6 条
- 1













