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的资源占用非常低。
评论