惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

T
Tenable Blog
D
DataBreaches.Net
S
Secure Thoughts
B
Blog
S
Schneier on Security
Y
Y Combinator Blog
P
Proofpoint News Feed
C
Cybersecurity and Infrastructure Security Agency CISA
C
Cyber Attacks, Cyber Crime and Cyber Security
D
Darknet – Hacking Tools, Hacker News & Cyber Security
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
F
Full Disclosure
Engineering at Meta
Engineering at Meta
L
LangChain Blog
T
Threatpost
阮一峰的网络日志
阮一峰的网络日志
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
The Hacker News
The Hacker News
月光博客
月光博客
大猫的无限游戏
大猫的无限游戏
Cyberwarzone
Cyberwarzone
T
The Exploit Database - CXSecurity.com
雷峰网
雷峰网
博客园 - 司徒正美
Help Net Security
Help Net Security
www.infosecurity-magazine.com
www.infosecurity-magazine.com
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
Application and Cybersecurity Blog
Application and Cybersecurity Blog
P
Privacy International News Feed
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
V
Vulnerabilities – Threatpost
Cisco Talos Blog
Cisco Talos Blog
L
LINUX DO - 热门话题
酷 壳 – CoolShell
酷 壳 – CoolShell
T
Threat Research - Cisco Blogs
Recent Announcements
Recent Announcements
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
H
Heimdal Security Blog
Jina AI
Jina AI
C
Cisco Blogs
Attack and Defense Labs
Attack and Defense Labs
Microsoft Security Blog
Microsoft Security Blog
L
Lohrmann on Cybersecurity
aimingoo的专栏
aimingoo的专栏
D
Docker
I
Intezer
C
Check Point Blog
Cloudbric
Cloudbric
小众软件
小众软件
V2EX - 技术
V2EX - 技术

博客园 - 张善友

22年微软MVP连任:一个.NET技术人的社区长跑 OpenClaw.NET 本体工程实践(一):数字员工的「语义大脑」不是数据库 当工厂里坐满了"数字员工":AI原生时代,NPI到量产正在被重写 当 AI 对话里直接弹出业务界面:MCP Apps 正在改写 SaaS 的集成逻辑 C# vs Go:Agentic 时代的语言分层 G#:当 Go、Kotlin 与 Swift 的美学遇见 .NET 运行时 从 Bun 的 Rust 重写,看 C# 如何重建 AI 基础设施层 .NET 10 File-Based Apps:一个 .cs 文件搞定一切,C# 终于也能像 Python 一样写脚本了! 从Kaplan到Test-Time Compute:Scaling Law的真实演变与中文媒体的叙事偏差 AI 基础设施的"去 Python 化":Rust 与 C# 的两条替代路径 你的 AI Agent 会在服务器上"修仙"——OpenClaw.NET 长持久会话技术解读 C# GeneratedRegex:面向对象语言的"底层性能突围 当 AI 不再只是"说话":OpenClaw.NET 率先原生支持 MCP Apps Token IO 架构的设计游戏:大模型产品形态四年演进的本质 将 Rust 绑定到 .NET 10:Oxigraph 的 FFI 桥接实践 Claude Code Dynamic Workflows vs OpenClaw.NET MetaSKILL C# ?? 链式回退:编写优雅的多级兜底逻辑 MetaSKILL 与 SKILL:多视角深度综述 Microsoft Agent Framework 1.0 正式接棒,.NET AI 进入 Agent-Native 时代 从 OpenClaw.NET 的 /loop 实现,看 Loop Engineering 如何从概念走向工程实践 OpenClaw.NET 祭出 TokenJuice:Agent 时代的"Token 瘦身引擎",让 LLM 上下文不再膨胀 OpenClaw.NET 重大更新:Goal 机制登场,让 AI Agent 不再"半途而废" OpenClaw.NET MetaSKILLs 系统深度解析:AI Agent 正在学会「自己给自己写技能」 OpenClaw.NET 上线 MetaSkills :软件工程第一性原理的工业级实践 当 AgentGateway 遇上 OpenClaw.NET:企业级智能体基础设施的深度协同实战 C# 内存安全性的重大演进:重新定义 unsafe 关键字 Qt Bridges for C# 深度技术解析 OpenClaw.NET 兼容性目录指南(Compatibility Catalog) .NET 10 桌面 UI 框架的范式演进:Jalium.UI 与 MewUI 架构深度对比 架构融合:Activity Host 作为确定性编排与认知智能代理的桥梁 MewUI 项目:面向 NativeAOT 的超轻量级.NET GUI 架构、底层图形管线与性能演进 人工智能原生时代的全栈工程范式转移:DeepSeek 人才战略与下一代 Agent 基础设施深度分析 OpenClaw.NET 外部 CLI 预设系统:从零编写第三方 CLI 集成指南 曝华为"白嫖"开源团队技术方案事件——网友评论总结 NuGet下载量数据分析与.NET生态全景观察:从数据洞察技术演进 .NET 11 Preview 4 正式发布:Runtime-Async 全面启用、Process API 大幅扩展 OpenClaw.NET:给智能以形态 OpenClaw.NET 外部 CLI 连接器 (External CLI Connectors) 详细技术总结 Memgraph 与 Neo4j 图数据库对比及 .NET 生态适配分析 .NET生态系统中的A2A(Agent-to-Agent)协议支持与跨平台多智能体协同 OpenClaw.NET .NET 原生插件开发完全指南:以 Mempalace 插件为范例 为 openclaw.net 集成 ElBruno.MempalaceNet 记忆系统 Graphify-DotNet:AI 驱动的 .NET 代码知识图谱构建工具 C# 原生编码智能体运行时 SharpClawCode SharpIDE: 基于 .NET 与 Godot 引擎的跨平台开源 IDE
SonnetDB:.NET 生态下的高性能嵌入式时序数据库
张善友 · 2026-04-28 · via 博客园 - 张善友

