分布式数据库的并发控制方法
2012-05-22 15:05
239 查看
一,分布式数据库并发控制方法分类
1.基于特定副本的方法:
主副本的方法:每个数据对象设置唯一的一个主副本,一般设置在经常发生封锁的场地,主副本所在的场地为该数据对象的主场地,不同数据对象拥有不同的主场地。对数据对象的加锁由主副本所在的场地的LM(锁管理器)管理。优点:降低了通信;缺点:也降低了并发程度。主场地的方法:保存副本的某个场地为主场地,所有的封锁请求都由主场地的LM来负责管理。所有封锁请求传到主场地,由主场地来决定是否请求成功或者等待。优点:较高的数据一致性。缺点:所有的封锁请求都在主场地,容易造成系统瓶颈。主场地故障会使整个系统瘫痪。
后背场地的主场地方法:解决主场地故障问题,设定另一场地为主场地的备用场地。
2.基于投票的方法:
读写全方法:读—写全法指当事务对某一数据项加锁时,若为读锁,只需封锁其中一个副本,即只需向选中的副本所在场地发送锁申请报文;若为写锁,必须封锁所有副本,即需要向所有存有该数据项的副本所在场地发送锁申请报文。因此,在写锁情况下通信费用较大,为避免该不足,提出了多数法。多数副本法:多数副本法是指在对数据项进行加锁时,必须封锁数据项一半以上的副本。无论读锁还是写锁申请,都要向n个副本中的至少(n+1)/2个副本所在场地发加锁请求。申请成功后,若为读锁,读取一个副本的值;若为写锁,需向n个副本发送新值。
相关文章推荐
- 并发控制的方法
- node 使用 async 控制并发的方法
- 操作系统实验参考以上示例程序中建立并发进程的方法,编写一个多进程并发执行程序。父进 程首先创建一个执行ls命令的子进程然后再创建一个执行ps命令的子进程,并控制 ps 命令总在 ls 命令之前执行。
- 使用Semaphore控制某个方法允许并发访问的线程的个数
- 如何控制某个方法允许并发访问线程的个数?
- Apache限制IP并发数和流量控制的方法
- Apache限制IP并发数和流量控制的方法
- SE高阶(4):多线程(并发)—①创建启动方式和控制线程方法
- 一例并发度控制方法
- 采用JDK并发包提供的Lock, Condition等类的相关方法控制多线程.
- 使用async、enterproxy控制并发数量的方法详解
- 如何控制某个方法允许并发访问线程的个数?
- NHibernate实现并发控制的方法(转)
- JAVA多线程并发变量控制方法之volatile修饰工作原理
- 分布式数据库【3、关于持久消息的应用背景、及2PC的关系、并发控制】
- 多线程线程池控制一个方法的并发量 限制只有5个线程执行任务
- 静态工具方法的并发控制
- 分布式数据库并发控制可串行化习题求解
- golang实现并发数控制的方法
- 数据库开发(12)并发控制