Curve设计要点02 总体设计 基本架构 | 数据组织形式 | 拓扑 | IO流程 03 系统特性 高性能 | 高可用 | 自治 | 易运维 | 高质量 04 近期规划 Curve的近期规划 ## 背景 • 多个存储软件:SDFS、NEFS、NBS • 已有的开源软件:Ceph • 不能胜任性能、延迟敏感的场景 • 异常场景抖动较大(比如慢盘场景) 去中心节点设计在集群不均衡的情况下需要人工运维 去中心节点设计在集群不均衡的情况下需要人工运维 • 基于通用分布式存储构建上层存储服务 01 背景 为何从0到1开发Curve 02 总体设计 基本架构 | 数据组织形式 | 拓扑 | IO流程 03 系统特性 高性能 | 高可用 | 自治 | 易运维 | 高质量 04 近期规划 Curve的近期规划 ## 基本架构 ## • 元数据节点 MDS 管理元数据信息 收集集群状态信息,自动调度 [Image](/uploads/documents/0/9/e/3/09e38610ff888e0fd1b2626578fba41c/p20_3.jpg) 01 背景 为何从0到1开发Curve 02 总体设计 基本架构 | 数据组织形式 | 拓扑 | IO流程 03 系统特性 高性能 | 高可用 | 自治 | 易运维 | 高质量 04 近期规划 Curve的近期规划 ##0 码力 | 35 页 | 2.03 MB | 1 年前3
Node 的设计错误## Node 的设计错误 Ryan Dahl JS Conf 柏林 2018.06 ## 背景: 1. 基于最初的开发,我创建了并管理 Node。 2. 我的主要关注目标是事件驱动的 HTTP server。 3. 这一主要目标对当时服务器端的 JavaScript 起着关键作用。即使在当时这一点不那么明显,但是服务器端 JS 的成功需要事件循环的助力。 ## 背景: 2012 年我离开 但我错了...因为还有许多问题仍待解决..... ## 使得 Node 保持增长的几项关键工作 1. NPM(Isaac 开发)将核心 Node 库解耦并允许生态系统的分布。 2. N-API 是设计精美的绑定API。 3. Ben Noordhuis 和 Bert Belder 构建了 libuv。 4. Mikeal Rogers 组织了管理活动和社区。 5. Fedor Indutny 但是我通过允许 Node 的 require() 来检查 package.json 文件的“main”。 - 最后,我在 Node 发布中包含了NPM,这使得它成为事实上的标准。 - 不幸的是,有一个模块化的(私有控制的)存储库。 requirie("somemodule")不是明确的。 定义的地方太多了。 your javascript program package.json0 码力 | 28 页 | 767.84 KB | 2 年前3
CurveFS方案设计CurveFS方案设计(总体设计,只实现了部分) |时间|修订人|修订内容| |---|---|---| |2021-03-23|李小翠|初稿(背景,调研,架构设计)| |2021-03-30|李小翠|增加快照部分| |2021-04-13|李小翠、陈威|补充元数据数据结构| |2021-04-19|李小翠、吴汉卿、许超杰等|补充文件空间分配,讨论与确认| 背景 • 调研 • 开源fs • • 性能对比 • 可行性分析 方案对比 • 对比结论 • 架构设计 卷和文件系统 元数据架构 文件系统快照 • 方案一:文件/目录级别快照 • 方案二:文件系统快照 • 关键点 - 元数据设计 - 数据结构 - 索引设计 - 文件空间管理 - 开发计划及安排 ## 背景 为更好的支持云原生的场景,Curve需要支持高性能通用文 ephfs,理论上分析这个结果是合理的,分布式的元数据设计会涉及到多次rpc的交互。这里需要确认的一点是:我们需要怎样的元数据节点的性能? ## 可行性分析 ## 方案对比 根据上述调研和测试结果,我们考虑了三种curvefs的元数据设计方案: ### 1. CurveFS kv方案设计 curve实现块设备时,元数据不是扁平化的设计,而是采用有目录层级的 namespace 方式,namespace0 码力 | 14 页 | 619.32 KB | 1 年前3
CurveFS Client 概要设计CurveFS Client 概要设计(已实现) 背景 - 概述 - 关键接口分析 - init - destroy - lookup - write - read • open • create & mknod • mkdir • forget • unlink • rmdir • opendir • readdir - 其他 功能分析 · 模块划分 · 接口设计 · Cache设计 |时间|作者|内容| |---|---|---| |2021-04-27|许超杰|初稿| |||| |||| |||| ## 背景 CurveFS初步设计见 CurveFS方案设计(总体设计,只实现了部分),目前需细化Client端设计 ## 概述 CurveFS client 向上提供两层接口,分别是 (fuse req t req, fuse ino t ino, fuse ino t newparent, const char *newname); - 这个涉及到下文中“重要问题讨论”,目前暂时无法设计 硬链接相关目前可先不实现。 ## flush & fsync ■ 缓存的问题暂时先不考虑太细,目前默认数据和元数据直接存储到底层,这两个也可先不实现 ## 其他 ■ xattr系列0 码力 | 11 页 | 487.92 KB | 1 年前3
GoFrame框架介绍及设计## GCN ## GoFrame框架介绍及设计  郭强 成都医联科技 架构师  jpg) 框架介绍 01 模块化设计 02 统一框架设计 03 代码分层设计 04 对象封装设计 05 DAO封装设计 06 未来发展规划 07 ## 第一部分 ## 框架介绍 • 框架介绍 • 框架架构 • 项目初心 ## 框架介绍  GoFrame是一款模块化、高性能、企业级的Go基础开发框架。 • 模块化、松耦合 • 模块丰富、开箱即用 • 简洁易用、快速接入 • 文档详尽、易于维护 ## 特点 • 自顶向下、体系化设计 • 统一框架、统一组件、降低选择成本 • 开发规范、设计模式、代码分层模型 • 强大便捷的开发工具链 完善的本地中文化支持 • 设计为团队及企业使用 ## 框架介绍-框架架构0 码力 | 37 页 | 8.84 MB | 2 年前3
1.2.3 Go 泛型设计G CN Go泛型设计 赵柯 QQ音乐 Go泛型发展史 01 Go泛型设计实现提案 02 Go泛型底层实现原理 03 总结 04 第一部分 Go泛型发展史 ’ alt=‘OCR图片’/> 什么是泛型? 1967年,克里斯托弗·斯特雷奇在《Fundamental Concepts in Programming Languages》提出了两个概念: 特设多态(ad-hoc): void print(string b t) t { if a.Less(b) { return a } return b } 依然缺乏部分场景解决方案: 借鉴了C++的设计,但书写不友好 支持通用运算符 支持泛型方法 ’ alt=‘OCR图片’/> 早期提案- Type Parameters type [T] Lesser interface { type parameter type constraint func F any (v T) ([]T, error) ’ alt=‘OCR图片’/> 第二部分 Go泛型设计实现提案 ’ alt=‘OCR图片’/> 泛型设计方案 静态方案(C++模版,rust) 编译期根据模版参数或者类型推导,为所有类型生成函数副本 动态方案(JAVA,Go interface) 只有一份函数副本,使0 码力 | 35 页 | 1.31 MB | 3 月前3
领域驱动设计&中台/物联网平台的反应式设计## 物联网平台的反应式设计 唐成 DDCHINA ## CONTENTS 01 什么是物联网平台 02 为什么需要反应式架构 03 我们做了什么 ## 什么是物联网平台 ## 什么是物联网平台 Application 0 码力 | 18 页 | 1.81 MB | 2 年前3
C++高性能并行编程与优化 - 课件 - 16 现代 CMake 模块化项目管理指南CMake # 现代 CMake 模块化项目管理指南 彭于斌 (@archibate) 课件 & 源码:https://github.com/parallel101/course 往期录播:https://space.bilibili.com/263032155 ## 第一章:文件 / 目录组织规范 基于 CMake 的 C/C++ 项目,如何优雅地、模块化地组织大量源文件? ## 推荐的目录组织方式0 码力 | 56 页 | 6.87 MB | 2 年前3
ServiceComb设计揭秘:标准与开发## ServiceComb设计揭秘:标准与开发 华为CloudBU PaaS微服务引擎开发团队 ## 代码阅读 • 一、系统架构解读 二、系统模块解读 • 三、框架的启动与停止 四、框架运行时请求发送与处理过程 ## ServiceComb 开发框架 编程模型 (jaxrs、pojo、springmvc) 服务发现 运行模型 熔断 负载均衡 配置 跟踪 通信模型 (restful、highway)0 码力 | 9 页 | 831.77 KB | 2 年前3
Curve 分布式存储设计## Curve 分布式存储设计 程义 — Curve Maintainer   Agenda  ## 第二 Curve的设计目标  ## 第三 Curve块存储 b9481848c048a7/p2_5.jpg) 第四 Curve社区 ## Curve的由来 1. 代码复杂/代码量大 2. 运维难度高 3. 无法满足高的性能需求 ## Curve的设计目标 1. Curve云原生软件定义存储 2. Curve块存储 3. Curve文件存储 4. 高性能,易运维,云原生 












