System.ArgumentOutOfRangeException: 索引和長度必須引用該字符串內的位置。 參數名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技術實現步驟摘要】
本專利技術涉及數據處理,更具體的說是涉及基于事件因果關系的分布式系統確定性數據錄制回放方法、設備及介質。
技術介紹
1、在分布式系統中,多個計算節點協同工作以完成復雜的任務。這些節點之間通過網絡進行通信,產生大量的事件和數據流。為了調試和分析這些系統的運行情況,通常需要對系統的行為進行錄制和回放。
2、rosbag2作為一個ros2內置的輕量級工具,只是用于實現最基本的消息錄制與回放功能,并不能保證回放時消息的內容和實際應用中節點所收到的相同。并且它在回放時消息的順序,也根據rosbag2錄制并存儲這些消息的順序而定的,而在ros2這個分布式系統中,不同節點接收到同樣幾條消息的順序并不一定一樣,因此回放時消息的順序也不能保證和實際應用中節點所收到的相同。
3、因此,如何提供一種基于事件因果關系的分布式系統確定性數據錄制回放方法是本領域技術人員亟需解決的技術問題。
技術實現思路
1、有鑒于此,本專利技術提供了一種基于事件因果關系的分布式系統確定性數據錄制回放方法、設備及介質,確保事件的因果關系和順序,實現分布式系統的確定性回放。
2、為了實現上述目的,本專利技術采用如下技術方案:
3、基于事件因果關系的分布式系統確定性數據錄制回放方法,包括:
4、編寫一個配置文件,配置文件中包含每個計算節點的唯一標識label;
5、計算節點在啟動時讀取配置文件的label屬性,初始化邏輯時鐘;
6、計算節點內部發生
7、計算節點對外部輸出數據時,將緩沖區中的event?pair與輸出數據作為元數據一并被錄制下來,然后清空緩沖區;
8、通過rosbag2記錄元數據及輸出事件到數據庫中;
9、對數據庫進行離線處理,根據元數據確定輸出事件的因果關系,并根據輸出事件的因果關系對消息進行排序和篩選,生成新的用于回放的數據庫;
10、回放執行器excutor根據新的用于回放的數據庫控制回放過程,實現分布式系統的確定性回放。
11、優選的,每個計算節點對應一個邏輯時鐘,邏輯時鐘從0開始計數,計算節點內部發生事件時,邏輯時鐘值加1,每個事件用一個event?pair表示。
12、優選的,計算節點內部事件包括以下事件:
13、(a)作為訂閱者收到其他節點發出的數據;
14、(b)作為發布者節點本身向外發布數據;
15、(c)作為客戶端向服務端發送請求;
16、(d)作為服務端收到客戶端的請求;
17、(e)節點內部的周期性事件。
18、優選的,對數據庫進行離線處理,根據元數據確定輸出事件的因果關系,并根據輸出事件的因果關系對消息進行排序和篩選,生成新的用于回放的數據庫,具體包括:
19、從數據庫中提取每個計算節點的輸出數據及其元數據;
20、從元數據中提取event?pair,形成觸發事件集合;
21、將所有計算節點的觸發事件集合進行匹配,確定輸出事件的因果關系;
22、根據輸出事件的因果關系對消息進行排序和篩選,生成新的用于回放的數據庫。
23、優選的,通過回放執行器excutor控制回放過程,實現分布式系統的確定性回放,具體包括:
24、回放執行器excutor根據新的用于回放的數據庫控制回放過程,離線處理后生成的新數據庫中的事件按照確定的順序回放;
25、事件數據回放后,收到該數據的計算節點通知excutor,excutor通知回放系統可以回放下一個事件數據;
26、如果下一個事件是周期性事件,excutor通知對應計算節點執行相應的周期性任務;
27、如果下一個事件是數據傳輸類型的事件,excutor通知回放系統將該事件數據發布到系統中;
28、如果下一個事件是請求類型的事件,excutor請求對應的計算節點執行對應的任務;
29、按照上述邏輯順序執行完數據庫中記錄的所有事件數據,實現分布式系統的確定性回放。
30、一種計算機設備,包括:存儲器和處理器,所述存儲器中存儲有可在所述處理器上運行的計算機程序,所述處理器執行所述計算機程序時,實現基于事件因果關系的分布式系統確定性數據錄制回放方法。
31、一種計算機可讀存儲介質,所述存儲介質上存儲有計算機程序,該計算機程序被處理器執行時,實現基于事件因果關系的分布式系統確定性數據錄制回放方法。
32、經由上述的技術方案可知,與現有技術相比,本專利技術公開提供了一種基于事件因果關系的分布式系統確定性數據錄制回放方法、設備及介質,具有以下效果:
33、所設計的分布式系統中引入邏輯時鐘方案,是一個輕量級的可以唯一確定事件的實現方法。
34、所設計的記錄事件間的因果關系實現策略可以用于任何分布式系統中確定事件間的關系。
35、所設計的基于因果關系的數據庫離線處理具體策略可以實現確定性回放的預處理需求。
36、所設計的基于回放執行器的確定性回放策略可以滿足任何多節點復雜計算的場景下的確定性回放。
本文檔來自技高網...【技術保護點】
1.基于事件因果關系的分布式系統確定性數據錄制回放方法,其特征在于,包括:
2.根據權利要求1所述的基于事件因果關系的分布式系統確定性數據錄制回放方法,其特征在于,每個計算節點對應一個邏輯時鐘,邏輯時鐘從0開始計數,計算節點內部發生事件時,邏輯時鐘值加1,每個事件用一個event?pair表示。
3.根據權利要求1所述的基于事件因果關系的分布式系統確定性數據錄制回放方法,其特征在于,計算節點內部事件包括以下事件:
4.根據權利要求1所述的基于事件因果關系的分布式系統確定性數據錄制回放方法,其特征在于,對數據庫進行離線處理,根據元數據確定輸出事件的因果關系,并根據輸出事件的因果關系對消息進行排序和篩選,生成新的用于回放的數據庫,具體包括:
5.根據權利要求1所述的基于事件因果關系的分布式系統確定性數據錄制回放方法,其特征在于,通過回放執行器excutor控制回放過程,實現分布式系統的確定性回放,具體包括:
6.一種計算機設備,其特征在于,包括:存儲器和處理器,所述存儲器中存儲有可在所述處理器上運行的計算機程序,所述處理器執
7.一種計算機可讀存儲介質,其特征在于,所述存儲介質上存儲有計算機程序,該計算機程序被處理器執行時,實現權利要求1至5中任一項所述方法。
...【技術特征摘要】
1.基于事件因果關系的分布式系統確定性數據錄制回放方法,其特征在于,包括:
2.根據權利要求1所述的基于事件因果關系的分布式系統確定性數據錄制回放方法,其特征在于,每個計算節點對應一個邏輯時鐘,邏輯時鐘從0開始計數,計算節點內部發生事件時,邏輯時鐘值加1,每個事件用一個event?pair表示。
3.根據權利要求1所述的基于事件因果關系的分布式系統確定性數據錄制回放方法,其特征在于,計算節點內部事件包括以下事件:
4.根據權利要求1所述的基于事件因果關系的分布式系統確定性數據錄制回放方法,其特征在于,對數據庫進行離線處理,根據元數據確定輸出事件的因果關系,并...
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。