2019-12-31 19:13发布
liwei_jlu 发表于 2016-2-22 12:53 数据以 Key-Value 存储, 如果每分钟存一条,一年就是50万条,是不是就需要建立50万个Key(key1 - key50W ...
sunnydragon 发表于 2016-2-22 21:00 1、目前的模式是把所有的环境变量都有先在内存中进行缓存,完成增删改查后,用户需自行执行存储操作,将 ...
liwei_jlu 发表于 2016-2-22 22:02 感谢热心回复。仍然有如下疑问: 1 目前的模式是把所有的环境变量都有先在内存中进行缓存,完成增删改查 ...
sunnydragon 发表于 2016-2-24 11:00 1、关于第一个问题,由于 EasyFlash 目前主要定位是以参数存储为主,所以你的大数量记录需求由于资源占用 ...
最多设置5个标签!
1、目前的模式是把所有的环境变量都有先在内存中进行缓存,完成增删改查后,用户需自行执行存储操作,将所有的环境变量存储到 Flash 中。所以你说的“存储空间碎片”是不存在的。
2、Flash 的磨损平衡是有支持的,用户可以自行选择是否开启“写平衡”模式,默认不开启。
3、就像你最后说的,你也可以使用 EasyFlash 的 Log 功能来存储这些参数,只需定义日志的最大长度即可,超出的日志会自动覆盖早期的日志,所以无需定义“采集数据总数”环境变量,库本身提供了获取日志已存储容量的方法。
感谢热心回复。仍然有如下疑问:
1 目前的模式是把所有的环境变量都有先在内存中进行缓存,完成增删改查后
如果我有50w条数据,需建立50W个key-value,这些无法全部缓存到ram中,是否是需要一部分就缓存一部分?
删除中间第2K条数据,那么保存的操作应该是把2001条数据以后的flash擦除后全部重新写入吧?
3 easyflash是否支持多种log的同时存在?
比如 我定义一个flash的0-1MB为 A类型数据的log,有10W条记录; 2-8MB为B类型的操作log,有2W条记录。
A类型与B类型的操作频率、保存结构完全不同,需要分别保存。
1、关于第一个问题,由于 EasyFlash 目前主要定位是以参数存储为主,所以你的大数量记录需求由于资源占用问题,很难用 EasyFlash 的环境变量功能来实现。在今年的开发计划中,有新增轻量模式的计划,此时的环境变量一方面可以直接将其 Value 经过压缩,直接存储至 Flash 中,不需要转换为字符串格式,同时会取消内存缓存。
2、目前不支持分区日志,所有的日志只允许一种方式进行存储。不过如果想要支持,难度也不太大,需要将现有代码面向对象化即可,如果有兴趣,我可以协助你完成这个工作。
“将现有代码面向对象化”
是指定义不同的函数结构体,分别把API函数赋值给结构体内的函数指针吗? 这样是否还需要修改每个easyflash函数的flash占用空间地址范围?
如果不分区日志,就面临一个问题:所有日志共同使用一个分区,日志分区大小固定,写满后从头开始写、覆盖原有日志,可能某个操作频繁的日志会覆盖掉其他类型的日志。
一周热门 更多>