单服务器耐用性意味着什么?

问题描述:

有人可以详细解释单服务器耐久性吗?我在浏览MongoDB概念时遇到了这个问题。单服务器耐用性意味着什么?

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

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

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

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

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

+0

我不知道日记确认选项的存在。很高兴知道。感谢:) – Srik 2013-03-12 09:43:27

+0

因此,有了这个SSD功能,它是否像复制数据自动发生,以保持耐用性? – Srik 2013-03-12 09:52:12

+0

@SrikarA该日志更像是一个日志。它包含一系列针对数据库的操作,并会理解某些操作未完成等,并且能够将数据库重置为一致状态(http://en.wikipedia.org/wiki/Journaling_file_system)。它不像交易那么好,但它仍然很好。只有添加副本集时才会发生数据复制。 – Sammaye 2013-03-12 09:55:53

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