数据一致性

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

据说可以更改文件的用户已将其签出。然后,用户签入已修改的文件,以便其他人可以看到更改。 只有在用户签回文件后,其他用户才能将其检查。

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

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

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

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