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
新一代分布式高性能图数据库的构建 - 沈游人员工 手机号 设备 商品 商品 查询 / 操作 生活中无处不在的图 图分析技术分类 图查询 • 使用图数据库的查询语言进行点边搜索 图算法 • 中心性算法 • 社区算法 • 路径算法 • … 图深度学习 • 图嵌入 • 图卷积 • 图注意力网络 • 图自编码器 图查询及其应用场景 图查询 • 使用图数据库的查询语言进行点边的关联查询,可以快速完成传统数据库难以完成的 多度点边关 Source: KDnuggets 图技术全景图—— Graph Technology Landscape 2020 • 图数据库 • 图数据建模 • 图计算引擎 • 图数据集成 • 可视化分析 • 知识图谱解决方案 • 图查询语言 • 欺诈检测 • 网络安全分析 • 社交网络分析 • BI 工具 • 图分析工具集 • 图咨询服务 Source : Graph Aware 20 余种图计算算法 ,可扩展的分析引擎支持更复 杂的数据挖掘和机器学习场景 MPP Massively Parallel Processing 架构,大规模集群 分布式存储及并行计 算, Shared Nothing 模式支 持存储计算分离 高性能 基于 Rust 开发的分布式存储引 擎及图计算引擎,精细的内存 管理设计,内置索引系统,支 持毫秒级的并发查询响应速度 易用 AQL(Atlas0 码力 | 38 页 | 24.68 MB | 1 年前3
刘用涛 CnosDB时序数据库的Rust实践CnosDB 架构与选型 特性 • 横/纵 向扩展 • 计算存储分离 • 平衡存储性能与成本 • 查询引擎支持矢量化查询 • 兼容多种时序协议 • 可观测性 • 支持云原生 • 原生支持多租户 • 租户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
Rust 在算法交易中的实际应用与积极效应集成学习模型 定制早停函数 原 始 高 频 数 据 实时超高频数据 结构化多档行情 全行业指数 概念指数 龙头 lead 股票 互联网新闻 外 部 交 互 交易所引擎 Web客户端 下单指令 信息回报 母单/信息上传 统计信息查询等 数据获取 模型训练 信号预测 交易指令 交易指令 1. 低延迟高吞吐的一写多读消息队列 2. 基于共享内存,全用户态,零拷贝(配合 capnproto) 集成学习模型 定制早停函数 原 始 高 频 数 据 实时超高频数据 结构化多档行情 全行业指数 概念指数 龙头 lead 股票 互联网新闻 外 部 交 互 交易所引擎 Web客户端 下单指令 信息回报 母单/信息上传 统计信息查询等 数据获取 模型训练 信号预测 交易指令 交易指令 与非 Rust 世界交互的主要边界 Rust FFI 网络协议栈参数优化,多路行情冗余互备 集成学习模型 定制早停函数 原 始 高 频 数 据 实时超高频数据 结构化多档行情 全行业指数 概念指数 龙头 lead 股票 互联网新闻 外 部 交 互 交易所引擎 Web客户端 下单指令 信息回报 母单/信息上传 统计信息查询等 数据获取 模型训练 信号预测 交易指令 交易指令 森林模型的 Rust 展开 预测 大规模的新闻实时 spider 以及 NLP 分析 互联网新闻因子0 码力 | 18 页 | 3.49 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 Join Hash Join Sort-merge Join Nested Loop Join 连接重排序 连接算法选择 TopN A Order TopN A Limit 查询优化 定义计划节点 定义重写规则 ⽤纯 Rust 编写的第⼀代优化器 Visitor 模式 ⽤纯 Rust 编写的第⼀代优化器 e-class e-node Rewriting Rewriting a b)] #2 + #0 a + b 物理下标解析 Parser Binder Optimizer Executor SQL AST Table 基于 egg 的新版查询引擎 类型分析 Schema 分析 聚合分析 — 类型检查 — 通配符展开 — 聚合提取 常量分析 列分析 ⾏分析 类型分析 Schema 分析 — 类型解析 — 物理下标解析0 码力 | 39 页 | 6.48 MB | 1 年前3
CeresDB Rust 生产实践 任春韶CeresDB – 历程 2018.02 2018.10 2019.02 ~ 2020.11 2021.9 自研存储引擎 1.0.0 版本发布 查询性能优化 Prometheus 协议支持 基于 InfluxDB 单机引擎研发 分布式方案 OpenTSDB 协议 内存时序数据库 存储计算分离架构 分级存储 永久代 CeresDB 解决时间线高基数问题 • 能高效处理好 APM 型时序数据 • 同时能高效处理好高基数时间线场景 提供原生分布式方案 • 大规模部署 • 提供高可用、高可靠的服务 • 支持水平扩容 • 支持高效的分布式查询 - Tokio Preemption - Future Cancellation Rust 生产实践 生产实践 – Tokio 为什么使用 Tokio ? 1. 业界使用最广泛,测试齐全。0 码力 | 22 页 | 6.95 MB | 1 年前3
基于 Rust Arrow Flight 的物联网和时序数据传输及转换工具 霍琳贺 为提升写入和查询效率,要求一个数据采集点一张表 为实现多表聚合,引入超级表概念 子表通过超级表创建,带有标签,通过标签实现多表 高效聚合 高效写入 支持标准 SQL 写入,支持批量写入 支持 Schemaless 写入 支持从 Kafaka, MQTT, OPC, PI System 以及文 件直接导入 数据源导入时,可定义规则引擎 TDengine:0 码力 | 29 页 | 2.26 MB | 1 年前3
Rust 程序设计语言简体中文版团队希望使系统概念能为更多人所易于理解,特别是编程新手。 公司 数百家大小规模的公司在生产环境中使用 Rust 完成各种任务,包括命令行工具、Web 服务、 DevOps 工具、嵌入式设备、音视频分析与转码、加密货币、生物信息学、搜索引擎、物联网 (IOT)程序、机器学习,甚至是 Firefox 浏览器的重要部分。 7/600 Rust 程序设计语言 简体中文版 开源开发者 Rust 适合那些希望构建 Rust 编程语言、社区 println!("Searching for {}", query); println!("In file {}", file_path); } 示例 12-2:创建变量来存放查询参数和文件路径参数 正如之前打印出 vector 时所所看到的,程序的名称占据了 vector 的第一个值 args[0] ,所以 我们从索引为 1 的参数开始。minigrep 获取的第一个参数是需要搜索的字符串,所以将其将 我们将测试驱动实现实际在文件内容中搜索查询字符串并返回匹配的行示例的功能。我们将在 一个叫做 search 的函数中增加这些功能。 编写失败测试 去掉 src/lib.rs 和 src/main.rs 中用于检查程序行为的 println! 语句,因为不再真正需要它们 了。接着我们会像 第十一章 那样增加一个 test 模块和一个测试函数。测试函数指定了 search 函数期望拥有的行为:它会获取一个需要查询的字符串和用来查询的文本,并只会返0 码力 | 600 页 | 12.99 MB | 1 年前3
Rust 程序设计语言 简体中文版 1.85.0特别是编程新手。 公司 数百家大小规模的公司在生产环境中使用 Rust 完成各种任务,包括命令行工具、Web 服务、 DevOps 工具、嵌入式设备、音视频分析与转码、加密货币、生物信息学、搜索引擎、物联网 (IOT)程序、机器学习,甚至是 Firefox 浏览器的重要部分。 开源开发者 Rust 适合那些希望构建 Rust 编程语言、社区、开发工具和库的开发者。我们非常欢迎你为 Rust &args[2]; println!("Searching for {query}"); println!("In file {file_path}"); } 示例 12-2:创建变量来存放查询参数和文件路径参数 正如之前打印出 vector 时所看到的,程序的名称占据了 vector 的第一个值 args[0],所以我 们从索引为 1 的参数开始。minigrep 获取的第一个参数是需要搜索的字符串,所以将第一个 我们将测试驱动实现实际在文件内容中搜索查询字符串并返回匹配的行示例的功能。我们将在 一个叫做 search 的函数中增加这些功能。 编写失败测试 去掉 src/lib.rs 和 src/main.rs 中用于检查程序行为的 println! 语句,因为不再真正需要它们 了。接着我们会像第十一章那样增加一个 test 模块和一个测试函数。测试函数指定了 search 函数期望拥有的行为:它会获取一个需要查询的字符串和用来查询的文本,并只会返回包含请0 码力 | 562 页 | 3.23 MB | 1 月前3
共 23 条
- 1
- 2
- 3













