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

推荐订阅源

cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
Schneier on Security
Schneier on Security
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
Attack and Defense Labs
Attack and Defense Labs
H
Hacker News: Front Page
Google DeepMind News
Google DeepMind News
雷峰网
雷峰网
C
CXSECURITY Database RSS Feed - CXSecurity.com
Cisco Talos Blog
Cisco Talos Blog
T
Tenable Blog
G
Google Developers Blog
A
About on SuperTechFans
The Cloudflare Blog
S
Securelist
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
C
Cisco Blogs
H
Hackread – Cybersecurity News, Data Breaches, AI and More
aimingoo的专栏
aimingoo的专栏
云风的 BLOG
云风的 BLOG
Forbes - Security
Forbes - Security
腾讯CDC
Application and Cybersecurity Blog
Application and Cybersecurity Blog
V
Vulnerabilities – Threatpost
IT之家
IT之家
博客园_首页
P
Proofpoint News Feed
P
Privacy & Cybersecurity Law Blog
C
Cyber Attacks, Cyber Crime and Cyber Security
Project Zero
Project Zero
月光博客
月光博客
NISL@THU
NISL@THU
爱范儿
爱范儿
S
Secure Thoughts
K
Kaspersky official blog
Security Latest
Security Latest
T
Tailwind CSS Blog
博客园 - Franky
D
Darknet – Hacking Tools, Hacker News & Cyber Security
TaoSecurity Blog
TaoSecurity Blog
The GitHub Blog
The GitHub Blog
Microsoft Azure Blog
Microsoft Azure Blog
B
Blog RSS Feed
S
SegmentFault 最新的问题
H
Help Net Security
T
Tor Project blog
L
LINUX DO - 热门话题
S
Security @ Cisco Blogs
N
News and Events Feed by Topic
O
OpenAI News
S
Schneier on Security

博客园 - 张善友

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) 详细技术总结 OpenHarmony.Avalonia 归档事件对中国自主软件生态的影响--信任的坍塌与生态的异化 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 SharpDbg 与 netcoredbg 深度对比分析 .NET 调试器 netcoredbg 跨平台及其 LoongArch 架构支持进展 .NET生态下Native AOT兼容的Cron任务调度框架 Avalonia UI 12.0.0 正式发布:架构演进和性能飞跃 - 张善友 DotNetPy:现代.NET 与 Python 互操作 实战指南 微软发布的《生成式人工智能初学者.NET 10第二版》课程 Avalonia UI 12.0.0-RC1正式发布 自动导引车(AGV)与自主移动机器人(AMR)控制系统的 C# 开源封装库 AgentEval:面向 .NET 生态的企业级 AI 智能体评估框架 .NET 10 打造 OpenClaw Windows Node Microsoft Agent Framework:基于 DelegatingAIAgent 与 ChatClientAgent 的核心架构和协同范式 基于 Kubernetes 与多语言 SDK 的 OpenSandbox AI 代理沙箱编排 MCP C# SDK v1.0 正式发布 .NET 11 Preview 2 架构演进、技术深度解析 基于NativeAOT的 OpenClaw.NET 深度刨析 BMAD方法 v6 与 GitHub Copilot 在应用开发中的协同 C# 驱动的开源无人机机载飞控算法 《上海市卫生健康”信息技术应用创新”白皮书》C#/.NET “A组件”认定事件始末与最终结果 .NET 11 预览版 1 中的新兴架构演进:RISC-V 与 LoongArch 支持的深度技术解析与生态展望 .NET 11 预览版1:CoreCLR 在 WebAssembly 上的全面集成与性能突破 .NET 11与智能体人工智能的范式转移:架构演进、开发者生态与安全解析 Lucia 智能家居自治系统:基于多智能体编排与边缘计算融合 Model Context Protocol (MCP) C# SDK v0.9.0-preview.1 发布
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 官方动态获取最新信息。