Администрирование Lotus Notes 4.1x и Lotus Domino 4.5

Randomized exponential backoff algoritm


Вы составили прекрасное расписание. Однако не всегда удается установить соединение точно в запланированные моменты времени...

Если сервер должен выполнять репликацию, но ему не удается установить соединение с вызываемым сервером, то:

·        Если в документе Connection был задан диапазон (отрезок времени с интервалом повторения), сервер будет повторять попытки установления связи на основе "exponential backoff algorithm": сервер повторяет попытку установления связи через 10 минут после первой попытки, 20 минут после первой попытки, 40 минут после первой попытки, и т.д. Учтите, что здесь приведены средние значения. Слово randomized из названия алгоритма предупреждает вас, что в действительности сервер добавляет к средним значениям случайные поправки, чтобы избежать совпадения по времени встречных вызовов. Например, если начальная попытка была в 1:00pm, последующие попытки будут сделаны в 1:10+s pm, 1:20+s pm, 1:40+s pm, где s - случайное число. Если время очередной из попыток по "exponential backoff algorithm" превышает время начальной попытки плюс интервал повторения (из документа Connection), очередная попытка установления связи происходит в момент времени, равный времени начальной попытки плюс интервал повторения (в нашем примере, если интервал повторения равен 60 минут, сервер повторно вызывает в 2:00pm, и повторяет в 2:10+s pm, 2:20+s pm, 2:40+s pm, а затем снова в 3:00pm). Только в случае, если предыдущий вызов был успешен, интервал повторения определяет, через сколько минут после завершения последней репликации будет происходить следующий вызов. Если вы задали в документе интервал повторения "пустым", сервер принимает интервал повторения равным 60 минут

·        Если в документе Connection задан не диапазон, а конкретное время типа 08:00am, или даже список конкретных времен, сервер повторяет вызовы в течение часа. В соответствии с Randomized exponential backoff algoritm за это время произойдет около 4 попыток соединения. Но независимо ни от чего попытка следующей репликации будет происходить в следующее намеченное время в списке. Это означает, что если вы наметили репликации на 8:00 и 9:00, даже если репликация, назначенная на 8:00, заканчивается в 8:37, очередная репликация будет начинаться в 9:00, а не будет отсрочена до 9:37.


Иногда запланированные репликационные события подавляются сервером. Это может случаться, если подобное репликационное событие произошло совсем недавно (в течение часа) или если подобный запрос на репликацию все еще находится в очереди. В выборе репликатора между новыми запланированными и уже имеющимися в его очереди запросами на репликацию новые запланированные запросы имеют более высокий "приоритет". Это напоминает стратегию "заваленного" работой исполнителя, который при завершении очередного задания переключается на вновь полученное задание в ущерб уже имеющимся в его очереди заданиям. Такой принцип гарантирует завершение всех запланированных запросов до обслуживания "ждущих" запросов из очереди. Если запрос внесен в очередь, но связь с нужным сервером прервалась, происходит или повторное соединение (при работе по локальной сети) или снятие запроса (при работе по соединению типа Dialup Modem или X.25).

Обратите также внимание, что когда репликатор установил с сервером соединение типа Dialup Modem или X.25, этот факт становится известен Router-у (серверной задаче, отвечающей за передачу почты) вызванного сервера. Если Router вызванного сервера имеет ожидающую отправки на вызывавший сервер почту, эта почта будет передана в течение репликационной сессии. Обратное силы не имеет - выполнение репликаций осуществляется только по расписанию.


Содержание раздела