📰 来源: 博客园
SonnetDB 是由 IoTSharp 团队(maikebing)开源发布的一款高性能时序数据库引擎,基于 C# / .NET 10 构建,采用 MIT 许可证。该项目专为 IoT 物联网、工业控制、运维监控和实时分析场景 设计,标志着 .NET 生态在时序数据领域的重大突破。
注意:GitHub 链接 github.com/IoTSharp/SonnetDB 当前返回 404,仓库可能尚未公开或处于早期开发阶段。但从官方发布信息来看,该项目已完成首个重要里程碑,具备生产级能力。
SonnetDB 在多项基准测试中展现出色的性能表现:
测试环境: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 的经典存储架构,分为四层:
预写日志(WAL)
- 追加写入模式,确保数据不丢失
- CRC 校验保证数据完整性
- 崩溃恢复机制保障 ACID 特性
内存表(MemTable)
- 写入缓冲区,吸收高并发写入
- 内存中完成排序(Skip List 或类似结构)
- 达到阈值后刷盘
内存表(MemTable)
不可变段(Segment)
- 只读数据文件(SSTable 风格)
- 支持分层压缩
- 索引加速范围查询
不可变段(Segment)
段压缩(Compaction)
- Size-Tiered 策略
- 自动合并小文件,减少碎片
- 后台异步执行,不阻塞写入
段压缩(Compaction)
3.3 数据生命周期管理
四、.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));
}
}
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) │
├────────────────────────────
🔗 原文链接: 点击阅读原文
文章评论