fastdb四种访问模式简介

关于fastdb的四种不同的访问模式可以利用其自带的subsql工具来测试,测试命令为

subsql -access accesstype;

其中accesstype有四个可取值,分别为read-only   concurrent-update   concurrent-read  normal(即为dbAllAccess)

可以同时打开几个终端,用不同的accesstype访问同一个数据库来测试其区别。


如果只有一个进程访问数据库一般使用默认的dbAllAccess访问模式即可,上面的几种访问模式主要是在有多个进程同时访问一个数据库时才需要仔细区分的。

这里我介绍最主要的两点区别,如果所有进程都以noraml访问访问数据库时,那么只要有一个进程在执行插入或更新等写操作,那么其它进程的操作即使是读操作都会被阻塞,但是如果一个进程是在以concurrent-update方式在写,那么其他进程中的读操作都不会被阻塞,但是写操作会被阻塞(fastdb使用共享锁和排它锁,锁是针对数据库本身的,属于粗粒度的锁,任何进程在修改数据库时都会使用排它锁,即阻塞一切其它进程对该数据库的访问,包括读访问,所以说fastdb适合以读操作为主的数据库业务)。

如果进程A以concurrent-update方式修改了数据库,但是还没有提交(commit),这时进程B以read-only方式读出的数据为进程A修改过的但还没有提交的数据,即脏数据; 而进程C以concurrent-read方式读出的数据是进程A修改前的数据,因为在进程A提交事务之前进程C是看不到被修改的数据的。这就是read-only与concurrent-read的区别。


可以参考网页http://tower.iteye.com/blog/309325,那里介绍的详细一点。


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值