Photograph in 2025
2025/06 2025-06-22 星期日(天气: ☀️ 温度: 36℃) 好热 🫠 … 2025/05 2025-05-31 星期六(天气: 🌧️ ☔️) ...
记录一次 tokio 异步场景下 RPC 接口 timeout 的排查过程
在踩坑的过程中不断理解 tokio 的原理,本文已进行脱敏处理 问题现象 rpc server 是在 k8s pod 中运行的, 运行时主要包含以下 2 个模块: rpc 接口: 用户可以对其发起 rpc 请求获取实时数据 内部数据处理任务: 随着时间的推移,内部数据不断更新,确保用户通过 rpc 获取的数据是正确的 内部数据处理任务会涉及到 S3 的数据下载,以及一些 DB...
DataFusion TableSource 和 TableProvider
学习理解 Datafusion 的 TableSource, TableProvider 之间的关系 一、TableSource 和 TableProvider 的作用 1. TableSource TableSource 是在逻辑查询规划和优化阶段使用的 Trait, 提供: schema 信息 filter 下推能力 table 类型信息 约束条件 (比如主键) ...
Rust 多平台编译
在执行对 rust 二进制文件内存分析时, 提示找不到动态库 .so, 因此需要静态编译 rust 二进制文件 安装新平台支持 rustup target add x86_64-unknown-linux-musl 使用下述命令查看当前系统安装的所有 target rustup target list --installed 查看所有的 rust target, 包括目前还未安装...
在 Rust 中使用 tonic 提供的 async_trait
关于 tonic 的 async_triat
~君がくれたもの~
在 Rust 中针对带有引用字段 struct 的深拷贝
在项目开发时,针对深拷贝的优化方案思考。 首先观察下面的 struct 结构体 #[derive(Default, Debug, Clone)] pub struct CompressedPostingListView<'a, TW> where TW: QuantizedWeight, { pub row_ids_compressed: &'a [...
详细理解关于 Rust 的 dyn Iterator 以及 Box
理解项目中使用到的 dyn Iterator 让我们逐步解析你提到的几个问题: 1. 为什么返回值使用 Box 封装? 在 Rust 中,dyn Trait 表示动态分发的 trait 对象,而动态分发的 trait 对象本身无法直接作为函数的返回值,因为其大小在编译时不固定。 具体原因 Iterator 是一个 trait,dyn Iterator 是它的动态版本。 ...
详细理解关于 Rust 的 Copy、Clone 机制
结合生命周期标注,理解复杂场景下 clone、copy 的作用,内部原理细节 发现在使用了 Copy 这个 Trait 之后,原本会提示的 value moved,不再会报错了。 Copy 的作用类型和特点: 按值复制 不需要显式 clone 零成本复制(复制是按照位来进行的,开销很低,适合简单,轻量的类型(如数值类型与指针)) Copy 的使用条件: 类型中...