FlashDB IoT 超轻量级嵌入式数据库开源项目

我要开发同款
白开水不加糖2020年05月28日
76阅读
开发技术C/C++
所属分类数据库服务器、数据库相关、物联网
授权协议Apache

作品详情

FlashDB 是一款超轻量级的嵌入式数据库,专注于提供嵌入式产品的数据存储方案。与传统的基于文件系统的数据库不同,FlashDB 结合了Flash的特性,具有较强的性能及可靠性。并在保证极低的资源占用前提下,尽可能延长Flash使用寿命。

FlashDB 提供两种数据库模式:

键值数据库 :是一种非关系数据库,它将数据存储为键值(Key-Value)对集合,其中键作为唯一标识符。KVDB操作简洁,可扩展性强。时序数据库 :时间序列数据库(TimeSeriesDatabase,简称TSDB),它将数据按照 时间顺序存储 。TSDB数据具有时间戳,数据存储量大,插入及查询性能高。

FlashDB提供了多样化的数据存储方案,不仅资源占用小,并且存储容量大,非常适合用于物联网产品。下面是主要应用场景:

键值数据库 :产品参数存储用户配置信息存储小文件管理时序数据库 :存储动态产生的结构化数据:如温湿度传感器采集的环境监测信息,智能手环实时记录的人体健康信息等记录运行日志:存储产品历史的运行日志,异常告警的记录等

主要特性

资源占用极低,内存占用几乎为 0 ;支持多分区,多实例 。数据量大时,可细化分区,降低检索时间;支持 磨损平衡 ,延长Flash寿命;支持 掉电保护 功能,可靠性高;支持字符串及blob两种KV类型,方便用户操作;支持KV 增量升级 ,产品固件升级后,KVDB内容也支持自动升级;支持修改每条TSDB记录的状态,方便用户进行管理。性能及资源占用

TSDB性能测试1(norflashW25Q64)

msh/>tslbenchAppend1250TSLin5seconds,average:250.00tsl/S,4.00ms/perQuerytotalspent2218(ms)for1251TSL,min1,max2,average:1.77ms/per

插入平均:4ms,查询平均:1.8ms

TSDB性能测试2(stm32f2onchipflash)

msh/>tslbenchAppend13421TSLin5seconds,average:2684.20tsl/S,0.37ms/perQuerytotalspent1475(ms)for13422TSL,min0,max1,average:0.11ms/per

插入平均:0.37ms,查询平均:0.12ms

资源占用(stm32f4IAR8.20)

Modulerocoderodatarwdata---------------------------fdb.o2762321fdb_kvdb.o45843561fdb_tsdb.o1160236fdb_utils.o4181024

上面是IAR的map文件信息,可见FlashDB的资源占用非常低。

声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论