新一代分布式高性能图数据库的构建 - 沈游人日,海致科技与清华大学计算机科学与技术系共同建设高性能图计算院士专家工作站 。 高性能图计算是高性能计算、图计算两项技术融合产生的新的技术方向,满足人们对更大规模、更复 杂数据的实时处理和存储需求,是计算机领域竞争新战略制高点。 产学结合、协同创新,打造全球领先的国产自研图数据库 AtlasGraph ,培育世界级的图计算软硬件 生态体系,保持对全球科技竞争的战略均衡。 海致高性能图计算院士专家工作站 据所产生 的建模能力不足、结构知识难用、巨量数据难算等技术挑战,实现了大规模复杂异质图数 据的表示学习模型、语义推荐和风险管理关键技术,构建了完整的兼具理论指导与应用检 验的大规模图数据智能分析系统与平台,满足了大数据时代从复杂异质图数据中进行知识 发现的重要需求。最终获得国内外授权发明专利 43 项, CCF -A 类论文 51 篇,获得 2 次国际竞赛冠军,参与了 2 项图计算相关标准制定。 AtlasGraph 研发背景 • 业务对大图分析的诉求(千亿点、万亿边) • 实时风控对图库的性能挑战( OLTP 毫秒级响应) • 海致图平台产品服务于金融、政府行业有大量业务经验积累(接近客户需求) • 现有开源产品无法满足要求(受限于基础架构设计,优化性能有限) 新一代分布式图数据库需具备的特性 特性 信 雅 达 • 高可用 • 一致性(事 务) • 高性能 • 低资源消耗0 码力 | 38 页 | 24.68 MB | 1 年前3
Rust语言核心竞争力-庄晓立对硬件的控制(嵌入式, OS) • 对系统底层的控制(OS, kernel, driver) • 对CPU和内存的高效利用(Server, OS) • 对运算性能的高要求 • 对系统安全和内存安全的强需求 重点项目&热门领域 • 大数据 • 云计算 • 物联网 • 航空航天 • 超级计算机 • 科学运算/机器学习 • 图形图像处理 • 虚拟现实 ……都有系统编程的身影 • 操作系统 这是C++的设计原则,也是Rust的设计原则 No GC • “没有GC”居然被当作一项特性(20年来GC几乎是标配) • GC的优势:简化内存管理,基本保证内存安全 • GC的劣势:运行时开销较大,占用CPU和内存较多 • GC不能管理内存以外的其他资源(file/socket/stream) • 在系统编程领域,GC的运行时开销几乎难以容忍 • GC的终极目的是安全地释放内存 • 66) .all(|_| true); } http://is.gd/9aZTCo • FFI 直接调用C库,运行时零损耗 • Thread 直接使用OS本地线程,无额外管理调度损耗 • FileSystem Network等IO操作 薄薄一层封装,通常唯一对应某个系统API调用 • Closure Inline, Unboxed (No runtime0 码力 | 51 页 | 1.09 MB | 1 年前3
基于 Rust 语言编写的可编程的全球分布式 MQTT 服务器 王文庭HPMQ开发说明 HPMQ未来规划 O3 1. 背景说明 物联⽹时代带来的变化 海量 连⽹ 设备 海量数据处理? 设备安全性? 共性:边缘 原来以数据中 ⼼为核⼼的云 端架构是否还 满⾜需求? 01 02 03 边缘架构 ⼀种分布式计 算架构 构成边缘 计算架构 的核⼼ 可在边缘直接对数据进⾏相 关的计算(处理/存储)并提 供相应的查询功能 边缘架构 物联⽹设备的纽带 传统⽅案存在有问题 解决⽅案 geo-distributed架构 + 调度 如何管理分布式⽹络 我们主要基于eclipse-zenoh来做⼆次开 发,eclipse-zenoh是⼀款很优秀的rust 语⾔编写的,基于边缘架构的,开源分 布式消息服务基础架构,它帮我们解决 了很多分布式⽹络管理的共同的问题, ⽐如说分布式消息⼀致性问题,边缘节 点⾃动发现等问题 传统⽅案痛点 Safari四⼤浏览器都开始实验性的⽀持 • 它在浏览器以外也有很⼴泛的运⽤,特别是在边缘计算领域。 • ⽀持多语⾔开发,⽐如Go,Python, rust,Javascript等 什么是Webassembly? 1. 所需求运⾏资源⼩(~64Kb for code and ~10Kb RAM) 2. 异构设备兼容性强(x86, ARM, RISC-V, MIPS, Raspberry Pi, Orange Pi … )0 码力 | 31 页 | 3.95 MB | 1 年前3
Rust HTTP 协议栈在终端通信场景的实践 - 胡凯multipart Rust China Conf 2022 – 2023, Shanghai, China Rust 与 HTTP 协议 以上 Rust HTTP 库主要支持的场景特点: ➢ 并发量、吞吐量需求较高 ➢ 网络环境稳定 ➢ 不太需要体现交互界面 ➢ 不太关注资源使用 比较适合构建浏览器、大型 WEB 服务器等。 终端 HTTP 通信场景浅析 Part 03 探讨终端场景下 HTTP ✓ 支持连接管理和复用 ✓ 支持进度显示 ✓ 支持发送 Multipart/ Chunk 格式 body Rust China Conf 2022 – 2023, Shanghai, China Rust 与终端 HTTP 通信场景结合 针对弱网环境的处理举例: ➢ 支持上层自定义 DNS 解析逻辑:利用 Rust 的 trait 实现继承关系,方便用户根据自身需求自定义 DNS 通信场景结合 功耗和性能表现: ➢ 使用 Rust 异步 IO 可以充分利用线程资源,带来稳定的性能表现。 ➢ 针对 HTTP 协议层的解析逻辑进行优化,使用状态机和可复用内存减少运行内存占用。 ➢ 管理和复用已有连接,减少连接的反复创建。 Thank you!0 码力 | 26 页 | 1.25 MB | 1 年前3
Rust 语言学习笔记......................................................................................7 第一章 包管理系统与版本管理工具................................................................9 1.1 Crate ................ 2.8 pub restricted ..................................................................... 15 1.3 版本管理工具 .............................................................................. 15 1.4 rust 编译运行 程序设计语言的本质在于赋能(empowerment):无论你现在编写的是何 种代码,Rust 能让你在更为广泛的编程领域走得更远,写出自信。 比如,“系统层面”(“systems-level”)的工作,涉及内存管理、数据表示 和并发等底层细节。从传统角度来看,这是一个神秘的编程领域,只为浸淫多 年的极少数人所触及,也只有他们能避开那些臭名昭著的陷阱。即使谨慎的实 践者,亦唯恐代码出现漏洞、崩溃或损坏。 Rust0 码力 | 117 页 | 2.24 MB | 1 年前3
Rust 程序设计语言 简体中文版 1.85.0. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128 7. 使用包、Crate 和模块管理不断增长的项目 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 程序设计语言的本质实际在于 赋能(empowerment):无论你现在编写的是何种代码, Rust 能让你在更为广泛的编程领域走得更远,写出自信。(这一点并不显而易见) 举例来说,那些“系统层面”的工作涉及内存管理、数据表示和并发等底层细节。从传统角度来 看,这是一个神秘的编程领域,只为浸润多年的极少数人所触及,也只有他们能避开那些臭名 昭著的陷阱。即使谨慎的实践者,亦唯恐代码出现漏洞、崩溃或损坏。 Rust 绝编译包含这些难以察觉的错误的代码,包括并发错误。通过与编译器合作,团队可以将时间 集中在程序逻辑上,而不是追踪 bug。 Rust 也为系统编程世界带来了现代化的开发工具: • Cargo 是内置的依赖管理器和构建工具,它能轻松增加、编译和管理依赖,并使依赖在 Rust 生态系统中保持一致。 • Rustfmt 格式化工具确保开发者遵循一致的代码风格。 • rust-analyzer 为集成开发环境(IDE)提供了强大的代码补全和内联错误信息功能。0 码力 | 562 页 | 3.23 MB | 1 月前3
Hello 算法 1.1.0 Rust版更新条件变量 i += 1; i *= 2; } res } 总的来说,for 循环的代码更加紧凑,while 循环更加灵活,两者都可以实现迭代结构。选择使用哪一个应该 根据特定问题的需求来决定。 3. 嵌套循环 我们可以在一个循环结构内嵌套另一个循环结构,下面以 for 循环为例: // === File: iteration.rs === /* 双层 for 循环 */ 址,程序便可以访问内存中的数据。 图 3‑2 内存条、内存空间、内存地址 Tip 值得说明的是,将内存比作 Excel 表格是一个简化的类比,实际内存的工作机制比较复杂,涉及地址 空间、内存管理、缓存机制、虚拟内存和物理内存等概念。 内存是所有程序的共享资源,当某块内存被某个程序占用时,则无法被其他程序同时使用了。因此在数据结 构与算法的设计中,内存资源是一个重要的考虑因素。比如,算法所占用的内存峰值不应超过系统剩余空闲 位,能够表示 256 个不同的字符。 在世界范围内,陆续出现了一批适用于不同地区的 EASCII 字符集。这些字符集的前 128 个字符统一为 ASCII 码,后 128 个字符定义不同,以适应不同语言的需求。 3.4.2 GBK 字符集 后来人们发现,EASCII 码仍然无法满足许多语言的字符数量要求。比如汉字有近十万个,光日常使用的就 有几千个。中国国家标准总局于 1980 年发布了 GB23120 码力 | 388 页 | 18.50 MB | 1 年前3
Hello 算法 1.2.0 简体中文 Rust 版更新条件变量 i += 1; i *= 2; } res } 总的来说,for 循环的代码更加紧凑,while 循环更加灵活,两者都可以实现迭代结构。选择使用哪一个应该 根据特定问题的需求来决定。 3. 嵌套循环 我们可以在一个循环结构内嵌套另一个循环结构,下面以 for 循环为例: // === File: iteration.rs === /* 双层 for 循环 */ 址,程序便可以访问内存中的数据。 图 3‑2 内存条、内存空间、内存地址 Tip 值得说明的是,将内存比作 Excel 表格是一个简化的类比,实际内存的工作机制比较复杂,涉及地址 空间、内存管理、缓存机制、虚拟内存和物理内存等概念。 内存是所有程序的共享资源,当某块内存被某个程序占用时,则通常无法被其他程序同时使用了。因此在数 据结构与算法的设计中,内存资源是一个重要的考虑因素。比如,算法所占用的内存峰值不应超过系统剩余 位,能够表示 256 个不同的字符。 在世界范围内,陆续出现了一批适用于不同地区的 EASCII 字符集。这些字符集的前 128 个字符统一为 ASCII 码,后 128 个字符定义不同,以适应不同语言的需求。 3.4.2 GBK 字符集 后来人们发现,EASCII 码仍然无法满足许多语言的字符数量要求。比如汉字有近十万个,光日常使用的就 有几千个。中国国家标准总局于 1980 年发布了 GB23120 码力 | 387 页 | 18.51 MB | 10 月前3
Hello 算法 1.0.0 Rust版更新条件变量 i += 1; i *= 2; } res } 总的来说,for 循环的代码更加紧凑,while 循环更加灵活,两者都可以实现迭代结构。选择使用哪一个应该 根据特定问题的需求来决定。 3. 嵌套循环 我们可以在一个循环结构内嵌套另一个循环结构,下面以 for 循环为例: // === File: iteration.rs === /* 双层 for 循环 */ 些地址,程序便可以访问内存中的数据。 图 3‑2 内存条、内存空间、内存地址 � 值得说明的是,将内存比作 Excel 表格是一个简化的类比,实际内存的工作机制比较复杂,涉 及地址空间、内存管理、缓存机制、虚拟内存和物理内存等概念。 内存是所有程序的共享资源,当某块内存被某个程序占用时,则无法被其他程序同时使用了。因此在数据结 构与算法的设计中,内存资源是一个重要的考虑因素。比如,算法所占用的内存峰值不应超过系统剩余空闲 位,能够表示 256 个不同的字符。 在世界范围内,陆续出现了一批适用于不同地区的 EASCII 字符集。这些字符集的前 128 个字符统一为 ASCII 码,后 128 个字符定义不同,以适应不同语言的需求。 3.4.2 GBK 字符集 后来人们发现,EASCII 码仍然无法满足许多语言的字符数量要求。比如汉字有近十万个,光日常使用的就 有几千个。中国国家标准总局于 1980 年发布了「GB2312」字符集,其收录了0 码力 | 383 页 | 17.61 MB | 1 年前3
Hello 算法 1.2.0 繁体中文 Rust 版更新條件變數 i += 1; i *= 2; } res } 總的來說,for 迴圈的程式碼更加緊湊,while 迴圈更加靈活,兩者都可以實現迭代結構。選擇使用哪一個應 該根據特定問題的需求來決定。 3. 巢狀迴圈 我們可以在一個迴圈結構內巢狀另一個迴圈結構,下面以 for 迴圈為例: // === File: iteration.rs === /* 雙層 for 迴圈 */ 訪問記憶體中的資料。 圖 3‑2 記憶體條、記憶體空間、記憶體位址 Tip 值得說明的是,將記憶體比作 Excel 表格是一個簡化的類比,實際記憶體的工作機制比較複雜,涉及 位址空間、記憶體管理、快取機制、虛擬記憶體和物理記憶體等概念。 記憶體是所有程式的共享資源,當某塊記憶體被某個程式佔用時,則通常無法被其他程式同時使用了。因此 在資料結構與演算法的設計中,記憶體資源是一個重要的考慮 位,能夠表示 256 個不同的字元。 在世界範圍內,陸續出現了一批適用於不同地區的 EASCII 字符集。這些字符集的前 128 個字元統一為 ASCII 碼,後 128 個字元定義不同,以適應不同語言的需求。 3.4.2 GBK 字符集 後來人們發現,EASCII 碼仍然無法滿足許多語言的字元數量要求。比如漢字有近十萬個,光日常使用的就 有幾千個。中國國家標準總局於 1980 年釋出了 GB23120 码力 | 388 页 | 18.82 MB | 10 月前3
共 30 条
- 1
- 2
- 3













