shihang-zhang

Results 5 comments of shihang-zhang

通过增大FDB_KV_CACHE_TABLE_SIZE定义的数值可以优化FlashDB的访问速度。 @armink 请问如果数据库里面定义的每个数据点都需要频繁访问,是否将FDB_KV_CACHE_TABLE_SIZE定义成数据点的个数可以达到最快的访问速度?谢谢!

What is "reverse order writing"? I try to google it but can't find anything relevant. We are targeting STM32WBxx and STM32Lx series MCUs. Thanks.

Thank you @armink. We are looking forward to a release with this feature. Thanks.

@armink,是的 我们的数据点个数是定值,数量比较少,不会动态增加或减少。所有的数据点加在一起不会超过一个sector的大小。但是每个数据点都会被频繁修改,这样的需求使我们想通过增加sector的个数来增加平衡磨损使用的空间,使每个数据点可以达到百万次的修改。现在如果使用默认FDB_GC_EMPTY_SEC_THRESHOLD值,可以让所有的sector都被使用到,但是GC的时间过长,达不到系统的要求。增大FDB_GC_EMPTY_SEC_THRESHOLD值,GC时间减少了,但是会有部分sector永远不会被用到,减小平衡磨损的空间,从而达不到数据点修改次数的需求。

@armink 就是GC时会集中擦除Flash的各个块,擦除各个块的时间累加起来就比较长,如果只擦除俩块三块sector,耗时就相对不明显。通过调大FDB_GC_EMPTY_SEC_THRESHOLD,可以达到控制GC擦除块的个数。我读了一下代码,如果在每次iteration过程中不从第一个块开始,应该是可以让后面的块有机会被使用到。是否可以在header里面添加块擦除的信息?或者开辟一些系统kv参数来保存这些信息?这样在程序运行的流程中通过这些信息做平衡磨损操作。