Rust 程序设计语言 简体中文版 1.85.0后台(back of house)。前台是招待顾客的地方;这包括接待员为顾客安排座位、服务员接受 点单和付款、调酒师制作饮品的地方。后台则是厨师和烹饪人员在厨房工作、洗碗工清理餐 具,以及经理处理行政事务的区域。 为了以这种方式构建我们的 crate,我们可以将其功能组织到嵌套模块中。通过执行 cargo new restaurant --lib 来创建一个新的名为 restaurant 的库。然后将示例 项。这 是因为子模块封装并隐藏了它们的实现详情,但是子模块可以看到定义它们的上下文。继续我 138/562Rust 程序设计语言 简体中文版 们的比喻,把私有性规则想象成餐馆的后台办公室:后台的事务对餐厅顾客来说是不可知的, 但办公室经理可以洞悉其经营的餐厅并在其中做任何事情。 Rust 选择以这种方式来实现模块系统功能,因此默认隐藏内部实现细节。这样一来,你就知 道可以更改内部代码的哪些部分而不会破坏外部代码。不过 tests)。单元测试倾向于更小而更集中,在隔离的环境中一次测试一个模块,并且 可以测试私有接口。而集成测试对于你的库来说则完全是外部的。它们与其他外部代码一样, 通过相同的方式使用你的代码,只测试公有接口而且每个测试都有可能会测试多个模块。 为了保证你的库能够按照你的预期运行,从独立和整体的角度编写这两类测试都是非常重要 的。 单元测试 单元测试的目的是在与其他部分隔离的环境中测试每一个单元的代码,以便于快速而准确地验0 码力 | 562 页 | 3.23 MB | 1 月前3
Rust分布式账务系统 - 胡宇需求分析 支付处理: ● 转账 ● 冻资 / 解资 ● 账户限额 ● 批处理事务 正确性:无双花或少付 审计监管:交易日志不可篡改,交易历史可回溯 条件事务:根据一定的条件决定事务执行与否 高可用:在部分节点失效的情况下,依旧可以提供正确的 服务 超低延迟:实时交易,超低响应延迟 水平扩展性:利用分布式事务实现钱包集群的的水平扩 展,应对高达 100 万 TPS 的流量 可演化性:业务逻辑与底层 API 解耦,当业务发生改变 时,底层 API 不用改变 分布式账务系统 设计理念 - Rust 是我们可靠的基石 分布式账务系统 存算分离 API 解耦 读写分离 层级账号 Rust ● 事务层与账户层分 离 ● 独立水平扩展 ● CQRS ● Event Sourcing ● 针对读场景,写场 景分别优化 ● 稳定的底层 API ● 灵活的顶层 API ● 树状结构 Raft 共识算法 raft-rs ● 高性能:关键路径无锁单线程 顶层架构 ● Gateway 路由层 ○ 业务 API 到底层 API 的翻 译 ○ 产生转账计划 ● Marker 事务层 ○ 使用业务 id 进行路由 ○ 执行转账计划 ○ 分发账户变动请求 ● Auticuro 账户层 ○ 使用账户 id 进行分区 ○ 执行账户变动请求 ○ 更新账户余额 分布式账务系统0 码力 | 27 页 | 12.60 MB | 1 年前3
新一代分布式高性能图数据库的构建 - 沈游人Takeaway AtlasGraph 架构概览 存储层 副本管理 CRAQ 图原生存储 索引 LSM-Tree 容灾保障 ( BR ) 元数据层 事务管理 MVOCC 计算层 Cypher AST 优化器 图计算 内存加速引 擎 服务接口 HTTP/RPC Spark 连接器 Python UDF 执行器 索引管理 分布式架构性能可线性扩展 - 针对大规模图优化的存算引擎 - 配合 Atlas 图平台,实现无代码图分析 - Query 性能分析模块,启发式提示优化 - 内置多种分析函数,面向分析师友好 -MVOCC 保证事务一致性 - 多副本管理保证数据服务高可用 - 在线备份提供容灾保障 高速 易用 可靠 Why Rust ? Performance • Blazingly fast and memory-efficient 构,基于 Raft 算法实现租约,进行 服务多活,保证图库不会出现单点 故障。 Raft 服务高可用方案 偏向分析型的分布式事务 【 MVOCC 事务提交】 基于多版本乐观并发控制技术的分布式事 务实现,在保障一致性的前提下,提供优 秀的分析性能 分布式事务技术方案 MVOCC 处理流程 全面的算法支持 覆盖全部常用算法 • 路径计算、社区检测、相似度计算 等 丰富的自研图算法0 码力 | 38 页 | 24.68 MB | 1 年前3
王宜国 - 基于 Rust 编程语⾔构建 Amphitheatre CLI Desktop Server 的全平台实践经验Riven Event Account Project Activity Tariq Share NS 3 Docker Container Kubernetes Pod 轻松创建⽆限量的隔离集成测试环境 ⽀持微服务架构体系和多⼈协作联调测试 Kayn Sona Riven Event Account Project Activity Tariq Share Redis Cloud! Depot: Cloud-accelerated container builds up to 20x faster ✨ ⽆需配置环境,⽀持多种编程语⾔和框架 ? 轻松创建⽆限量的隔离集成测试环境 ☁ ⽀持微服务架构体系和多⼈协作联调测试 ⚡ 本地开发实时部署到运程集群 ? 交互式运⾏实例快照,可⼀键分享! ? 可插拔的⽣态应⽤市场,全⽅位提升效率 ?0 码力 | 34 页 | 10.81 MB | 1 年前3
Real world Rust
- Why and how we use Rust in TiKVSync,那么可以安全的在线程间共享 T ● Rust 的类型推导系统和编译检查跨线程传递和共享的对象 是否满足 Send + Sync TiKV ● 大规模分布式 Key-Value 数据库 ● 支持 ACID 跨行事务支持 ● 支持 MVCC 无锁的快照读 ● 构建于 Raft 之上,不依赖分布式文件系统 ○ 更少的第三方依赖 ○ 更高的性能(低延迟) ● 配合 TiDB 使用,需要有健全的逻辑实现0 码力 | 29 页 | 506.53 KB | 1 年前3
Rust HTTP 协议栈在终端通信场景的实践 - 胡凯服务器的程序规模小,因而通信速度很快。 ✓ 灵活:HTTP 支持传输任意类型的数据对象。 ✓ 无连接:HTTP 限制每次连接只处理一个请求,节 省传输时间。(在 HTTP/1.1 之后变更) ✓ 无状态:HTTP 协议对于事务处理没有记忆能力, 每个请求/应答之间相互独立。 Rust China Conf 2022 – 2023, Shanghai, China HTTP 协议介绍 HTTP 协议的版本演化如下:0 码力 | 26 页 | 1.25 MB | 1 年前3
Rust 程序设计语言简体中文版父模块中的项不能使用子模块中的私有项,但是子模块中的项可以使用它们父模块中的项。这 是因为子模块封装并隐藏了它们的实现详情,但是子模块可以看到它们定义的上下文。继续拿 餐馆作比喻,把私有性规则想象成餐馆的后台办公室:餐馆内的事务对餐厅顾客来说是不可知 的,但办公室经理可以洞悉其经营的餐厅并在其中做任何事情。 Rust 选择以这种方式来实现模块系统功能,因此默认隐藏内部实现细节。这样一来,你就知 道可以更改内部代码的哪些部分而不会破坏外部代码。不过 tests)。单元测试倾向于更小而更集中,在隔离的环境中一次测试一个模块,或者 是测试私有接口。而集成测试对于你的库来说则完全是外部的。它们与其他外部代码一样,通 过相同的方式使用你的代码,只测试公有接口而且每个测试都有可能会测试多个模块。 为了保证你的库能够按照你的预期运行,从独立和整体的角度编写这两类测试都是非常重要 的。 单元测试 单元测试的目的是在与其他部分隔离的环境中测试每一个单元的代码,以便于快速而准确地验 标记为 unsafe 的块中, 就能够知道任何与内存安全相关的错误必定位于 unsafe 块内。保持 unsafe 块尽可能小,如 此当之后调查内存 bug 时就会感谢你自己了。 为了尽可能隔离不安全代码,将不安全代码封装进一个安全的抽象并提供安全 API 是一个好主 意,当我们学习不安全函数和方法时会讨论到。标准库的一部分被实现为在被评审过的不安全 485/600 Rust 程序设计语言0 码力 | 600 页 | 12.99 MB | 1 年前3
CeresDB Rust 生产实践 任春韶spawn(task2) cpu_runtime.spawn(task3) 生产实践 – Preemption 总结: Mixed workload: 碰到混合负载的时候,把 CPU 密集型任务隔离出去 会得到比较好的效果。 相关 Blog : 1. https://tokio.rs/blog/2020-04-preemption 2. https://www.influxdata.c0 码力 | 22 页 | 6.95 MB | 1 年前3
刘用涛 CnosDB时序数据库的Rust实践的交叉编译 rust crate 它提供了一个环境、交叉工具链和交叉编译库,可以生成最便携的二进制文件 3.4 Rust 交叉编译 1. IO 异步化 平台兼容性 隔离阻塞 IO 异步化 2. io_uring 性能有40%提高 3.5 异步 IO 4. 反哺社区 4.1 DataFusion 在开发过程中,我们发现一些0 码力 | 26 页 | 3.28 MB | 1 年前3
Comprehensive Rust(简体中文) 202412mostly safe Rust in this course, but it's important to know what Unsafe Rust is. 不安全的代码通常内容很少而且与其他代码隔离,其正确性也应得到仔细记录。这类代码通常封装在安全 的抽象层中。 不安全 Rust 提供了五种新功能: • 解引用原始指针。 • 访问或修改可变的静态变量。 • 访问 union 字段。 • 调用 make it easy to get a mock implementation of a given trait. • 请注意,模拟在某种程度上具有争 性:借助模拟,您可以将测试与其依赖项完全隔离。最立竿见影 的是,测试作业会更快且更稳定。另一方面,模拟对象的配置可能出现错误,并返回与真实依赖项不 同的输出。 建议您尽可能使用真实依赖项。例如,许多数据库都支持您配置内存后端。这意味着,您可以在测试 std::unique_ptr、std::string、&[u8] 等。 这样具有很多局限性,例如缺少对 Rust 的 Option 类型的支持。 由于这些局限,我们在 Chromium 中只能将 Rust 用于隔离紧密的“叶节点”,而无法用于任意的 Rust-C+ + 互操作。当您打算在 Chromium 中探索 Rust 的应用场景时,推荐先从拟定针对语言边界的 CXX 绑定 入手,以查看该语言边界是否足够简单明了。0 码力 | 359 页 | 1.33 MB | 11 月前3
共 10 条
- 1













