Chinaunix首页 | 论坛 | 博客
  • 博客访问: 428984
  • 博文数量: 96
  • 博客积分: 1110
  • 博客等级: 准尉
  • 技术积分: 662
  • 用 户 组: 普通用户
  • 注册时间: 2011-03-14 18:47
个人简介

拔地气不挠,参天节何劲。 平生观物心,独对秋篁影。

文章分类

全部博文(96)

文章存档

2017年(2)

2016年(7)

2015年(9)

2014年(3)

2013年(10)

2012年(42)

2011年(23)

分类: 数据库开发技术

2016-06-27 18:08:25

在分布式存储系统中为了保证数据的可用性可采用master-slave Replication机制(其中master只提供写服务,slave只提供读服务),一般有三种方式:
 
1.异步
  master有一个线程不断的扫描操作日志将最新的日志发送给slave,slave有线程接受master发送来的更新操作并回放。接受和回放操作一般由两个不同的线程。如果slave宕机则重新向master申请。 
 
2.强同步
  每个更新操作都先写入slave然后才写入master才能成功返回。传统的强同步会遇到一个问题,即如有一个slave宕机则必须停止写服务,所以该方法只能满足数据可靠性,不能满足可用性。
  改进方法为,在master中维护一张slave机器表,每个写操作都要同步到slave列表中的所有机器。如发现一台slave宕机则将该slave从这个列表中删除。
 
3.半同步
  设有N台slave,只要数据写入其中的任意K(1=1,所以总有至少一个跟master保持数据同步。当master宕机时,可以采用分布式选举算法paxos再slave中选取跟master数据同步的slave充当master继续提写服务。(Berkerly DB实现了这种同步方式)

 

阅读(1316) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~