FlashDB IoT 正在参加 2021 年度 OSC 中国开源项目评选,请投票支持!
FlashDB IoT 在 2021 年度 OSC 中国开源项目评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
2021 年度 OSC 中国开源项目评选 正在火热进行中,快来投票支持你喜欢的开源项目!
2021 年度 OSC 中国开源项目评选 >>> 中场回顾
FlashDB IoT 获得 2021 年度 OSC 中国开源项目评选「最佳人气项目」 !
授权协议 Apache
开发语言 C/C++
操作系统 跨平台
软件类型 开源软件
开源组织
地区 国产
投 递 者 白开水不加糖
适用人群 未知
收录时间 2020-05-28

软件简介

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

FlashDB 提供两种数据库模式:

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

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

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

主要特性

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

性能及资源占用

TSDB 性能测试1 (nor flash W25Q64)

msh />tsl bench
Append 1250 TSL in 5 seconds, average: 250.00 tsl/S, 4.00 ms/per
Query total spent 2218 (ms) for 1251 TSL, min 1, max 2, average: 1.77 ms/per

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

TSDB 性能测试2 (stm32f2 onchip flash)

msh />tsl bench
Append 13421 TSL in 5 seconds, average: 2684.20 tsl/S, 0.37 ms/per
Query total spent 1475 (ms) for 13422 TSL, min 0, max 1, average: 0.11 ms/per

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

资源占用 (stm32f4 IAR8.20)

 Module                  ro code  ro data  rw data
    ------                  -------  -------  -------
    fdb.o                     276      232        1
    fdb_kvdb.o              4 584      356        1
    fdb_tsdb.o              1 160      236
    fdb_utils.o               418    1 024

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

展开阅读全文

代码

的 Gitee 指数为
超过 的项目

评论

点击加入讨论🔥(11) 发布并加入讨论🔥
发表了资讯
2024/10/06 22:59

FlashDB V2.1.1 稳定版发布,超轻量级嵌入式数据库

FlashDB 自 V2.0 后,大幅提升了数据库的性能(尤其是 GC)、稳定性和兼容性,新增了一些重要的功能,如:反向迭代器、数据库扩容、垃圾回收改进、完整性检查和64&128位写粒度支持,并修复了多个运行时错误和潜在的存储问题。 打磨了一年多时间后,今天正式发布了 V2.1.1 版本,该版本是个 BUG 修正版本,如有需要可以尽快升级。 自 V2.0 开始的更新日志如下: 1. KVDB(键值数据库): 性能优化与错误修复: 修复运行时错误、警...

4
0
发表了资讯
2020/10/08 21:52

FlashDB V1.0.0 正式版发布,轻量级嵌入式数据库

FlashDB beta 测试版目前已发布数月,在这段时间里, 陆陆续续收到大家的很多意见反馈,有些甚至也已经用在项目上了 。 结合大家的反馈,相关的问题均已修正,并对文档、测试等方面做了挺多完善。 今天正式版终于可以与大家见面了,一起来看下正式版的大致更新内容: 新增在线文档中心 内容丰富,分为:入门、示例及开发三大部分,上手方便,详见: http://armink.gitee.io/flashdb/#/zh-cn/ 新增自动化测试 新增基于 Travis C...

2
19
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
发表了博客
{{o.pubDate | formatDate}}

{{formatAllHtml(o.title)}}

{{parseInt(o.replyCount) | bigNumberTransform}}
{{parseInt(o.viewCount) | bigNumberTransform}}
没有更多内容
暂无内容
发表了问答
{{o.pubDate | formatDate}}

{{formatAllHtml(o.title)}}

{{parseInt(o.replyCount) | bigNumberTransform}}
{{parseInt(o.viewCount) | bigNumberTransform}}
没有更多内容
暂无内容
暂无内容
11 评论
163 收藏
分享
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部