同步網路 SynchGHS演算法

2021-08-30 12:01:06 字數 781 閱讀 5751

1、這個演算法分層構造各元件。對於每個k,第k層的各元件構成了乙個生成森林,其中k層第一元件都包含一棵樹,該樹是mst的乙個子圖。k層的每個元件至少有2^k個節點。在每一層中,每個元件有乙個獨特的領導者節點。程序允許按乙個固定的輪數o(n)來完成每層的工作。

2、演算法從0層開始,各元件由單獨的節點組成且不包含邊。我們歸納地假設k層的各個元件已經確定了(包括它們的領導)。更特別地,假定每個程序都已經知道其元件的領導的領導的uid;這個uid就被用作整個元件的識別符號。每個程序也知道它的哪條鄰接邊在該元件的樹中。

3、為了得到k+1層的各個元件,k層的每個元件會沿著其生成樹的邊搜尋元件的mwoe。領導者使用訊息廣播策略,沿著樹的邊廣播搜尋請求。每個程序都在自己的鄰接邊中找到一條權最小的元件的出向邊;它為了完成這個工作,在所有的非樹中的邊上傳遞test訊息,詢問邊的另一端點是否屬於相同的元件(通過比較元件的識別符號來確定)。然後各程序就會把本地最小權邊的資訊聚播給領導者,途中選擇最小的。領導者得到的最小值就是整個元件的mwoe。

4、當k層的各元件都找到它們的mwoe後,這些元件就通過所有的mwoe合併為k+1層的元件。這涉及到k層的每個元件的領導者和與其mwoe相鄰的程序通訊,告知該相鄰程序把這條邊標記為屬於新樹;邊的另一端程序也被告知做同樣的工作。

5、然後對於k+1層的每個元件,按如下方式產生乙個新的領導者。對由每組被合併到k+1層元件中的k層各元件,必定存在一條惟一的邊e,e是該組的2個k層元件的共同mwoe,e的2個端點中具有更大uid的端點成為新的領導者。這個新的領導者利用本地可見資訊來標識自己。

6、最後,使用廣播在新的元件中傳播這個新的領導者的uid

Linux同步網路時間

linux伺服器執行久時,系統時間就會存在一定的誤差,一般情況下可以使用date命令進行時間設定,但在做資料庫集群分片等操作時對多台機器的時間差是有要求的,此時就需要使用ntpdate進行時間同步 安裝 yum install ntpdate ntpdate簡單用法 ntpdate ip ntpda...

linux同步網路時間

linux伺服器執行久時,系統時間就會存在一定的誤差,一般情況下可以使用date命令進行時間設定,但在做資料庫集群分片等操作時對多台機器的時間差是有要求的,此時就需要使用ntpdate進行時間同步。一 修改時區 cp usr share zoneinfo asia shanghai etc loca...

C 同步網路時間

客戶的機器的系統時間經常出錯,導致給他們做的軟體無法正常使用,所以後來就加了乙個同步網路時間的小功能。實現起來很簡單,但是卻很使用。這個小功能就是先獲取網路時間,然後將系統的時間修改成從網路獲得的時間。下面是具體的實現 using system using system.collections.ge...