一、项目概述

SonnetDB 是由 IoTSharp 团队(maikebing)开源发布的一款高性能时序数据库引擎,基于 C# / .NET 10 构建,采用 MIT 许可证。该项目专为 IoT 物联网、工业控制、运维监控和实时分析场景 设计,标志着 .NET 生态在时序数据领域的重大突破。

注意:GitHub 链接 [github.com/IoTSharp/SonnetDB](https://github.com/IoTSharp/SonnetDB) 当前已经可访问。 该项目已完成首个重要里程碑,具备生产级能力。

二、核心性能亮点

SonnetDB 在多项基准测试中展现出色的性能表现:

测试场景 SonnetDB SQLite InfluxDB TDengine REST
100万点单序列写入 545ms (180万点/秒) 1.5x 慢 9.6x 慢 80x 慢
10万行范围查询 6.71ms 6.6x 慢 61x 慢 -
16,667时间桶聚合 42ms - - -

测试环境:i9-13900HX / Windows 11 / .NET 10.0.6 / Docker WSL2

这些 benchmark 数据表明,SonnetDB 在写入吞吐量、查询延迟和聚合计算等核心场景中,相比主流时序数据库有数量级的性能优势

三、技术架构解析

3.1 嵌入式优先(Embedded-First)设计

SonnetDB 核心设计理念是进程内直接使用,无需独立部署服务进程,这与传统时序数据库(如 InfluxDB、TDengine)的部署模式形成鲜明对比:

┌─────────────────────────────────────────┐
│              Application Process         │
│  ┌─────────────────────────────────┐     │
│  │         SonnetDB Engine          │     │
│  │  ┌─────┐ ┌───────┐ ┌─────────┐  │     │
│  │  │ WAL │ │MemTable│ │Segments │  │     │
│  │  └─────┘ └───────┘ └─────────┘  │     │
│  └─────────────────────────────────┘     │
└─────────────────────────────────────────┘

嵌入式设计的优势在于:

  • 零部署成本:无需安装独立的数据库服务进程
  • 最低延迟:进程内数据访问,避免网络开销
  • 简化运维:单机或嵌入式场景下无需维护数据库集群
  • 资源隔离:每个应用实例拥有独立的数据存储

3.2 存储引擎四层架构

SonnetDB 采用类似 RocksDB 的经典存储架构,分为四层:

  1. 预写日志(WAL)

    • 追加写入模式,确保数据不丢失
    • CRC 校验保证数据完整性
    • 崩溃恢复机制保障 ACID 特性
  2. 内存表(MemTable)

    • 写入缓冲区,吸收高并发写入
    • 内存中完成排序(Skip List 或类似结构)
    • 达到阈值后刷盘
  3. 不可变段(Segment)

    • 只读数据文件(SSTable 风格)
    • 支持分层压缩
    • 索引加速范围查询
  4. 段压缩(Compaction)

    • Size-Tiered 策略
    • 自动合并小文件,减少碎片
    • 后台异步执行,不阻塞写入

3.3 数据生命周期管理

  • Tombstone 删除机制:逻辑删除标记,支持幂等删除操作
  • TTL 自动过期:自动清理过期数据,降低存储成本

四、.NET 技术特性

4.1 纯安全代码(Safe Code)

SonnetDB 坚持 100% 托管代码 设计理念,不使用任何 unsafe 代码块:

// 基于 Span<T> 和 ReadOnlySpan<T> 的零拷贝读取
public readonly struct DataPoint
{
    public long Timestamp { get; }
    public double Value { get; }
    
    public DataPoint(ReadOnlySpan<byte> buffer)
    {
        // 安全地解析二进制数据,无需 unsafe
        Timestamp = BinaryPrimitives.ReadInt64LittleEndian(buffer.Slice(0, 8));
        Value = BitConverter.ToDouble(buffer.Slice(8, 8));
    }
}

这种设计确保了:

  • 跨平台兼容:完美支持 .NET 6/7/8/10 的跨平台特性
  • GC 友好:避免野指针风险,内存安全由运行时保障
  • AOT 支持:支持 .NET Native AOT 编译

4.2 LINQ 原生查询

// 原生 LINQ 查询支持
var results = db.Query<Telemetry>()
    .Where(t => t.DeviceId == "sensor-001")
    .Where(t => t.Timestamp >= startTime && t.Timestamp <= endTime)
    .GroupBy(t => t.Timestamp.Date)
    .Select(g => new { Date = g.Key, Avg = g.Average(x => x.Value) })
    .ToList();

4.3 与 IoTSharp 生态深度集成

作为 IoTSharp 生态的核心组件,SonnetDB 与平台其他组件无缝协作:

IoTSharp Platform
┌──────────────────────────────────────┐
│  设备接入层 (MQTT/HTTP/CoAP)          │
├──────────────────────────────────────┤
│  规则链引擎 (Rule Chain)              │
├──────────────────────────────────────┤
│  时序存储层                          │
│  ┌────────────────────────────────┐  │
│  │       SonnetDB (推荐)          │  │
│  │  - 嵌入式部署                   │  │
│  │  - 高吞吐写入                   │  │
│  │  - 高效聚合查询                 │  │
│  └────────────────────────────────┘  │
│  (可选: InfluxDB/IoTDB/TDengine)    │
└──────────────────────────────────────┘

五、应用场景分析

5.1 边缘计算场景

在工业边缘网关中,SonnetDB 的嵌入式特性使其成为理想选择:

  • 无需额外部署数据库服务
  • 低资源占用(单实例仅需几 MB)
  • 断网后可本地缓存,离线数据不丢失

5.2 物联网设备端

智能设备可直接嵌入 SonnetDB:

// 设备端轻量级存储
var db = new SonnetDB("device.db");
db.Write(new Telemetry { 
    DeviceId = "sensor-001", 
    Timestamp = DateTimeOffset.UtcNow.ToUnixTimeMilliseconds(),
    Value = 23.5 
});

5.3 小型化应用

  • 桌面监控工具
  • 实验室数据采集
  • 单机版 SCADA 系统

六、横向对比

特性 SonnetDB InfluxDB TDengine TimescaleDB
部署模式 嵌入式 服务型 服务型 扩展型
.NET 原生
写入性能 180万点/秒 ~20万点/秒 ~100万点/秒 ~50万点/秒
许可证 MIT MIT AGPL Apache 2.0
生态集成 IoTSharp 通用 工业物联网 PostgreSQL 生态

七、总结与展望

SonnetDB 的出现填补了 .NET 生态缺乏高性能嵌入式时序数据库 的空白。凭借其:

  1. 卓越性能:180万点/秒写入,6.71ms 范围查询
  2. 纯.NET 实现:100% 托管代码,原生 LINQ 支持
  3. 嵌入式部署:零运维,开箱即用
  4. MIT 许可证:商业友好,无授权费用

SonnetDB 为 .NET 开发者提供了一个在 IoT 场景下替代 InfluxDB、Prometheus 的优秀选择。随着 IoTSharp 生态的持续完善,SonnetDB 有望成为 .NET 领域时序数据存储的事实标准。


参考来源

⚠️ 提示:SonnetDB 当前仓库可能处于早期开发或私有阶段,建议关注 IoTSharp 官方动态获取最新信息。