armink / FlashDB

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

请问fdb_kvdb_init支持不同进程对同一数据库多次初始化获取kvdb对象吗? #239

Closed weicao0 closed 10 months ago

weicao0 commented 10 months ago

1.进程1调用fdb_kvdb_init(&flag_kvdb, "flag", DC_SYS_MDL_FLAG_PATH, NULL, &kv_locker);完成数据库创建。 2.进程2调用db_kvdb_init(&flag_kvdb, "flag", DC_SYS_MDL_FLAG_PATH, NULL, NULL);获取新的flag_kvdb,调用fdb_kv_get获取value。 请教朱工,这个用法好像用不了,linux下报:Arithmetic exception。

armink commented 10 months ago

你的锁处理好应该也是行的,在init 时候想办法传入进程层面的锁

weicao0 commented 10 months ago

问题解决了,另一个进程初始化时也要设置FDB_KVDB_CTRL_SET_SEC_SIZE这些参数。 顺便问一下,为什么锁需要外部传入,数据库内部能实现吗?这样使用上能方便不少。

xingxingRealzyx commented 10 months ago

问题解决了,另一个进程初始化时也要设置FDB_KVDB_CTRL_SET_SEC_SIZE这些参数。 顺便问一下,为什么锁需要外部传入,数据库内部能实现吗?这样使用上能方便不少。

为了兼容不同的OS平台,只能外部传入了

weicao0 commented 10 months ago

好的,明白。这个问题可以关闭了。