0

在消息传递/分布式系统中,我们基于同步时钟执行检查点,我们在其中存储进程的状态。

现在我想知道,我们如何实际做到这一点?

说,我的系统处理请求/响应客户端服务器系统。在一个地方,我想做检查点,所以如果发生任何故障,我可以回滚。

在这种情况下,我需要存储哪些信息?我想知道实际的考虑。我浏览了几篇关于回滚恢复的文章,现在尝试实现 PoC。

谁在他们的系统中尝试过检查点机制,可以给我一些线索吗?

编辑

我试图对非确定性事件进行回滚(例如:接收对 Web 服务的请求) 我有两种方法,一种是基于检查点的,另一种是基于日志的。我选择了 Apache Axis2 平台作为我的 web 服务平台。它已经具有日志记录功能。因此,在这种情况下,日志记录会更容易..

那么,当我们基于检查点/基于日志时,我们需要存储整个数据吗?

  • 在这两种情况下存储数据有什么区别吗?

  • 在这种类型的恢复中,我们需要回滚客户端和服务器,客户端可以根据我们存储的信息进行回滚..这种情况下如何回滚服务器?那有必要吗?或者我对协议的理解不正确

4

1 回答 1

1

您需要保存的数据高度依赖于您的系统,因此在不了解更多信息的情况下,我们将无法具体告诉您在此处存储什么。

但是,一般来说,您需要存储对您的应用程序至关重要的任何数据。对于某些应用程序,您存储内存的全部内容并在此时重新加载。这有点沉重,但可能是必要的。一般来说,这是非常昂贵的,通常不需要。通常,您可以存储任何内部状态数据(可能是您连接到的客户端或这些连接的状态),当您在失败后重新启动应用程序时,您可以重新加载所有这些数据并重新建立任何连接到你的客户。

在另一个实现中,您可能不关心与客户端的连接,您只需要保存一些小的内部状态并让客户端重新连接自己并重新启动他们在建立连接时所做的任何事情。这完全取决于您愿意损失多少执行,以及您希望通过创建这些检查点引入多少开销。

于 2013-06-25T13:19:35.787 回答