как безопасно реализовать аренду в распределенной системе - PullRequest
0 голосов
/ 15 января 2019

Я реализую алгоритм изменения асинхронной схемы google f1 онлайн с помощью c ++, который предполагает, что сервер 1 записывает данные в общее хранилище, а сервер 2 должен читать данные из общего хранилища в X секунды или умри .

Как мы можем реализовать это для сервера 2?

Самый безопасный способ, которым я могу сейчас придумать, это:

while(1) {
   sleep(X/2);
   globalLockGuard(); # even the server is not died,it can't write any data so it can't damage any data. 
   time1 = now();
   loadFromSharedStorage();
   if (now - time1 > x/2) {
       die;
   }
}

мои вопросы:

  1. надежен ли сон (Х / 2)? например, если он будет спать больше, чем х / 2 секунды в реальности?
  2. есть ли лучшее решение?
...