Совместное хранение данных
Данные, согласованные, — это данные, одинаковые по всей сети. Другими словами, если данные согласованы, данные на сервере и все клиенты синхронизируются. Один из типов программной системы, предоставляющей совместное управление данными, — это система управления версиями (RCS). Такая система, как правило, довольно простая, с одним пользователем разрешено изменять указанный файл одновременно. Другие пользователи могут считывать файл, но не могут изменить его.
Как сообщается, пользователь, который может изменить файл, проверил его. Затем пользователь проверяет измененный файл, чтобы другие могли видеть изменения. Только после того, как пользователь вернул файл обратно, можно извлечь его другим пользователем.
RcS требует активного вмешательства пользователей в работу в удобном режиме. Файловая система, которая работает в сети, должна автоматически обрабатывать проблему.
Предоставление локального кэширования согласованных данных довольно просто, если один поток на одном клиенте обращается к файлу в сети одновременно. Однако в большинстве случаев многие разные потоки на одном или нескольких компьютерах могут читать один и тот же файл. Эта ситуация по-прежнему довольно проста. Так как данные в файле являются статическими, каждый клиентский компьютер может иметь собственную локальную копию без каких-то последствий для совместного доступа к данным.
Более распространенная ситуация — это один поток, изменяющий файл, и многие другие потоки считывают его. Момент операции записи все локальные кэши этого файла устарели. Сервер должен уведомить каждого клиента отказаться от кэша. Все последующие операции чтения для файла должны выполняться в сети.
В другой распространенной ситуации несколько потоков на одном или нескольких сетевых клиентах могут попытаться записать в один и тот же файл. Эта ситуация аналогична ситуации, в которой несколько пользователей RCS все хотят внести изменения в один файл. Каждый пользователь в последовательности должен извлечь файл, внести изменения, а затем вернуть файл обратно. Аналогичным образом, в локальной схеме кэширования сервер должен передавать права записи в файл в один клиентский поток за раз.