绕过内核实现56纳秒跨语言进程间通信
Bypassing the kernel for 56ns cross-language IPC

原始链接: https://github.com/riyaneel/Tachyon/tree/main/docs/adr

``` 这个目录包含 Tachyon 的架构决策记录 (ADR)。每个 ADR 记录了一个重要的设计选择、促使该选择的背景以及其后果。新的 ADR 使用文件底部的模板。一旦被接受,ADR 将不会被删除,过时的决策会被标记为“已废弃”并链接到替代方案。 # ADR-NNN: 标题 --- **状态:** 提议中 | 已接受 | 被 ADR-NNN 废弃 | 已弃用 **日期:** YYYY-MM-DD --- ## 背景 存在什么问题?有哪些因素在起作用?存在什么约束?请具体说明:包括基准测试、内核版本和相关的 API 限制。 ## 决策 我们决定了什么?用一句话清晰地表达,然后说明理由。 ## 后果 **正面** - … **负面** - … **中性** - … ```

## 快速跨语言 IPC 实现 一个新库旨在实现极快的(56.5ns p50 往返时间)跨进程通信 (IPC),用于 C++、Rust、Python、Go、Java 和 Node.js 等语言之间,通过绕过内核来提高速度。 作者 riyaneel 专注于消除序列化开销和内核在关键路径上的参与。 关键架构选择包括严格的单生产者单消费者 (SPSC) 设计、硬件感知的内存填充以避免缓存争用,以及在初始 socket 握手后使用共享内存 (memfd) 进行零拷贝数据传输。 一种混合等待策略在响应能力和 CPU 使用率之间取得平衡,在回退到系统调用进行等待之前,短暂地进行自旋。 核心使用 C++23 编写,并具有 C ABI,以便于语言绑定。 该库适用于构建需要高效跨语言数据交换的高吞吐量、多语言系统开发者。
相关文章

原文

This directory contains Architecture Decision Records (ADRs) for Tachyon. Each ADR documents a significant design choice, the context that motivated it, and its consequences.

New ADRs use the template at the bottom of this file. Once accepted, an ADR is never deleted, superseded decisions are marked Superseded and linked to the replacement.

# ADR-NNN: Title

---

**Status:** Proposed | Accepted | Superseded by ADR-NNN | Deprecated  
**Date:** YYYY-MM-DD

---

## Context

What is the problem? What forces are at play? What constraints exist?
Be concrete: include benchmarks, kernel versions, and API limitations where relevant.

## Decision

What did we decide? One clear sentence, then the reasoning.

## Consequences

**Positive**

-**Negative**

-**Neutral**

-
联系我们 contact @ memedata.com