I'm trying to test the performance and stability of multi-process querying data(using cursor) in one BDB environment, reading only, no writing. One process queries the data of secondary database from BDB, nothing more to say, it's ok. But the query time is greatly increased when 10 processes doing the same thing.
I run an application to create the DB env with DB_INIT_MPOOL, DB_CREATE, and DB_SYSTEM_MEM(share memory). The database is using B-Tree.
Another query application is going to open the env with DB_INIT_CDB, DB_INIT_MPOOL, and DB_CREATE, open database with DB_CREATE, get records using the cursor. Then run a shell script to start 10 applications to query data in parallel.
It seems like the cursor uses lock, or something like that. Does any one have experience with multi-process accessing BDB? Is there anything wrong with using BDB API?