数据一致性

一致 的数据是跨网络相同的数据。 换句话说,如果数据是一致的,则服务器上的数据以及所有客户端都会同步。 提供数据一致性的软件系统是修订控制系统(RCS)。 此类系统通常相当简单,一次只允许一个用户修改指定的文件。 其他人可以读取该文件,但无法更改该文件。

据说可以更改文件的用户已签出文件。然后,用户签入修改的文件,以便其他人可能会看到更改。 只有在用户重新签入文件后,其他用户才能签出该文件。

RCS 需要用户主动干预才能以有用的方式运行。 跨网络运行的文件系统应自动处理问题。

在一个客户端上一次访问一个文件时,提供一致的数据的本地缓存相当简单。 但是,在大多数情况下,一台或多台计算机上的许多不同线程可能读取同一文件。 这种情况仍然相当简单。 由于文件中的数据是静态的,因此每个客户端计算机可以有自己的本地副本,对数据一致性没有任何影响。

更常见的情况是一个线程修改文件,以及读取该文件的许多其他线程。 写入作发生的那一刻,该文件的所有本地缓存都已过时。 服务器必须通知每个客户端放弃其缓存。 必须跨网络执行文件的任何后续读取作。

在另一种常见情况下,一个或多个网络客户端上的多个线程可能会尝试写入同一文件。 这种情况类似于一种情况,其中多个 RCS 用户都希望对同一文件进行更改。 按顺序排列的每个用户都必须签出文件、进行更改,然后重新签入文件。 同样,在本地缓存方案中,服务器必须一次将写入文件的权限移交给一个客户端线程。