ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

【Rust日报】2020-11-11 -「InfluxDB IOx」未来会用 Rust 和 Arro

2021-05-08 18:01:57  阅读:307  来源: 互联网

标签:11 BPF IOx InfluxDB Arrow 编写 Rust


「InfluxDB IOx」未来会用 Rust 和 Arrow 构建内核

Rust提供了对运行时行为和内存管理的更精细控制。另外,它使并发编程更容易,并且消除了数据争用。Apache Arrow定义了用于列式数据的内存格式,以及Parquet(一种持久的持久性格式)以及Flight(一种用于“通过网络接口进行大型数据集的高性能传输”的客户端/服务器框架和协议)。另外,Rust的Apache Arrow工具集中还有DataFusion,它是用于Apache Arrow的Rust本机SQL查询引擎。假设我们以DataFusion为核心进行构建,这意味着InfluxDB IOx将支持现成的SQL子集随着DataFusion项目的成熟,通过InfluxData外部的协作者的开发工作,它既可以在InfluxDB IOx中使用,也可以在其他地方使用。该项目仍处于初期阶段。我们目前尚未生成构建,并且除了InfluxDB IOx项目README之外,没有任何文档。该团队是一个由高级工程师组成的小型小组,我们的工作与平台上其余部分的大型工程组织的所有工作并行。我们的目标是在明年初生产开源构建,并在InfluxDB Cloud中以alpha形式提供。详情:https://www.influxdata.com/blog/announcing-influxdb-iox/

[linux kernel] 在Rust中编写BPF代码

BPF是一种虚拟机,当Linux系统上发生某些事件时,它允许在内核中运行用户定义的程序。例如,您要监视可疑文件活动,记录网络响应延迟甚至跟踪用户空间应用程序–您可以编写小型BPF程序,请求将它们附加到内核中的正确位置,并实施必要的检测。BPF VM使用其自己的指令集。您可以直接编写字节码,但是人们通常使用 bpftrace 或编写C代码并使用 BPF编译器集合(BCC)进行编译。从原理上讲,开发BPF程序的过程可以归纳为以下步骤:

  1. 用C编写BPF代码
  2. 编译BPF VM的代码
  3. 编写一个将第2步的输出加载到BPF VM的用户空间组件
  4. 使用BPF API在用户空间组件和BPF代码之间交换数据

RedBPF包括用于实现上述所有步骤(步骤1)除外的API和工具。使用RedBPF,步骤1变为:

  1. 在Rust中编写BPF代码

文中实现了一个简单的http trace, 有兴趣的可以仔细阅读详情:https://blog.redsift.com/labs/writing-bpf-code-in-rust/

关于 Rust 的数学运算

昨天有个同学说 rust 没有基础数学运算。emmmm

今天写小玩具的时候发现标准库都不支持基础数学运算,都要自己造轮子,
三方库里也只有unsafe的linux数学库,愿rust越来越强!

洛佳同学的回复:

数字运算在类型里面,标准库是有的,是支持的

Attila的灵魂一击:

说找不到库的试试这个的分类?

https://lib.rs/science/math

点击发现更多科学计算库:https://lib.rs/science/math

最后说一句:多 Google ,几个关键字一拼什么都有了


标签:11,BPF,IOx,InfluxDB,Arrow,编写,Rust
来源: https://blog.51cto.com/u_15127605/2762176

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有