 PromQL Got a BOOST: 用 Rust 重写 Prometheus 的查询引擎第三届中国 Rust 开发者大会 PromQL Got a BOOST: 用 Rust 重写 Prometheus 的查询引擎 Ruihang Xia @greptime.com Ruihang GitHub: waynexia Losing hair at Greptime Wanna sleep 10 hrs/day Learn JS every year Healing0 码力 | 39 页 | 6.95 MB | 1 年前3 PromQL Got a BOOST: 用 Rust 重写 Prometheus 的查询引擎第三届中国 Rust 开发者大会 PromQL Got a BOOST: 用 Rust 重写 Prometheus 的查询引擎 Ruihang Xia @greptime.com Ruihang GitHub: waynexia Losing hair at Greptime Wanna sleep 10 hrs/day Learn JS every year Healing0 码力 | 39 页 | 6.95 MB | 1 年前3
 Rust在物理引擎研发中的应用 崔汉青第三届中国Rust开发者大会 Rust在物理引擎研发中的应用 崔汉青 Motphys CEO Motphys 驱动虚拟世界的全部运动 体验 应用 基础应用: 内容生成工具、 交易市场等 基础硬件: 5G/6G、 半导体、 VR/AR等 基础软件: 渲染引擎、 动作物理引擎等 静态表现力 动态表现力 渲染技术 动作物理技术 动作技术 Motion 物理技术 Physics 保证每个目标平台的极致性能 跨端确定性 – 保证所有目标平台计算结 果完全一致 具备分布式能力 – 通过横向扩展突破单 机物理算力的上限 Motphys 物理引擎的设计目标 Rust 的性能和 C/C++ 比肩,支持 SIMD 优 化,满足苛求性能的引擎研发需求; Rust 的零开销抽象甩掉了复杂设计的性能包袱 # 高性能 Rust 在不损耗性能的情况下,其优秀的语 法设计保证了语言的强大表达力:用更少 在语法层面极大程度保证了内存安全 和并发安全 语言内建的 async/await,还有优秀的 crates rayon(计算密集型并发支持)和 tokio(IO 密集型并发支持) 为什么选择 Rust Motphys 物理引擎架构 Broad Phase Narrow Phase Candidate Collision Pairs Manifold Build Collision Pairs Collision0 码力 | 22 页 | 1.18 MB | 1 年前3 Rust在物理引擎研发中的应用 崔汉青第三届中国Rust开发者大会 Rust在物理引擎研发中的应用 崔汉青 Motphys CEO Motphys 驱动虚拟世界的全部运动 体验 应用 基础应用: 内容生成工具、 交易市场等 基础硬件: 5G/6G、 半导体、 VR/AR等 基础软件: 渲染引擎、 动作物理引擎等 静态表现力 动态表现力 渲染技术 动作物理技术 动作技术 Motion 物理技术 Physics 保证每个目标平台的极致性能 跨端确定性 – 保证所有目标平台计算结 果完全一致 具备分布式能力 – 通过横向扩展突破单 机物理算力的上限 Motphys 物理引擎的设计目标 Rust 的性能和 C/C++ 比肩,支持 SIMD 优 化,满足苛求性能的引擎研发需求; Rust 的零开销抽象甩掉了复杂设计的性能包袱 # 高性能 Rust 在不损耗性能的情况下,其优秀的语 法设计保证了语言的强大表达力:用更少 在语法层面极大程度保证了内存安全 和并发安全 语言内建的 async/await,还有优秀的 crates rayon(计算密集型并发支持)和 tokio(IO 密集型并发支持) 为什么选择 Rust Motphys 物理引擎架构 Broad Phase Narrow Phase Candidate Collision Pairs Manifold Build Collision Pairs Collision0 码力 | 22 页 | 1.18 MB | 1 年前3
 新一代分布式高性能图数据库的构建 - 沈游人Graph Analytics Source: KDnuggets 图技术全景图—— Graph Technology Landscape 2020 • 图数据库 • 图数据建模 • 图计算引擎 • 图数据集成 • 可视化分析 • 知识图谱解决方案 • 图查询语言 • 欺诈检测 • 网络安全分析 • 社交网络分析 • BI 工具 • 图分析工具集 • 图咨询服务 Source ,高性能图计算引 擎,预置 20 余种图计算算法 ,可扩展的分析引擎支持更复 杂的数据挖掘和机器学习场景 MPP Massively Parallel Processing 架构,大规模集群 分布式存储及并行计 算, Shared Nothing 模式支 持存储计算分离 高性能 基于 Rust 开发的分布式存储引 擎及图计算引擎,精细的内存 管理设计,内置索引系统,支 持毫秒级的并发查询响应速度 Language) ,类 SQL 的图查询 语言,内置上百种分析函数, 面向分析师友好,拥抱标准, 基于 openCypher 向 ISO GQL 迈进 实时大图 支持万亿节点存储及流式计算 引擎的结合,最新数据实时入 库构图,为在线业务决策分析 提供有力支撑 AtlasGraph 架构及实现 新一代图技术应用特征简介 Takeaway AtlasGraph 架构概览 存储层0 码力 | 38 页 | 24.68 MB | 1 年前3 新一代分布式高性能图数据库的构建 - 沈游人Graph Analytics Source: KDnuggets 图技术全景图—— Graph Technology Landscape 2020 • 图数据库 • 图数据建模 • 图计算引擎 • 图数据集成 • 可视化分析 • 知识图谱解决方案 • 图查询语言 • 欺诈检测 • 网络安全分析 • 社交网络分析 • BI 工具 • 图分析工具集 • 图咨询服务 Source ,高性能图计算引 擎,预置 20 余种图计算算法 ,可扩展的分析引擎支持更复 杂的数据挖掘和机器学习场景 MPP Massively Parallel Processing 架构,大规模集群 分布式存储及并行计 算, Shared Nothing 模式支 持存储计算分离 高性能 基于 Rust 开发的分布式存储引 擎及图计算引擎,精细的内存 管理设计,内置索引系统,支 持毫秒级的并发查询响应速度 Language) ,类 SQL 的图查询 语言,内置上百种分析函数, 面向分析师友好,拥抱标准, 基于 openCypher 向 ISO GQL 迈进 实时大图 支持万亿节点存储及流式计算 引擎的结合,最新数据实时入 库构图,为在线业务决策分析 提供有力支撑 AtlasGraph 架构及实现 新一代图技术应用特征简介 Takeaway AtlasGraph 架构概览 存储层0 码力 | 38 页 | 24.68 MB | 1 年前3
 Rust 语言学习笔记[dev-dependencies] iron = "0.2" 5.2.3 自定义编译器配置 cargo 内置五种编译器调用模板,分别为 dev、release、test、bench、doc, 分别用于定义不同类型生成目标时的编译器参数,如果我们自己想改变这些编 译模板,可以自己定义相应字段的值. # 开发模板, 对应`cargo build`命令 [profile.dev] opt-level = 0 # true`时,此字段值 被忽略 # 发布模板, 对应`cargo build --release`命令 [profile.release] opt-level = 3 debug = false rpath = false lto = false debug-assertions = false codegen-units = 1 # 测试模板,对应`cargo test`命令 [profile codegen-units = 1 # 性能评估模板,对应`cargo bench`命令 [profile.bench] opt-level = 3 debug = false rpath = false lto = false debug-assertions = false codegen-units = 1 # 文档模板,对应`cargo doc`命令 [profile0 码力 | 117 页 | 2.24 MB | 1 年前3 Rust 语言学习笔记[dev-dependencies] iron = "0.2" 5.2.3 自定义编译器配置 cargo 内置五种编译器调用模板,分别为 dev、release、test、bench、doc, 分别用于定义不同类型生成目标时的编译器参数,如果我们自己想改变这些编 译模板,可以自己定义相应字段的值. # 开发模板, 对应`cargo build`命令 [profile.dev] opt-level = 0 # true`时,此字段值 被忽略 # 发布模板, 对应`cargo build --release`命令 [profile.release] opt-level = 3 debug = false rpath = false lto = false debug-assertions = false codegen-units = 1 # 测试模板,对应`cargo test`命令 [profile codegen-units = 1 # 性能评估模板,对应`cargo bench`命令 [profile.bench] opt-level = 3 debug = false rpath = false lto = false debug-assertions = false codegen-units = 1 # 文档模板,对应`cargo doc`命令 [profile0 码力 | 117 页 | 2.24 MB | 1 年前3
 刘用涛 CnosDB时序数据库的Rust实践架构与选型 特性 • 横/纵 向扩展 • 计算存储分离 • 平衡存储性能与成本 • 查询引擎支持矢量化查询 • 兼容多种时序协议 • 可观测性 • 支持云原生 • 原生支持多租户 • 租户Quota可动态配置 • 云边端协同 • 云上生态融合 整体架构 1.2 存储引擎 version_set Vnode IndexEngine DataEngine cache Index Inverted Index tsfile delta tomb WAL metrics .... Write Request 1.3 基于 DataFusion 的高性能查询引擎 9 SQL Result DataFusion Parser DataFusion SqlToRel DataFusion Logical Optimizer DataFusion Pluggable Scheduler Logical transform Physical transform 1.4基于DataFusion的高性能查询引擎 • 扩展数据源 • 扩展 SQL 语句 • 扩展流处理引擎 • 扩展优化规则 • 扩展时序函数 1.5 分布式 1. Shared nothing 2. Leaderless NRW Peer0 码力 | 26 页 | 3.28 MB | 1 年前3 刘用涛 CnosDB时序数据库的Rust实践架构与选型 特性 • 横/纵 向扩展 • 计算存储分离 • 平衡存储性能与成本 • 查询引擎支持矢量化查询 • 兼容多种时序协议 • 可观测性 • 支持云原生 • 原生支持多租户 • 租户Quota可动态配置 • 云边端协同 • 云上生态融合 整体架构 1.2 存储引擎 version_set Vnode IndexEngine DataEngine cache Index Inverted Index tsfile delta tomb WAL metrics .... Write Request 1.3 基于 DataFusion 的高性能查询引擎 9 SQL Result DataFusion Parser DataFusion SqlToRel DataFusion Logical Optimizer DataFusion Pluggable Scheduler Logical transform Physical transform 1.4基于DataFusion的高性能查询引擎 • 扩展数据源 • 扩展 SQL 语句 • 扩展流处理引擎 • 扩展优化规则 • 扩展时序函数 1.5 分布式 1. Shared nothing 2. Leaderless NRW Peer0 码力 | 26 页 | 3.28 MB | 1 年前3
 Comprehensive Rust(简体中文) 202412("picked a tuple: {:?}", pick(28, ("dog", 1), ("cat", 2))); } • Rust 会根据参数类型和返回值推理出 T 的类型。 • 这与 C++ 模板类似,但 Rust 会立即编译部分通用函数,因此该函数必须对所有符合约束条件的类 型都有效。例如,请尝试修改 pick 函数,如果 n == 0,则返回 even + odd。即使仅使用带有整 数的“pick”实例化,Rust using gn and ninja and a curated set of dependencies. 使用 Rust 编写代码时,您可以选择: • 借助 //build/rust/*.gni 模板(例如 rust_static_library,我们稍后会介绍)使用 gn 和 ninja。该操作会使用经过审核的 Chromium 工具链和 crate。 • 使用 cargo,但仅限于经过审核的 source_set,因 为 整 个 crate 就 是 一 个 编 译 单 元。 static_library 是最小的单元。) 学生可能会疑惑为何我们需要 gn 模板,而不使用 gn 内置的 Rust 静态库支持 进行操作。原因是此模板 支持 CXX 互操作性、各项 Rust 功能以及单元测试,我们稍后便会用到其中的一些功能。 43.1 Including unsafe Rust Code 默认情况下,禁止在0 码力 | 359 页 | 1.33 MB | 10 月前3 Comprehensive Rust(简体中文) 202412("picked a tuple: {:?}", pick(28, ("dog", 1), ("cat", 2))); } • Rust 会根据参数类型和返回值推理出 T 的类型。 • 这与 C++ 模板类似,但 Rust 会立即编译部分通用函数,因此该函数必须对所有符合约束条件的类 型都有效。例如,请尝试修改 pick 函数,如果 n == 0,则返回 even + odd。即使仅使用带有整 数的“pick”实例化,Rust using gn and ninja and a curated set of dependencies. 使用 Rust 编写代码时,您可以选择: • 借助 //build/rust/*.gni 模板(例如 rust_static_library,我们稍后会介绍)使用 gn 和 ninja。该操作会使用经过审核的 Chromium 工具链和 crate。 • 使用 cargo,但仅限于经过审核的 source_set,因 为 整 个 crate 就 是 一 个 编 译 单 元。 static_library 是最小的单元。) 学生可能会疑惑为何我们需要 gn 模板,而不使用 gn 内置的 Rust 静态库支持 进行操作。原因是此模板 支持 CXX 互操作性、各项 Rust 功能以及单元测试,我们稍后便会用到其中的一些功能。 43.1 Including unsafe Rust Code 默认情况下,禁止在0 码力 | 359 页 | 1.33 MB | 10 月前3
 Rust 在算法交易中的实际应用与积极效应全连接网络 XGBoost 集成学习模型 定制早停函数 原 始 高 频 数 据 实时超高频数据 结构化多档行情 全行业指数 概念指数 龙头 lead 股票 互联网新闻 外 部 交 互 交易所引擎 Web客户端 下单指令 信息回报 母单/信息上传 统计信息查询等 数据获取 模型训练 信号预测 交易指令 交易指令 1. 低延迟高吞吐的一写多读消息队列 2. 基于共享内存,全用户态,零拷贝(配合 全连接网络 XGBoost 集成学习模型 定制早停函数 原 始 高 频 数 据 实时超高频数据 结构化多档行情 全行业指数 概念指数 龙头 lead 股票 互联网新闻 外 部 交 互 交易所引擎 Web客户端 下单指令 信息回报 母单/信息上传 统计信息查询等 数据获取 模型训练 信号预测 交易指令 交易指令 与非 Rust 世界交互的主要边界 Rust FFI 网络协议栈参数优化,多路行情冗余互备 全连接网络 XGBoost 集成学习模型 定制早停函数 原 始 高 频 数 据 实时超高频数据 结构化多档行情 全行业指数 概念指数 龙头 lead 股票 互联网新闻 外 部 交 互 交易所引擎 Web客户端 下单指令 信息回报 母单/信息上传 统计信息查询等 数据获取 模型训练 信号预测 交易指令 交易指令 森林模型的 Rust 展开 预测 大规模的新闻实时 spider0 码力 | 18 页 | 3.49 MB | 1 年前3 Rust 在算法交易中的实际应用与积极效应全连接网络 XGBoost 集成学习模型 定制早停函数 原 始 高 频 数 据 实时超高频数据 结构化多档行情 全行业指数 概念指数 龙头 lead 股票 互联网新闻 外 部 交 互 交易所引擎 Web客户端 下单指令 信息回报 母单/信息上传 统计信息查询等 数据获取 模型训练 信号预测 交易指令 交易指令 1. 低延迟高吞吐的一写多读消息队列 2. 基于共享内存,全用户态,零拷贝(配合 全连接网络 XGBoost 集成学习模型 定制早停函数 原 始 高 频 数 据 实时超高频数据 结构化多档行情 全行业指数 概念指数 龙头 lead 股票 互联网新闻 外 部 交 互 交易所引擎 Web客户端 下单指令 信息回报 母单/信息上传 统计信息查询等 数据获取 模型训练 信号预测 交易指令 交易指令 与非 Rust 世界交互的主要边界 Rust FFI 网络协议栈参数优化,多路行情冗余互备 全连接网络 XGBoost 集成学习模型 定制早停函数 原 始 高 频 数 据 实时超高频数据 结构化多档行情 全行业指数 概念指数 龙头 lead 股票 互联网新闻 外 部 交 互 交易所引擎 Web客户端 下单指令 信息回报 母单/信息上传 统计信息查询等 数据获取 模型训练 信号预测 交易指令 交易指令 森林模型的 Rust 展开 预测 大规模的新闻实时 spider0 码力 | 18 页 | 3.49 MB | 1 年前3
 Rust 程序设计语言简体中文版团队希望使系统概念能为更多人所易于理解,特别是编程新手。 公司 数百家大小规模的公司在生产环境中使用 Rust 完成各种任务,包括命令行工具、Web 服务、 DevOps 工具、嵌入式设备、音视频分析与转码、加密货币、生物信息学、搜索引擎、物联网 (IOT)程序、机器学习,甚至是 Firefox 浏览器的重要部分。 7/600 Rust 程序设计语言 简体中文版 开源开发者 Rust 适合那些希望构建 Rust 编程语言、社区 值对的形式提 供字段,其中 key 是字段的名字,value 是需要存储在字段中的数据值。实例中字段的顺序不 需要和它们在结构体中声明的顺序一致。换句话说,结构体的定义就像一个类型的通用模板, 而实例则会在这个模板中放入特定数据来创建这个类型的值。例如,可以像示例 5-2 这样来声 明一个特定的用户: 文件名:src/main.rs # struct User { # active: bool 会构建一个测试执行程序用来调用被标注的函数,并报告每一个测试是通过还是失 败。 每次使用 Cargo 新建一个库项目时,它会自动为我们生成一个测试模块和一个测试函数。这 个模块提供了一个编写测试的模板,为此每次开始新项目时不必去查找测试函数的具体结构和 语法了。因为这样当然你也可以额外增加任意多的测试函数以及测试模块! 在实际编写测试代码之前,让我们先通过尝试那些自动生成的测试模版来探索测试是如何工作0 码力 | 600 页 | 12.99 MB | 1 年前3 Rust 程序设计语言简体中文版团队希望使系统概念能为更多人所易于理解,特别是编程新手。 公司 数百家大小规模的公司在生产环境中使用 Rust 完成各种任务,包括命令行工具、Web 服务、 DevOps 工具、嵌入式设备、音视频分析与转码、加密货币、生物信息学、搜索引擎、物联网 (IOT)程序、机器学习,甚至是 Firefox 浏览器的重要部分。 7/600 Rust 程序设计语言 简体中文版 开源开发者 Rust 适合那些希望构建 Rust 编程语言、社区 值对的形式提 供字段,其中 key 是字段的名字,value 是需要存储在字段中的数据值。实例中字段的顺序不 需要和它们在结构体中声明的顺序一致。换句话说,结构体的定义就像一个类型的通用模板, 而实例则会在这个模板中放入特定数据来创建这个类型的值。例如,可以像示例 5-2 这样来声 明一个特定的用户: 文件名:src/main.rs # struct User { # active: bool 会构建一个测试执行程序用来调用被标注的函数,并报告每一个测试是通过还是失 败。 每次使用 Cargo 新建一个库项目时,它会自动为我们生成一个测试模块和一个测试函数。这 个模块提供了一个编写测试的模板,为此每次开始新项目时不必去查找测试函数的具体结构和 语法了。因为这样当然你也可以额外增加任意多的测试函数以及测试模块! 在实际编写测试代码之前,让我们先通过尝试那些自动生成的测试模版来探索测试是如何工作0 码力 | 600 页 | 12.99 MB | 1 年前3
 Rust 程序设计语言 简体中文版 1.85.0特别是编程新手。 公司 数百家大小规模的公司在生产环境中使用 Rust 完成各种任务,包括命令行工具、Web 服务、 DevOps 工具、嵌入式设备、音视频分析与转码、加密货币、生物信息学、搜索引擎、物联网 (IOT)程序、机器学习,甚至是 Firefox 浏览器的重要部分。 开源开发者 Rust 适合那些希望构建 Rust 编程语言、社区、开发工具和库的开发者。我们非常欢迎你为 Rust 值对的形式提供 字段,其中 key 是字段的名字,value 是需要存储在字段中的数据值。实例中字段的顺序不需 要和它们在结构体中声明的顺序一致。换句话说,结构体的定义就像一个类型的通用模板,而 实例则会在这个模板中放入特定数据来创建这个类型的值。例如,可以像示例 5-2 这样来声明 一个特定的用户: 文件名:src/main.rs fn main() { let user1 = User Rust 会构建一个测试执行程序用来调用被标注的函数,并报告每一个测试是通过还是失败。 每次使用 Cargo 新建一个库项目时,它会自动为我们生成一个测试模块和一个测试函数。这 个模块提供了一个编写测试的模板,为此每次开始新项目时不必去查找测试函数的具体结构和 语法了。当然你也可以额外增加任意多的测试函数以及测试模块! 在实际编写测试代码之前,让我们先通过尝试那些自动生成的测试模版来探索测试是如何工作0 码力 | 562 页 | 3.23 MB | 26 天前3 Rust 程序设计语言 简体中文版 1.85.0特别是编程新手。 公司 数百家大小规模的公司在生产环境中使用 Rust 完成各种任务,包括命令行工具、Web 服务、 DevOps 工具、嵌入式设备、音视频分析与转码、加密货币、生物信息学、搜索引擎、物联网 (IOT)程序、机器学习,甚至是 Firefox 浏览器的重要部分。 开源开发者 Rust 适合那些希望构建 Rust 编程语言、社区、开发工具和库的开发者。我们非常欢迎你为 Rust 值对的形式提供 字段,其中 key 是字段的名字,value 是需要存储在字段中的数据值。实例中字段的顺序不需 要和它们在结构体中声明的顺序一致。换句话说,结构体的定义就像一个类型的通用模板,而 实例则会在这个模板中放入特定数据来创建这个类型的值。例如,可以像示例 5-2 这样来声明 一个特定的用户: 文件名:src/main.rs fn main() { let user1 = User Rust 会构建一个测试执行程序用来调用被标注的函数,并报告每一个测试是通过还是失败。 每次使用 Cargo 新建一个库项目时,它会自动为我们生成一个测试模块和一个测试函数。这 个模块提供了一个编写测试的模板,为此每次开始新项目时不必去查找测试函数的具体结构和 语法了。当然你也可以额外增加任意多的测试函数以及测试模块! 在实际编写测试代码之前,让我们先通过尝试那些自动生成的测试模版来探索测试是如何工作0 码力 | 562 页 | 3.23 MB | 26 天前3
 CeresDB Rust 生产实践 任春韶CeresDB – 历程 2018.02 2018.10 2019.02 ~ 2020.11 2021.9  自研存储引擎  1.0.0 版本发布  查询性能优化  Prometheus 协议支持  基于 InfluxDB 单机引擎研发 分布式方案  OpenTSDB 协议  内存时序数据库  存储计算分离架构  分级存储  永久代  CeresDB0 码力 | 22 页 | 6.95 MB | 1 年前3 CeresDB Rust 生产实践 任春韶CeresDB – 历程 2018.02 2018.10 2019.02 ~ 2020.11 2021.9  自研存储引擎  1.0.0 版本发布  查询性能优化  Prometheus 协议支持  基于 InfluxDB 单机引擎研发 分布式方案  OpenTSDB 协议  内存时序数据库  存储计算分离架构  分级存储  永久代  CeresDB0 码力 | 22 页 | 6.95 MB | 1 年前3
共 17 条
- 1
- 2













