如何在分布式系统中安全地执行租约

时间:2019-01-15 15:05:59

标签: c++ distributed-computing

我正在用c ++实现google f1 online async schema change algorithm,假设服务器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. sleep(X / 2)是否值得信赖?像它真的会睡超过x / 2秒?
  2. 有没有更好的解决方案?

0 个答案:

没有答案