DB对并发的支持
要让Berkeley DB数据支持并发,就要创建Berkeley DB的环境(environment)
环境类是 DbEnv。要支持并发,在初始化DbEnv时要用DB_INIT_CDB、DB_INIT_MPOOL
两个标致。
如下
DbEnv env;
env.open( "evn", DB_INIT_CDB|DB_INIT_MPOOL, 0 );
然后在创建数据库时,将环境传给数据库。如下
Db bdb( &env, 0 );
这样就可以支持并发了。
Berkeley DB并发的简单原则
Berkeley DB的并发遵循的是允许同时多个读操作,当只有一个写操作。
1 每个游标有一锁,非游标的读写用一锁
2 写操作等待所有的读锁解锁。
3 读操作不需要等待写锁解锁。