amobbs.com 阿莫电子技术论坛

标题: 【开源】FlashDB V1.1 版本发布,新增文件存储模式 [打印本页]

作者: sunnydragon    时间: 2021-10-7 23:12
标题: 【开源】FlashDB V1.1 版本发布,新增文件存储模式
本帖最后由 sunnydragon 于 2022-1-25 20:08 编辑

FlashDB 是什么?

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

更多详见文档中心:http://armink.gitee.io/flashdb/#/zh-cn/

新版介绍

从去年 10 月发布 V1.0 版本至今正好一年的时间,FlashDB 已经被应用于工业、医疗、穿戴等各种嵌入式设备中,非常适合设备参数存储,操作日志记录,传感器数据保存,等众多存储场景。

V1.1 是一个功能完善的版本,先来一起看下更新日志:

新版解读

V1.1 版本最大的更新就是新增了文件存储模式。相比于 V1.0 默认的 FAL 存储模式,文件模式更加的灵活。使用 FAL 时,需要提前分配好分区表,这对于后期修改不太方便。
而有了文件模式后,数据库可以保存至任意位置,不想用也可以移除,更加接近于常见的数据库模式。简单对比下优缺点


FAL 模式
文件模式
性能
更快,详见 首页测试数据
稍慢,低于 FAL 模式 10 倍以上
灵活性
较差,需要提前分配分区表
较好,数据库可以在任意位置存储
资源占用
较小,无其他依赖
较高,需要文件系统的支持,并且依赖 Libc/POSIX 文件系统接口

所以,大家可以结合自己的需要,在数据库初始化阶段,
选择性决定让数据库存储在文件系统或者是 FAL 分区上。

另外,V1.1 的更新也带来的更多平台的支持。ESP8266 虽然也有类似的 NVS 机制,但依然有热心网友将 FlashDB 适配上去,同时也可以用于 ESP32 平台。

除此之外,新增的 Linux 平台,也让 Linux 平台有了更加易于集成的超轻量级数据库的选择。

V2.0 展望

未来 FlashDB 会始终专注在高性能与易用性两个方向上。

KVDB 初始化及 GC 速度会重点,TSDB 也会支持缓存机制。从 API 上,TSDB 会支持逆序迭代器,统一 KVDB 与 TSDB 迭代器 API ,让用户使用更加便捷。


也欢迎大家提出更多想法和建议……


下载






作者: fbwcpu    时间: 2021-10-7 23:26
又升级了。。
作者: tomzbj    时间: 2021-10-7 23:27
zan
请教一下, 单条记录最大支持到多大?
作者: szyusong@163    时间: 2021-10-7 23:51
多谢分享!
作者: yanyanyan168    时间: 2021-10-8 00:01
真牛!多谢分享!
作者: tiger_wu    时间: 2021-10-8 09:43
赞!感谢开源!谢谢楼主!
作者: fcmer2016    时间: 2021-10-8 15:01
义无反顾的支持,好用。
作者: foxpro2005    时间: 2021-10-8 18:23
本帖最后由 foxpro2005 于 2021-10-8 18:24 编辑

强烈支持,感谢大神!
另外,老的EasyFlash分支还会继续更新维护吗?

作者: sunnydragon    时间: 2021-10-9 08:51
foxpro2005 发表于 2021-10-8 18:23
强烈支持,感谢大神!
另外,老的EasyFlash分支还会继续更新维护吗?

会的,EasyFlash 主要是 V4 及 V3 版本
作者: sunnydragon    时间: 2021-10-10 11:24
tomzbj 发表于 2021-10-7 23:27
zan
请教一下, 单条记录最大支持到多大?

最大支持取决于设置的 block_size ,一般最大几 KB 没问题
作者: 登云钓月    时间: 2021-10-11 11:23
本帖最后由 登云钓月 于 2021-10-11 11:34 编辑

感谢楼主开源。建议FDB_WRITE_GRAN增加64bit适配,目前使用的STM32G系列内部Flash只支持64bit写入了。
--看到支持64bit写入了(可以配置write_gran)。
作者: sunnydragon    时间: 2021-10-16 13:46
登云钓月 发表于 2021-10-11 11:23
感谢楼主开源。建议FDB_WRITE_GRAN增加64bit适配,目前使用的STM32G系列内部Flash只支持64bit写入了。
--看 ...

64 bit 原本是支持的,但是很多写粒度是 64bit 的 Flash 不支持逆序写入动作,所以就临时删除了该功能

你可以先验证一下 G4 支不支持逆序写入
作者: cdyy777    时间: 2022-1-10 16:53
支持FLASH分区,是可以同时用MCU内部FLASH,又能用SPI FLASH做存储吗?
作者: sunnydragon    时间: 2022-1-16 11:42
cdyy777 发表于 2022-1-10 16:53
支持FLASH分区,是可以同时用MCU内部FLASH,又能用SPI FLASH做存储吗?

对的,底层是 Flash 的抽象层
作者: cdyy777    时间: 2022-1-17 23:24
sunnydragon 发表于 2022-1-16 11:42
对的,底层是 Flash 的抽象层

好的。非常感谢。
作者: 我是一个大白菜    时间: 2022-1-18 08:40
感谢分享,非常好用
作者: 三年模拟    时间: 2022-6-24 16:46
楼主您好,现在我一个项目用了flashDB,现在发现一个问题,我先遍历了一个分区,遍历结果存在数组里。然后根据遍历结果把这个分区所有key的value设为0,现在发现使用fdb_kv_set_blob后,会出现[FlashDB][kv][env] Error: The KV (@0x00000037) CRC32 check failed,实际fdb_kv_set_blob返回值都是FDB_NO_ERR,请问报crc32校验错误有什么严重后果吗,是什么原因导致这个错误出现的?我的整个项目没有用任何中断,flash是w25q128。
作者: sunnydragon    时间: 2022-7-2 21:22
三年模拟 发表于 2022-6-24 16:46
楼主您好,现在我一个项目用了flashDB,现在发现一个问题,我先遍历了一个分区,遍历结果存在数组里。然后 ...
(引用自17楼)

先确保 Flash 驱动没问题吧
作者: 三年模拟    时间: 2022-7-5 09:17
sunnydragon 发表于 2022-7-2 21:22
先确保 Flash 驱动没问题吧
(引用自18楼)

已解决,详见github。




欢迎光临 amobbs.com 阿莫电子技术论坛 (https://www.amobbs.com/) Powered by Discuz! X3.4