错误恢复

高可靠性的系统往往伴随着系统冗余,必然带来了造价提高和系统复杂性提高,但在航
空设备、航空管制或者战场指挥这样要求高的但数据相对比较简单的系统,使用恰当的系统
冗余是合适的,但对于大量的长时间数据处理这样的问题,就需要作一些限制。
1,表决
对于复杂的数据处理计算,例如快速傅里叶变换或者卷积、相关函数的计算、航路计算、
及威胁计算以及应对策略计算等等,如果处理上出现了问题(错误),往往会带来灾难性的
后果,在这种情况下,可以使用表决方案。它的特点是运行在冗余处理器上的每个过程都具
有相同的输入,表决器采取某种策略取出数据,常用的是多数法,或者首选法。
极端情况是冗余构件是由不同小组开发,并且是在不同的平台上运行,当然这样开发和
维护是很昂贵的,仅用在要求非常高的环境中,比如作战指挥和分析系统、飞行器的控制等。
2,主动冗余(热重启)
所有的构件都以并行方式对事件做出响应,但只有第一个构件的响应被使用,而其他的
响应被丢弃。比如在数据库系统中,这种情况使切换时间只有几毫秒,但资源消耗却成倍增
加。
3,被动冗余(暖重启/双冗余/三冗余)
由一个主要构件对事件做出响应,并通知其它备用构件进行状态更新,一旦错误发生,
将自动切换到备用构件上,在此之前,系统必须保证备用状态是新的。切换的时机可以由备
用构件决定,也可以由其它构件决定。该解决方案依赖于可靠的接管,有时候周期性切换可
以提高可靠性。
例如,作为一个典型的例子,在准备产品化应用程序的时候,如何知道数据库是不是能
够经受众多用户对应用程序反复的使用呢?如果数据库服务器关机,会出现什么情况呢?如
果数据库服务器需要快速重启,会出现什么情况呢?
首先,在停止和重启服务器的情况下,我们可以清除连接池并重新建立它。但如何才能
保证结果和服务器关闭之前完全相同呢?这就要用到容错恢复技术了。
请看下面的场景:
使用三台数据库服务器,“主服务器”、“镜像服务器”、“观察者服务器”,使用数
据库镜像的时候,客户只和主服务器联系,镜像服务器处于数据恢复状态(不能进行任何访
问),当向主服务器提交一个事务的时候,也会把这个事物发给镜像服务器。
观察者服务器只是观看主服务器和镜像服务器是不是正在正常工作。
在主服务器关机的时候,观察者自动把镜像服务器切换为主服务器,见下面两张图
注意,当发现主服务器有问题的时候,用户方需要自动清除连接池,并转而使用备用服
务器。
4,备件
备件是在计算机系统中配置了用于更换不同故障的构件。在出现故障的时候,必须转入
适当的软件配置,然后重启计算机。这个方法必须记录持久设备的状态变化,以使接入的设
备能以适当的状态工作。有一些重新引入模块的修复解决方案,包括 shadow 操作、状态再
同步以及回滚。
5,shadow 操作
以前出现故障的构件,可以短时间内以“shadow 模式”运行,以确保在恢复该构件前,
模仿工作构件的行为。
6,状态再同步
不论是主动还是被动的冗余解决方案,都要求所恢复的构件在重新提供服务前更新其状
态更新的方法取决于可承受的停机时间、更新规模以及更新所要求的消息数量。如果可能的
话,最好用一条消息包含它的状态。
7,检查点/回滚
检查点就是记录已创建的状态,一般可以定期进行,也可以对某种消息进行响应。如果
故障是以不同寻常的方式发生的,可以用上一个检查点拍了快照以后所发生的事务日志来恢
复系统。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值