因为我们的数据处理系统需要运转,所以数据在经过系统时必须有几个特征。阐明这些特征可能是有争议的。对一些人来说,它们似乎显而易见,而对另一些人来说,它们似乎无法被真正保证。这两种观点都没有说到重点。
阐明一组关于我们的数据应该总是正确的不变量的目的是,当它们不正确时,或者当系统不能保证它们是正确的情况下,它允许我们注意到。这使我们能够采取行动,在未来做得更好。请注意,可靠性的主题,甚至是数据管理系统的可靠性,是非常广泛的,在这里无法完全涵盖,更多细节请参见由Betsy Beyer等人编辑的 Site Reliability Engineering: How Google Runs Production Systems ( https://oreil.ly/ ZzIkN ;O'Reilly,2016)。
本节只涵盖确保数据不丢失(持久性)、所有数据副本都一样(一致性)以及随时间推移仔细跟踪数据变化(版本控制)的基本内容。我们还会覆盖如何考虑数据的读取速度(性能)以及数据不能被读取到的频率(可用性)。对这些概念的快速概述可以帮助我们专注于正确的领域。