
6.4. Протоколы распределения 367
зы данных могут распределяться и возможно реплицироваться по множеству
географически разбросанных мест. Такая архитектура нередко применяется при
построении федеральных баз данных
[416].
Реплики,
инициируемые сервером
в противоположность постоянным репликам, реплики, инициируемые сервером,
являются копиями хранилища данных, которые создаются для повышения про-
изводительности и создание которых инициируется хранилищем данных (его
владельцем). Рассмотрим, например, web-сервер, находящийся в Нью-Йорке.
Обычно этот сервер в состоянии достаточно быстро обрабатывать входящие за-
просы, но может случиться так, что внезапно в течение нескольких дней из неизвест-
ного удаленного от сервера места портдет поток запросов. (Такой поток, как пока-
зывает короткая история Web, может быть вызван множеством причин.)
В
этом
случае может оказаться разумным создать в регионах несколько временных реп-
лик, призванных работать с приходящими запросами. Эти реплики известны так-
же [190] под названием выдвинутых
кэшей
{push caches).
Совсем недавно проблема динамического размещения реплик была подхваче-
на службами web-хостинга. Эти службы, которые, в сущности, предлагают набор
серверов (более менее статический), разбросанных по всему Интернету, поддер-
живают и предоставляют доступ к web-файлам, принадлежащим третьим лицам.
Для улучшения качества услуг эти службы хостинга могут динамически репли-
цировать файлы на те серверы, для которых такая репликация вызовет увеличе-
ние производительности, то есть поближе к клиентам или группам клиентов.
Одна из проблем реплик, создание которых инициировано сервером, состоит
в необходимости принятия решения о том, где и когда будут создаваться и унич-
тожаться эти реплики. Подход к динамической репликации файлов в случае
служб web-хостинга описан в
[365].
Алгоритм разработан для поддержки web-
страниц и поэтому предусматривает относительно редкие, по сравнению с запро-
сами на чтение, обновления. В качестве модулей данных используются файлы.
Основу функционирования алгоритма динамической репликации составляют
два положения. Во-первых, репликация должна производиться для уменьшения
нагрузки на сервер. Во-вторых, конкретные файлы с сервера должны переме-
щаться или реплицироваться на серверы, расположенные как можно ближе к
клиентам, от которых исходит множество запросов на эти файлы. Далее мы со-
средоточимся только на втором положении. Мы также опустим множество дета-
лей, которые можно найти в
[365].
Каждый сервер подсчитывает число обращений к файлам и отслеживает, от-
куда приходят эти обращения. В частности, это означает, для данного клиента С
каждый сервер может определить, какой из серверов службы web-хостинга к не-
му ближе всего (эта информация может быть получена, например, из баз данных
маршрутизации). Если клиент С\ и клиент Сг совместно используют один и тот
же «ближайший» сервер Р, все запросы на доступ к файлу
JF
на сервере Q от Ci и
Сг будут зарегистрированы на Q в едином счетчике обращений
cntQ(P,F).
Эта
картина показана на рис. 6.19.
Когда число запросов на конкретный файл
F
на сервере S упадет ниже порога
удаления del(S,F), файл будет удален с сервера S. Соответственно, число реплик