CurveFS rename 接口实现方案rename 接口实现方案(已实现,选用方案二) 背景 • 方案调研 • Chubaofs • Juicefs • 方案实现 • 方案一:chubaofs • 方案二:事务方案 • 方案三:利用 KV 自带的分布式事务 • Q&A • 1. 是否需要实现跨文件系统的 rename 操作? • 2. 在多客户端情况下,是否需要加锁来保证其原子性? • 3. rename rename 接口,本文档是对 rename 接口实现的调研及方案设计。 rename 操作,主要操作的是 dentry,如 rename /dir1/file1 /dir2/file2,主要有 2 个步骤:(1)删除 file1 的 dentry,(2)增加 file2 的 dentry(该 dentry 的 inodeid 等同 file1 的 inode id)。关于 rename 接口的实现,主要调研了 dentry,相当于多了一个硬链接,Linux 和 POSIX 接口中表明这允许一段时间内存在,但是最终还是要原子性,所以这一步出错会导致和本地文件系统不一致的行为: 1. Linux 接口定义允许 rename 过程中某一段时间存在这样的硬链接(或者 rename 执行到一半断电也会存在) 2. 而 POSIX 接口中提到了该函数得是原子(不断电的情况下,rename 操作不能被其他操作打断,不存在中间状态)0 码力 | 15 页 | 555.93 KB | 1 年前3
Curve文件系统元数据Proto(接口定义)curve文件系统元数据proto(代码接口定义,已实现) ## 1、 代码结构和代码目录 curve文件系统是相对于curve块设备比较独立的一块,在当前curve项目的目录下,增加一个一级目录curvefs,curvefs下有自己独立的proto\src\test。  returns (CreateFsResponse); rpc MountFs(MountFsRequest) returns (MountFsResponse); rpc UmountFs(UmountFsRequest) returns (UmountFsResponse); rpc GetFsI GetFsInfo(GetFsInfoRequest) returns (GetFsInfoResponse); } // rpc UpdateFsInfo(UpdateFsInfoRequest) returns (UpdateFsInfoResponse); rpc DeleteFsInfo(DeleteFsInfoRequest) returns (DeleteFsInfoResponse); } ####0 码力 | 15 页 | 80.33 KB | 1 年前3
MoonBit月兔编程语言 现代编程思想 第九课 接口# 现代编程思想 接口 Hongbo Zhang ## 回顾 ## • 第六课:定义平衡二叉树 我们定义一个更一般的二叉搜索树,允许存放任意类型的数据 1. enum Tree[T] { 2. Empty 3. Node(T, Tree[T], Tree[T]) 4. } 5. 6. // 我们需要一个比较函数来比较值的大小以了解顺序 7. // 负数表示小于,0表示等于,正数表示大于 我们将这类函数称为方法 ## 接口 Trait ## • 我们通过接口定义一系列方法的实现需求 1. trait Compare { 2. compare(Self, Self) -> Int // Self代表实现该接口的类型 3. } 4. trait Default { 5. default() -> Self 6. } ## • 月兔中的接口是结构化的 ◦ 无需 无需声明为特定的接口实现方法,类型本身实现方法即可 ## 接口 Trait • 我们可以在泛型的参数上添加接口的要求 ☐ 限制参数的类型: <类型参数> : <接口> ☐ 在函数中使用接口定义的方法: <类型参数>::<方法名> 1. fn make[T: Default]( ) -> Queue[T] { // 类型参数T应当满足Default接口0 码力 | 16 页 | 346.04 KB | 2 年前3
FISCO BCOS 2.2.0 中文文档企业级部署工具(Generator):支持建链、扩容等操作,推荐构建企业级区块链时使用,快速使用方法可参考教程 - SDK:提供访问节点状态、修改区块链系统配置以及节点发送交易等接口。 - 浏览器详细介绍请参考浏览器 • JSON-RPC接口可参考 JSON-RPC API • 系统设计文档请参考 系统设计 ## 关键特性 • 多群组: 教程 使用手册 设计文档 并行计算: 使用手册 设计文档 • 分布式存储: 就像建“聊天群”一样简便。 - 支持分布式存储,使存储突破单机限制,支持横向扩展。计算和存储分离,提高了系统健壮性,即使节点执行服务器故障,数据也不会受影响。分布式存储定义了标准的数据访问CRUD接口,可以适配多种存储 系统,同时支持SQL和NoSQL两种数据管理方式,可以更简便地支持多种业务场景。 - 实现预编译合约框架,突破EVM性能瓶颈。支持交易并发处理,大幅提升交易处理吞吐量。预编译合 实现方案。 - 在可用性方面,FISCO BCOS设计为7×24小时运行,达到金融级高可用性。在监管支持方面,可支持监管和审计机构作为观察节点加入,获取实时数据进行监管审计。此外,还提供了各种开发接口,方便开发者编写和调用智能合约。 ## 总结 实践之中出真知,FISCO BCOS经过了外部多家机构、多个应用,长时间在生产环境运行的实际检验,已成长为一个稳定、高效、安全的区块链底层平台。 本文档后续内容将详细介绍FISCO0 码力 | 1156 页 | 10.03 MB | 2 年前3
TarsGo微服务开发实践-利开园Docker TarsGo Tars+K8S DevOps ## 目录 1. RPC 2. 日志 3. 监控 4. 调用链 5. 网关 6. 错误码 7. 配置 8. 云原生 9. 标准化 ## 背景 • Tars是腾讯开源的微服务解决方案 · 高性能的RPC框架 • 丰富的服务治理能力 • 支持Golang/Cpp/Java/PHP/Nodejs • 腾讯内部(TAF)曾经应用最广的开发框架 • Tars应用实践:https://github.com/tarscloud/gopractice ## RPC:不应该只是RPC int sum(int a, int b); 接口定义 type calServerImp struct{} 服务端 func (c *calServerImp) Sum(a, b int32) (int32 logKv = append(logKv, k[len(logKeyPrefix):]) logKv = append(logKv, v) } } ## 监控:主动发现问题 · RPC接口默认监控 · 自定义业务监控 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 1790 码力 | 15 页 | 4.23 MB | 2 年前3
IPC性能极致优化方案-RPAL落地实践06a91/p2_1.jpg) 方案诞生的背景 01 全进程地址空间共享与保护 02 用户态进程切换 03 高效的Go Event Poller 04 RPC框架Kitex集成 05 性能收益与业务展望 06 ## 第一部分 ## 方案诞生的背景 ## 方案诞生的背景 几种常见的同机通信场景: 1. 微服务合并部署(亲和性部署、sidecar 2.异步线程唤醒/休眠(事件通知); 3. 数据拷贝(序列化/反序列化); ## 方案诞生的背景 能不能把库函数调用的高性能优势做到 IPC 里面,降低进程间的事件通知和数据拷贝开销? 以go-go微服务 RPC 通信场景为例,该问题可以抽象为,如何高效地在两个 go runtime 间进行函数调用? 方案,基于跨进程虚拟地址共享,复用 epoII 网络模型,实现了纯用户态的事件轮询和无拷贝的指针读写接口。 ## 第二部分 ## 全进程地址空间共享与保护 ## 全进程地址空间 The quick brown fox jumps over the lazy dog. 广力云智慧零售收银系统 广力云智慧零售收银系统0 码力 | 39 页 | 2.98 MB | 2 年前3
FISCO BCOS 2.5.0 中文文档7 3 安装 19 4 教程 25 5 使用手册 41 6 运维部署工具 223 7 SDK 287 8 区块链浏览器 399 9 系统设计 407 10 JSON-RPC API 497 11 常见问题解答 529 12 社区 533 FISCO BCOS 是一个稳定、高效、安全的区块链底层平台,经过多家机构、多个应用,长时间在生产环境运行的实际检验。 • 运维部署工具(Generator): 支持建链、扩容等操作,推荐构建企业级区块链时使用,快速使用方法可参考教程 • SDK:提供访问节点状态、修改区块链系统配置以及节点发送交易等接口。 · 浏览器详细介绍请参考 浏览器 • JSON-RPC接口可参考 JSON-RPC API · 系统设计文档请参考 系统设计 ## 关键特性 · 多群组:教程 使用手册 设计文档 · 并行计算:使用手册 设计文档 - 分布式存储: 落盘加密方案:支持加密节点落盘数据,保障链上数据的机密性。 • 密钥管理方案:在落盘加密方案的基础上,采用KeyManager服务管理节点密钥,安全性更强。 - 同态加密、群环签名:链上提供了同态加密、群环签名接口,用于满足更多的业务需求。 ### 1.6 可运维性 联盟链系统中,区块链的运维至关重要,FISCO BCOS提供了一整套运维部署工具,并引入了合约命名服务、数据归档和迁移、合约生命周期管理等工具来提升运维效率。0 码力 | 540 页 | 8.77 MB | 2 年前3
云原生go-zero微服务框架设计思考[Image](/uploads/documents/f/b/3/4/fb34ec45f803089948bd2070d4738c62/p6_1.jpg) ## go-zero是什么? Web & RPC微服务框架 ● 微服务代码生成工具goctl ☑ 通用API定义规范 ## go-zero的设计原则 ● 保持简单,第一原则 弹性设计,面向故障编程 工具大于约定和文档 ● 尽可能约束做一件事只有一种方式 Redis集群 Redis集群 Redis集群 数据库 MySQL集群 MongoDB集群 ClickHouse集群 ## 代码未动,数据先行 ● 定义数据边界 ● 数据库互相隔离,通过RPC访问 No join, no pain! 用户 商品 订单 物流 redis1 redis2 redis3 service mysql/mongo clusters ## 如何设计缓存 5057, hit_ratio: 99.7%, hit: 5044, miss: 13, db_fails: 0 Q ☐ * ⚠️ pro4 GOPHER CHINA 2020 ## rpc服务层 - zRPC ● 协议选择 - gRPC 服务发现方式 - etcd ● 负载均衡 - p2c ewma 支持自定义中间件 watch发现, etcd  ## 支持 HTTP、TCP、RPC 1. 支持 HTTP(s) 接口管理。 2. 支持 Socket (TCP) 接口管理。 3. 后续将会支持 GraphQL、Dubbo、gRPC、WebSocket 等协议接口。 ## (3) ## 团队协作 1. 接口数据云端同步,实时更新。 2. 成熟的团队/项目权限管理,支持管理员、普通成  ## 自动生成代码 1. 根据接口/模型定义,自动生成各种语言/框架的业务代码和 API 请求代码。 2. 支持 TypeScript、Java、Go、Swift、ObjectiveC、Kotlin、Dart、C++、C#、Rust 2. 只要定义好接口文档,接口调试、数据 Mock、接口测试即可直接使用,无需再次定义。 3. 接口文档和接口开发调试使用同一个工具,接口调试完成后即可保证和接口文档定义完全一致。 4. 高效、及时、准确! ## 最佳实践 1. 前端(或后端):在 Apifox 上定好接口文档初稿。 2. 前后端:一起评审、完善接口文档,定好接口用例。 3. 前端:使用系统根据接口文档自动生成的 Mock0 码力 | 44 页 | 12.45 MB | 2 年前3
ItsDangerous Documentation (1.1.x)
Release 1.1.00 码力 | 28 页 | 178.96 KB | 2 年前3
共 1000 条
- 1
- 2
- 3
- 4
- 5
- 6
- 100













