armink / FlashDB

An ultra-lightweight database that supports key-value and time series data | 一款支持 KV 数据和时序数据的超轻量级数据库
Apache License 2.0
1.83k stars 421 forks source link

多个时序数据库如何初始化? #84

Open leven99 opened 3 years ago

leven99 commented 3 years ago

#define NOR_FLASH_DEV_NAME "norflash0" #define NOR_FLASH_PART0_NAME "faultrecord" #define NOR_FLASH_PART1_NAME "chargerecord" #define NOR_FLASH_PART2_NAME "reserve" #define NOR_FLASH_PART3_NAME "download"

#define FAL_FLASH_DEV_TABLE \ { \ &nor_flash0, \ }

#define FAL_PART_TABLE \ { \ {FAL_PART_MAGIC_WORD, NOR_FLASH_PART0_NAME, NOR_FLASH_DEV_NAME, 0, 1024*1024*2, 0}, \ {FAL_PART_MAGIC_WORD, NOR_FLASH_PART1_NAME, NOR_FLASH_DEV_NAME, 1024*1024*2*1, 1024*1024*2, 0}, \ {FAL_PART_MAGIC_WORD, NOR_FLASH_PART2_NAME, NOR_FLASH_DEV_NAME, 1024*1024*2*2, 1024*1024*2, 0}, \ {FAL_PART_MAGIC_WORD, NOR_FLASH_PART3_NAME, NOR_FLASH_DEV_NAME, 1024*1024*2*3, 1024*1024*2, 0}, \ }

初始化两种不同数据结构的时序数据库时如何操作呢?

是否可以以如下方式连续初始化两个数据库:

fdb_tsdb_init(&s_faultdb, "faultdb", NOR_FLASH_PART0_NAME, get_time, 128, NULL); fdb_tsdb_init(&s_chargedb, "chargedb", NOR_FLASH_PART1_NAME, get_time, 512, NULL);

如此初始化日志如下: [FlashDB][tsl][faultdb] Sector (0x00000000) header info is incorrect. [FlashDB][tsl][faultdb] All sector format finished. [FlashDB][tsl][faultdb] TSDB (faultdb) oldest sectors is 0x00000000, current using sector is 0x00000000. [FlashDB][tsl][chargedb] Sector (0x00000000) header info is incorrect. [FlashDB][tsl][chargedb] All sector format finished. [FlashDB][tsl][chargedb] TSDB (chargedb) oldest sectors is 0x00000000, current using sector is 0x00000000.

armink commented 3 years ago

用法没问题的

sudashannon commented 2 years ago

用法没问题的

我看了下fdb_kvdb_init这个接口设计,没看到有支持可重入的啊,里面对fal初始化两次岂不是会有问题?