 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 算力动态调配 分布式计算 物理材质统一解算 算法优化 物理材质单独解算 工程优化 性能待优化 AI仿真加速 前沿动作功能 缺乏动作功能 AI动作生成 优秀的易用性和适配性 缺乏AI能力 保证每个目标平台的极致性能 跨端确定性 – 保证所有目标平台计算结 果完全一致 具备分布式能力 – 通过横向扩展突破单 机物理算力的上限 Motphys 物理引擎的设计目标 Rust Rust 的性能和 C/C++ 比肩,支持 SIMD 优 化,满足苛求性能的引擎研发需求; Rust 的零开销抽象甩掉了复杂设计的性能包袱 # 高性能 Rust 在不损耗性能的情况下,其优秀的语 法设计保证了语言的强大表达力:用更少 的代码写更多的功能 # 高表达力 # 安全 Rust 依靠 LLVM 实现了多目标平台,并可 以用语言内建的 target_feature 针对不同 的指令集进行处理0 码力 | 22 页 | 1.18 MB | 1 年前3 Rust在物理引擎研发中的应用 崔汉青第三届中国Rust开发者大会 Rust在物理引擎研发中的应用 崔汉青 Motphys CEO Motphys 驱动虚拟世界的全部运动 体验 应用 基础应用: 内容生成工具、 交易市场等 基础硬件: 5G/6G、 半导体、 VR/AR等 基础软件: 渲染引擎、 动作物理引擎等 静态表现力 动态表现力 渲染技术 动作物理技术 动作技术 Motion 物理技术 Physics 算力动态调配 分布式计算 物理材质统一解算 算法优化 物理材质单独解算 工程优化 性能待优化 AI仿真加速 前沿动作功能 缺乏动作功能 AI动作生成 优秀的易用性和适配性 缺乏AI能力 保证每个目标平台的极致性能 跨端确定性 – 保证所有目标平台计算结 果完全一致 具备分布式能力 – 通过横向扩展突破单 机物理算力的上限 Motphys 物理引擎的设计目标 Rust Rust 的性能和 C/C++ 比肩,支持 SIMD 优 化,满足苛求性能的引擎研发需求; Rust 的零开销抽象甩掉了复杂设计的性能包袱 # 高性能 Rust 在不损耗性能的情况下,其优秀的语 法设计保证了语言的强大表达力:用更少 的代码写更多的功能 # 高表达力 # 安全 Rust 依靠 LLVM 实现了多目标平台,并可 以用语言内建的 target_feature 针对不同 的指令集进行处理0 码力 | 22 页 | 1.18 MB | 1 年前3
 新一代分布式高性能图数据库的构建 - 沈游人专业顶尖技术团队支撑 超 700 人团队,其中 80% 为技术人员,创始团队在完成全球第一个中文知 识图谱网站研发后,探索知识图谱技术在企业领域的应用。 2021 年,海致院 士专家工作站成立,站内清华大学计算机博士生占比达 90% 以上。 企业级数据解决方案专家 为建行、工行、交行、招行、上交所、深交所、中国人寿等 70+ 银行证券保险 企业、公安部、上海市公安局、武汉市公安局等 100+ 公安机构,国家电网、 专注于数据智能技术赋能中国数字经济发展 海致高性能图计算院士专家工作站 郑纬民 - 海致科技首席科学家 中国工程院院士、清华大学计算机科学与技术系教 授、中国计算机学会前理事长,中国计算机系统结构 的学科带头人,我国高性能计算和存储系统等方面的 泰斗和先行者。 2021 年 3 月 25 日,海致科技与清华大学计算机科学与技术系共同建设高性能图计算院士专家工作站 。 高性能图计算是高性能计算、图计算两项技术融合产生的新的技术方向,满足人们对更大规模、更复 大规模、更复 杂数据的实时处理和存储需求,是计算机领域竞争新战略制高点。 产学结合、协同创新,打造全球领先的国产自研图数据库 AtlasGraph ,培育世界级的图计算软硬件 生态体系,保持对全球科技竞争的战略均衡。 海致高性能图计算院士专家工作站 海致获得“ 2021 年 CCF 科学技术奖科技进步卓越奖” CCF 科学技术奖被认为是计算机科学与技术领域最具影响力的专业奖项之一, 其中科技进步卓越奖是0 码力 | 38 页 | 24.68 MB | 1 年前3 新一代分布式高性能图数据库的构建 - 沈游人专业顶尖技术团队支撑 超 700 人团队,其中 80% 为技术人员,创始团队在完成全球第一个中文知 识图谱网站研发后,探索知识图谱技术在企业领域的应用。 2021 年,海致院 士专家工作站成立,站内清华大学计算机博士生占比达 90% 以上。 企业级数据解决方案专家 为建行、工行、交行、招行、上交所、深交所、中国人寿等 70+ 银行证券保险 企业、公安部、上海市公安局、武汉市公安局等 100+ 公安机构,国家电网、 专注于数据智能技术赋能中国数字经济发展 海致高性能图计算院士专家工作站 郑纬民 - 海致科技首席科学家 中国工程院院士、清华大学计算机科学与技术系教 授、中国计算机学会前理事长,中国计算机系统结构 的学科带头人,我国高性能计算和存储系统等方面的 泰斗和先行者。 2021 年 3 月 25 日,海致科技与清华大学计算机科学与技术系共同建设高性能图计算院士专家工作站 。 高性能图计算是高性能计算、图计算两项技术融合产生的新的技术方向,满足人们对更大规模、更复 大规模、更复 杂数据的实时处理和存储需求,是计算机领域竞争新战略制高点。 产学结合、协同创新,打造全球领先的国产自研图数据库 AtlasGraph ,培育世界级的图计算软硬件 生态体系,保持对全球科技竞争的战略均衡。 海致高性能图计算院士专家工作站 海致获得“ 2021 年 CCF 科学技术奖科技进步卓越奖” CCF 科学技术奖被认为是计算机科学与技术领域最具影响力的专业奖项之一, 其中科技进步卓越奖是0 码力 | 38 页 | 24.68 MB | 1 年前3
 CeresDB Rust 生产实践 任春韶02 2018.10 2019.02 ~ 2020.11 2021.9  自研存储引擎  1.0.0 版本发布  查询性能优化  Prometheus 协议支持  基于 InfluxDB 单机引擎研发 分布式方案  OpenTSDB 协议  内存时序数据库  存储计算分离架构  分级存储  永久代  CeresDB 开源 2022.6 2023.3 spawn(task0) runtime.spawn(task1) runtime.spawn(task2) 生产实践 – Async lock 总结: Async lock: 按需使用,如果是纯内存计算的时候,使用 blocking mutex 比较好。 生产实践 – Mixed workload Write Read Compact Runtimes 问题: CeresDB 监控写0 码力 | 22 页 | 6.95 MB | 1 年前3 CeresDB Rust 生产实践 任春韶02 2018.10 2019.02 ~ 2020.11 2021.9  自研存储引擎  1.0.0 版本发布  查询性能优化  Prometheus 协议支持  基于 InfluxDB 单机引擎研发 分布式方案  OpenTSDB 协议  内存时序数据库  存储计算分离架构  分级存储  永久代  CeresDB 开源 2022.6 2023.3 spawn(task0) runtime.spawn(task1) runtime.spawn(task2) 生产实践 – Async lock 总结: Async lock: 按需使用,如果是纯内存计算的时候,使用 blocking mutex 比较好。 生产实践 – Mixed workload Write Read Compact Runtimes 问题: CeresDB 监控写0 码力 | 22 页 | 6.95 MB | 1 年前3
 ⽤ egg 孵化你的 SQL 优化器 - 王润基Binder Optimizer Executor SQL AST Logical Plan Physical Plan Table Catalog Storage RisingLight 查询引擎的整体结构 SELECT name, url FROM t1 JOIN t2 WHERE t1.id = t2.id AND name = ‘Bob’ SQL Logical Plan 等值连接 Row Analysis 估计⾏数 • Expr:Selectivity 0-1 • Plan:Rows CostFunction 估计代价 • Expr:每⾏计算开销 • Plan:计算+数据量+⼦节点 简单,但需要耐⼼调 估价函数 搜索剪枝 egg 不⽀持使⽤估价函数进⾏启发式搜索 容易导致组合爆炸问题 我们通过分阶段优化+多轮迭代缓解此问题 RBO: b)] #2 + #0 a + b 物理下标解析 Parser Binder Optimizer Executor SQL AST Table 基于 egg 的新版查询引擎 类型分析 Schema 分析 聚合分析 — 类型检查 — 通配符展开 — 聚合提取 常量分析 列分析 ⾏分析 类型分析 Schema 分析 — 类型解析 — 物理下标解析0 码力 | 39 页 | 6.48 MB | 1 年前3 ⽤ egg 孵化你的 SQL 优化器 - 王润基Binder Optimizer Executor SQL AST Logical Plan Physical Plan Table Catalog Storage RisingLight 查询引擎的整体结构 SELECT name, url FROM t1 JOIN t2 WHERE t1.id = t2.id AND name = ‘Bob’ SQL Logical Plan 等值连接 Row Analysis 估计⾏数 • Expr:Selectivity 0-1 • Plan:Rows CostFunction 估计代价 • Expr:每⾏计算开销 • Plan:计算+数据量+⼦节点 简单,但需要耐⼼调 估价函数 搜索剪枝 egg 不⽀持使⽤估价函数进⾏启发式搜索 容易导致组合爆炸问题 我们通过分阶段优化+多轮迭代缓解此问题 RBO: b)] #2 + #0 a + b 物理下标解析 Parser Binder Optimizer Executor SQL AST Table 基于 egg 的新版查询引擎 类型分析 Schema 分析 聚合分析 — 类型检查 — 通配符展开 — 聚合提取 常量分析 列分析 ⾏分析 类型分析 Schema 分析 — 类型解析 — 物理下标解析0 码力 | 39 页 | 6.48 MB | 1 年前3
 刘用涛 CnosDB时序数据库的Rust实践1. CnosDB 架构与选型 特性 • 横/纵 向扩展 • 计算存储分离 • 平衡存储性能与成本 • 查询引擎支持矢量化查询 • 兼容多种时序协议 • 可观测性 • 支持云原生 • 原生支持多租户 • 租户Quota可动态配置 • 云边端协同 • 云上生态融合 整体架构 1.2 存储引擎 version_set Vnode IndexEngine DataEngine 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实践1. CnosDB 架构与选型 特性 • 横/纵 向扩展 • 计算存储分离 • 平衡存储性能与成本 • 查询引擎支持矢量化查询 • 兼容多种时序协议 • 可观测性 • 支持云原生 • 原生支持多租户 • 租户Quota可动态配置 • 云边端协同 • 云上生态融合 整体架构 1.2 存储引擎 version_set Vnode IndexEngine DataEngine 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
 Rust语言核心竞争力-庄晓立对运算性能的高要求 • 对系统安全和内存安全的强需求 重点项目&热门领域 • 大数据 • 云计算 • 物联网 • 航空航天 • 超级计算机 • 科学运算/机器学习 • 图形图像处理 • 虚拟现实 ……都有系统编程的身影 • 操作系统 • 虚拟机/容器 • 数据库 • 3D游戏引擎 • 网络服务器 • 浏览器引擎 • 编译器、解释器 • 三维建模/动画/渲染 数据中心 • CPU/GPU •0 码力 | 51 页 | 1.09 MB | 1 年前3 Rust语言核心竞争力-庄晓立对运算性能的高要求 • 对系统安全和内存安全的强需求 重点项目&热门领域 • 大数据 • 云计算 • 物联网 • 航空航天 • 超级计算机 • 科学运算/机器学习 • 图形图像处理 • 虚拟现实 ……都有系统编程的身影 • 操作系统 • 虚拟机/容器 • 数据库 • 3D游戏引擎 • 网络服务器 • 浏览器引擎 • 编译器、解释器 • 三维建模/动画/渲染 数据中心 • CPU/GPU •0 码力 | 51 页 | 1.09 MB | 1 年前3
 基于 Rust Arrow Flight 的物联网和时序数据传输及转换工具 霍琳贺是一款开源、云原生的时序数据库( Time Series Database ),专为物联网、工业互联网、金融、 IT 运维监控等场景设计并优化,具有极强的弹性伸缩能力。同时它还带有内建的缓存、流式计算、数据订阅等 系统功能,能大幅减少系统设计的复杂度,降低研发和运营成本,是一个极简的时序数据处理平台。 采用关系型数据库模型  需要建库、建表,  为提升写入和查询效率,要求一个数据采集点一张表 支持标准 SQL 写入,支持批量写入  支持 Schemaless 写入  支持从 Kafaka, MQTT, OPC, PI System 以及文 件直接导入  数据源导入时,可定义规则引擎 TDengine: 与上下游应用的关系 TDengine = Time-Series Database + Caching + Data Subscription + Stream Processing INT, `location` VARCHAR(24)) TDengine - 业务模式 开源版 企业版 云服务版 核心功能开源 • SQL 支持 • 无模式写入 • 缓存 • 流计算 • 数据订阅 • 集群、高可用 高可靠、线性扩展 + 专业技术服务 • 边云数据复制 • 跨云 / 异地数据复制 • 增量备份 • 多级存储 • 工业数据接入 全托管时序数据 管理云服务平台0 码力 | 29 页 | 2.26 MB | 1 年前3 基于 Rust Arrow Flight 的物联网和时序数据传输及转换工具 霍琳贺是一款开源、云原生的时序数据库( Time Series Database ),专为物联网、工业互联网、金融、 IT 运维监控等场景设计并优化,具有极强的弹性伸缩能力。同时它还带有内建的缓存、流式计算、数据订阅等 系统功能,能大幅减少系统设计的复杂度,降低研发和运营成本,是一个极简的时序数据处理平台。 采用关系型数据库模型  需要建库、建表,  为提升写入和查询效率,要求一个数据采集点一张表 支持标准 SQL 写入,支持批量写入  支持 Schemaless 写入  支持从 Kafaka, MQTT, OPC, PI System 以及文 件直接导入  数据源导入时,可定义规则引擎 TDengine: 与上下游应用的关系 TDengine = Time-Series Database + Caching + Data Subscription + Stream Processing INT, `location` VARCHAR(24)) TDengine - 业务模式 开源版 企业版 云服务版 核心功能开源 • SQL 支持 • 无模式写入 • 缓存 • 流计算 • 数据订阅 • 集群、高可用 高可靠、线性扩展 + 专业技术服务 • 边云数据复制 • 跨云 / 异地数据复制 • 增量备份 • 多级存储 • 工业数据接入 全托管时序数据 管理云服务平台0 码力 | 29 页 | 2.26 MB | 1 年前3
 Rust 程序设计语言简体中文版团队希望使系统概念能为更多人所易于理解,特别是编程新手。 公司 数百家大小规模的公司在生产环境中使用 Rust 完成各种任务,包括命令行工具、Web 服务、 DevOps 工具、嵌入式设备、音视频分析与转码、加密货币、生物信息学、搜索引擎、物联网 (IOT)程序、机器学习,甚至是 Firefox 浏览器的重要部分。 7/600 Rust 程序设计语言 简体中文版 开源开发者 Rust 适合那些希望构建 Rust 编程语言、社区 Cargo.lock 文件,我们现在可以在 guessing_game 目录找到它。 当第一次构建项目时,Cargo 计算出所有符合要求的依赖版本并写入 Cargo.lock 文件。当将 来构建项目时,Cargo 会发现 Cargo.lock 已存在并使用其中指定的版本,而不是再次计算所 有的版本。这使得你拥有了一个自动化的可重现的构建。换句话说,项目会持续使用 0.8.5 直到你显式升级,多亏有了 要,因此它通常会和项目中的其余代码一样纳入到版本控制系统中。 更新 crate 到一个新版本 当你 确实 需要升级 crate 时,Cargo 提供了这样一个命令,update ,它会忽略 Cargo.lock 文 件,并计算出所有符合 Cargo.toml 声明的最新版本。Cargo 接下来会把这些版本写入 Cargo.lock 文件。不过,Cargo 默认只会寻找大于 0.8.5 而小于 0.9.0 的版本。如果0 码力 | 600 页 | 12.99 MB | 1 年前3 Rust 程序设计语言简体中文版团队希望使系统概念能为更多人所易于理解,特别是编程新手。 公司 数百家大小规模的公司在生产环境中使用 Rust 完成各种任务,包括命令行工具、Web 服务、 DevOps 工具、嵌入式设备、音视频分析与转码、加密货币、生物信息学、搜索引擎、物联网 (IOT)程序、机器学习,甚至是 Firefox 浏览器的重要部分。 7/600 Rust 程序设计语言 简体中文版 开源开发者 Rust 适合那些希望构建 Rust 编程语言、社区 Cargo.lock 文件,我们现在可以在 guessing_game 目录找到它。 当第一次构建项目时,Cargo 计算出所有符合要求的依赖版本并写入 Cargo.lock 文件。当将 来构建项目时,Cargo 会发现 Cargo.lock 已存在并使用其中指定的版本,而不是再次计算所 有的版本。这使得你拥有了一个自动化的可重现的构建。换句话说,项目会持续使用 0.8.5 直到你显式升级,多亏有了 要,因此它通常会和项目中的其余代码一样纳入到版本控制系统中。 更新 crate 到一个新版本 当你 确实 需要升级 crate 时,Cargo 提供了这样一个命令,update ,它会忽略 Cargo.lock 文 件,并计算出所有符合 Cargo.toml 声明的最新版本。Cargo 接下来会把这些版本写入 Cargo.lock 文件。不过,Cargo 默认只会寻找大于 0.8.5 而小于 0.9.0 的版本。如果0 码力 | 600 页 | 12.99 MB | 1 年前3
 Rust 程序设计语言 简体中文版 1.85.0特别是编程新手。 公司 数百家大小规模的公司在生产环境中使用 Rust 完成各种任务,包括命令行工具、Web 服务、 DevOps 工具、嵌入式设备、音视频分析与转码、加密货币、生物信息学、搜索引擎、物联网 (IOT)程序、机器学习,甚至是 Firefox 浏览器的重要部分。 开源开发者 Rust 适合那些希望构建 Rust 编程语言、社区、开发工具和库的开发者。我们非常欢迎你为 Rust Cargo.lock 文件,我们现在可以在 guessing_game 目录找到它。 当第一次构建项目时,Cargo 计算出所有符合要求的依赖版本并写入 Cargo.lock 文件。当将 来构建项目时,Cargo 会发现 Cargo.lock 已存在并使用其中指定的版本,而不是再次计算所 有的版本。这使得你拥有了一个自动化的可重现构建(reproducible build)。换句话说,项目 会持续使用 其余代码一样提交到版本控制系统中。 更新 crate 到一个新版本 当你 确实 需要升级 crate 时,Cargo 提供了这样一个命令,update,它会忽略 Cargo.lock 文 件,并计算出所有符合 Cargo.toml 声明的最新版本。Cargo 接下来会把这些版本写入 Cargo.lock 文件。不过,Cargo 默认只会寻找大于 0.8.5 而小于 0.9.0 的版本。如果 rand0 码力 | 562 页 | 3.23 MB | 25 天前3 Rust 程序设计语言 简体中文版 1.85.0特别是编程新手。 公司 数百家大小规模的公司在生产环境中使用 Rust 完成各种任务,包括命令行工具、Web 服务、 DevOps 工具、嵌入式设备、音视频分析与转码、加密货币、生物信息学、搜索引擎、物联网 (IOT)程序、机器学习,甚至是 Firefox 浏览器的重要部分。 开源开发者 Rust 适合那些希望构建 Rust 编程语言、社区、开发工具和库的开发者。我们非常欢迎你为 Rust Cargo.lock 文件,我们现在可以在 guessing_game 目录找到它。 当第一次构建项目时,Cargo 计算出所有符合要求的依赖版本并写入 Cargo.lock 文件。当将 来构建项目时,Cargo 会发现 Cargo.lock 已存在并使用其中指定的版本,而不是再次计算所 有的版本。这使得你拥有了一个自动化的可重现构建(reproducible build)。换句话说,项目 会持续使用 其余代码一样提交到版本控制系统中。 更新 crate 到一个新版本 当你 确实 需要升级 crate 时,Cargo 提供了这样一个命令,update,它会忽略 Cargo.lock 文 件,并计算出所有符合 Cargo.toml 声明的最新版本。Cargo 接下来会把这些版本写入 Cargo.lock 文件。不过,Cargo 默认只会寻找大于 0.8.5 而小于 0.9.0 的版本。如果 rand0 码力 | 562 页 | 3.23 MB | 25 天前3
共 33 条
- 1
- 2
- 3
- 4













