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


FlashDB 自 V2.0 后,大幅提升了数据库的性能(尤其是 GC)、稳定性和兼容性,新增了一些重要的功能,如:反向迭代器、数据库扩容、垃圾回收改进、完整性检查和64&128位写粒度支持,并修复了多个运行时错误和潜在的存储问题。

打磨了一年多时间后,今天正式发布了 V2.1.1 版本,该版本是个 BUG 修正版本,如有需要可以尽快升级。

自 V2.0 开始的更新日志如下:

1. KVDB(键值数据库):

  • 性能优化与错误修复
    • 修复运行时错误、警告和首次运行时的锁定问题
    • 修复空指针解引用问题
    • 改进缓存清理机制:在设置键值对为默认值之前清除缓存
    • 改善垃圾回收(GC)算法,解决某些情况下的收集失败问题
    • 支持128位写粒度、缓存性能优化,垃圾回收速度提升2倍
    • 新增KVDB完整性检查API及数据库扩展功能
    • 优化缓存算法:首次找到键时的缓存处理改进
    • 添加部分GC功能以减少GC时间
    • 修复写入失败问题和其他已知问题

2. TSDB(时间序列数据库):

  • 错误修复
    • 修复读取最后一个有效时间序列日志(TSL)的问题
    • 修复在电源异常断电时的闪存覆盖问题
  • 功能增强
    • 添加反向迭代器功能
    • 改进TSDB测试用例

3. 通用改进:

  • 错误修复
    • 修复错误代码返回不正确的问题
    • 关闭文件流指针时使用fclose()进行处理
  • 功能增强
    • Zephyr系统:添加外部模块支持
    • 改进对齐处理(FDB_ALIGN,FDB_ALIGN_DOWN)
  • 闪存支持
    • 支持擦除后为0的闪存,如TC397芯片上的内部闪存
  • 自动化与测试改进
    • 改进CI自动化测试、KVDB和TSDB的测试用例
    • 优化扇区迭代功能,迭代顺序从最旧到最新

4. Demo支持更新

  • ESP32支持
    • 添加ESP32上的SPI闪存演示,支持IDF 5.x构建环境
  • STM32支持
    • 添加STM32L4内部芯片的FAL闪存驱动

 

FlashDB 简介

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

主要特性

  • 资源占用极低,内存占用几乎为 0 ;

  • 支持 多分区,多实例 。数据量大时,可细化分区,降低检索时间;

  • 支持 磨损平衡 ,延长 Flash 寿命;

  • 支持 掉电保护 功能,可靠性高;

  • 支持 字符串及 blob 两种 KV 类型,方便用户操作;

  • 支持 KV 增量升级 ,产品固件升级后, KVDB 内容也支持自动升级;

  • 支持 修改每条 TSDB 记录的状态,方便用户进行管理;


相關推薦

2023-05-09

Emscripten 的通用 WebAssembly 运行时,提供基于 WebAssembly 的超轻量级容器,专注于支持在任何平台上运行 WASM 代码:从桌面端到云端、以及 IoT 设备,并且能嵌入在任何编程语言中。 Wasmer 凭借其多样化的支持和专注于从通用桌

2023-06-28

Emscripten 的通用 WebAssembly 运行时,提供基于 WebAssembly 的超轻量级容器,专注于支持在任何平台上运行 WASM 代码:从桌面端到云端、以及 IoT 设备,并且能嵌入在任何编程语言中。 Wasmer 凭借其多样化的支持和专注于从通用桌

2022-10-11

布 NestOS 构建工具 nestos-assemble;支持 OpenStack Yoga 版本。 嵌入式场景 集成实时内核,提供 3微秒的硬实时能力。分布式软总线能力具备高安全、大带宽的数据传输和实时控制的特性,可以实现欧拉与鸿蒙的互联互通,并探索在地

2024-02-28

扩展功能:可以在 Kubernetes 之外的任何地方部署 Linkerd 的超轻量级 Rust 微代理,并将它们连接到运行在 Kubernetes 集群上的 Linkerd 控制平面。这使得 Linkerd 能够处理非 Kubernetes 工作负载,将所有 TCP 通信与这些工作负载之间的通信

2023-01-14

支持 MySQL、Oracle、SQLServer、PostgreSQL、达梦 8 等主流的数据库 支持第三方 Java 项目包名修改,修改包名变得简单快速 支持批量导入表、批量生成代码以及同步表结构等功能 Git 仓库 Gitee 仓库:https://gitee.com/makunet/maku-gen

2022-08-03

KDE Plasma 作为桌面环境。Q4OS 提供了简单的附件,并提供稳定的应用程序编程接口以支持复杂的第三方应用软件,例如谷歌 Chrome、VirtualBox 以及其他开发工具等。该系统对于虚拟云环境而言很有用,这得益于其甚低的硬件要求。

2022-11-23

新的操作系统的行业,以及多种计算环境,如边缘计算、嵌入式、物联网部署等。 openSUSE Leap Micro 5.3 包含用于 Cockpit 的新 SELinux 模块,它为用户提供基本功能来解决配置问题,并使 NetworkManager 成为默认网络

2022-10-31

使用方式。 最后2.1.2修复了许多旧版本的问题,提高了稳定性。具体变更内容可参考变更日志: ## Enhancement [#6112] Unified derby-data variables. [#7929] Reduce nacos-client jar size by minijar. [#8941] Support Fuzzy Query in Authority Control--for api change. [#

2023-06-28

R、ClickHouse、OceanBase 、PolarDB-X 、IBM Db2 等多种不同类型的数据库。通过 CloudDM 丰富的数据源支持可以避免在多个专业工具之间切换,从而提高工作效率 它是本地化的应用程序,没有后台进程。和 DataGrip、Navicat 一样在

2023-08-06

实现的类 Docsify 工具,拥有一些优秀的特性 OWLS 是一款超轻量的wiki工具,其安装、配置、启动 仅需要数十KB的资源 OWLS 支持自定义模板与多种markdown引擎,并且不产生任何静态的 .html 3. 物联网应用 洛书在物联网应用已

2023-11-03

单路径 chore: 更新 seata 的配置中心地址 chore: 更新商品数据库表(结构未变,数据改变,无需更新) refactor: 微信小程序授权登录 OAuth2 代码重构优化 chore(pom.xml): 升级 SpringBoot 版本至 2.7.11 docs: SQL 添加 use 语句 fix: laboratory

2022-06-13

Emscripten 的通用 WebAssembly 运行时,提供基于 WebAssembly 的超轻量级容器,专注于支持在任何平台上运行 WASM 代码:从桌面端到云端、以及 IoT 设备,并且能嵌入在任何编程语言中。 Wasmer 凭借其多样化的支持和专注于从通用桌面应

2023-09-20

项目要国产化,应该用 Solon 或者 Solon Cloud(有案例) 嵌入式设备,内存有限,算力差,可以用 Solon 或者 Solon Native(有案例) 客户的希望你内存更少,可以用 Solon (有案例) 别的框架用腻了,可以用 Solon (有案例) 有

2022-08-02

Emscripten 的通用 WebAssembly 运行时,提供基于 WebAssembly 的超轻量级容器,专注于支持在任何平台上运行 WASM 代码:从桌面端到云端、以及 IoT 设备,并且能嵌入在任何编程语言中。 Wasmer 凭借其多样化的支持和专注于从通用桌