1

有人可以详细解释单服务器耐久性吗?我在浏览 MongoDB 概念时遇到了它。

4

2 回答 2

6

更具体地说,完整的单服务器持久性是 ACID 范例的一部分;耐久性(http://en.wikipedia.org/wiki/ACID#Durability)。

它要求如果服务器出现故障,在单个服务器环境中,它不会丢失数据或损坏。

由于延迟写入日志和磁盘的性质,MongoDB 仅部分遵守 ACID 持久性规则。即使这个窗口很小(如 60 毫秒),在单个服务器环境中仍有可能丢失几个操作,除非您要在应用程序中使用日志确认写入。

如果日志确认写入失败,您将能够重播日志,以确保唯一丢失的操作是那些在失败之前无法到达服务器的操作。

如果在没有日志确认写入的情况下发生故障,则可能会在 60 毫秒窗口内丢失所有操作,您只需决定这对您是否意味着什么;在单个服务器环境中,您的站点可能太小而无法关心。

于 2013-03-12T08:11:27.060 回答
1

这意味着一个单独的服务器(不是副本集的一部分)至少提供了一些保证以持久的方式保存您的数据。在引入此功能之前,您必须使用副本集来确保如果服务器出现故障,它不会丢失您的数据。

于 2013-03-12T06:15:15.987 回答