TWI464580B - 資料儲存方法、採用此方法的資料儲存系統及需求節點 - Google Patents
資料儲存方法、採用此方法的資料儲存系統及需求節點 Download PDFInfo
- Publication number
- TWI464580B TWI464580B TW101149567A TW101149567A TWI464580B TW I464580 B TWI464580 B TW I464580B TW 101149567 A TW101149567 A TW 101149567A TW 101149567 A TW101149567 A TW 101149567A TW I464580 B TWI464580 B TW I464580B
- Authority
- TW
- Taiwan
- Prior art keywords
- time
- registration time
- data
- node
- demand node
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
- G06F16/273—Asynchronous replication or reconciliation
Description
本揭露是有關於一種在分散式系統中的資料儲存方法。
在分散式系統中,資料的存取是維持其運作的重要工作之一。資料存取的位置是依據分散式系統的公式或機制運算後所決定,因此資料可被存放於分散式系統中的某一節點,此一節點稱之為儲存節點。有需要存取資料的需求節點,皆使用同樣的方式計算得知欲存取資料所在的位置,而得以更新或改變資料。
分散式系統中最常見的架構之一即為同級間(Peer-to-Peer,P2P)網路架構,此技術被視為網路建置與服務的核心技術,同時也受到國際標準組織的重視。網際網路工程任務組(Internet Engineering Task Force,IETF)中的同級間對話啟動協定(Peer-to-peer Session Initiation Protocol,P2PSIP)工作小組著手制定以P2P為基礎的資源定位與查詢(Resource location and discovery,Reload)的通訊協定規格,可讓P2P網路的運作與資料儲存更具標準化。然而Reload主要是用於規範點對點覆蓋網路(Overlay network),而非一個資料庫的儲存協定。它的功能在於能讓應用服務(Application)透過Reload需求節點存取置於P2P網路中的資料。而Reload儲存節點僅負責接受與回覆
存取需求,Reload儲存節點無法判定資料是來自那個應用服務,或是資料是否僅能鎖定給特定的應用服務所使用。因此,Reload不具備競爭狀況(Race Condition)的避免能力。
舉例來說,圖1繪示為採用Reload分散式系統的一種競爭狀況示意圖。請參照圖1,Reload分散式系統100具有儲存節點S,儲存節點S具有“觀看次數”的資料內容。其中,Reload分散式系統100中有兩個需求節點A、B同時讀取或僅差距些微時間而讀取“觀看次數”的原始資料內容為“100,’。需求節點A在讀取後,將“觀看次數”的資料內容更新為“101”並寫入儲存節點S;另一方面,需求節點B也在讀取後,將“觀看次數”的資料內容更新為“101”並寫入儲存節點S。也就是說,儲存節點所儲存的“觀看次數”的資料內容變更為“101”。實際上,“觀看次數”的資料內容經由需求節點A、B下載之後,正確的資料內容應更新為“102”。此一錯誤乃由於需求節點A、B同時寫入儲存節點S的“觀看次數”之資料內容,因無競爭避免而讓動作(action)交錯而造成資料錯亂。
基於上述,如何在分散式系統中避免競爭狀況實為一課題。現有一種在分散式系統中增加中央控管協調者來進行分配存取的技術,各個需求節點皆需透過中央控管協調者(例如是中央伺服器)來進行管控。現有另一種在分散式系統中增建主從(Server-client)架構來避免競爭的技術,其中需求節點以及儲存節點皆須改變其運作機制。現有又一種在分散式系統中透過需求節點之間逐一地通知或溝通協
調來避免競爭的技術,其中每一個需求節點必須知道網路中所有其他有興趣於同一儲存節點的需求節點,經過溝通協調後決定出一個唯一的使用者。
有鑑於此,本揭露提供一種在分散式系統中的資料儲存方法及使用此方法的分散式系統與需求節點。
本揭露提出一種資料儲存方法,適用於需求節點。資料儲存方法包括下列步驟。先寫入時間識別碼及註冊時間於目標資料表。隨後再讀取目標資料表以查詢註冊時間記錄,據以判斷是否寫入儲存節點的使用權。取得使用權的需求節點運算結果資料後,再寫入資料識別碼及結果資料於目標資料表。最後再讀取目標資料表來判斷結果資料之有效性。
本揭露另提出一種資料儲存系統,其包括多個儲存節點以及多個需求節點。其中,儲存節點用以儲存目標資料表。各個需求節點分別寫入時間識別碼及註冊時間於目標資料表。其中,當需求節點中的目前需求節點讀取此目標資料表以查詢註冊時間記錄,並據以判斷是否具有寫入儲存節點的使用權。由取得使用權的目前需求節點運算結果資料,並寫入資料識別碼及結果資料於目標資料表中。最後,目前需求節點再讀取目標資料表來判斷此結果資料的有效性。
本揭露又提出一種需求節點,適用於資料儲存系統。
需求節點包括使用權控制單元、運算處理單元以及完成確認單元。其中,當使用權控制單元寫入時間識別碼及結果資料於目標資料表後,使用權控制單元讀取目標資料表以查詢註冊時間記錄,並據以判斷是否具有寫入儲存節點的使用權。當使用權控制單元判定取得使用權,運算處理單元運算結果資料,並將資料識別碼及結果資料寫入目標資料表中。完成確認單元讀取目標資料表以判斷此結果資料的有效性。
基於上述,本揭露提出一種利用需求節點帶有識別碼的資料,以先寫入後檢視的方式,來確認是否取得儲存節點的使用權,並且於完成資料更新後,再次查詢其所寫入的註冊時間、結果資料之間,有無其它使用者的註冊時間記錄,以確認使用權的有效性是否還存在。
為讓本揭露之上述特徵和優點能更明顯易懂,下文特舉實施範例,並配合所附圖式作詳細說明如下。
本揭露之分散式系統係架構於IETF P2PSIP所規範的Reload核心架構和通訊協定標準技術。利用需求節點帶有識別碼的資料,以先寫入後檢視的方式,來確認是否取得儲存節點的使用權,並且於完成資料更新後,確認使用權的有效性是否還存在。此一運作不需改變儲存節點的運作機制,只需改變需求節點即可,並且需求節點之間不須經過任何的溝通或訊息交換。為了使本揭露之內容更為明
瞭,以下列舉實施例作為本揭露確實能夠據以實施的範例。所提出的實施例僅作為解說之用,並非用來限定本揭露的申請權利範圍。
圖2A是根據本揭露一範例實施例所繪示之分散式系統的方塊圖。請參照圖2A,在本範例實施例中,分散式系統200係採用Reload的通訊協定規格之點對點(P2P)網路210。分散式系統200包括Reload儲存節點220以及Reload需求節點230(分別標示為230-1、230-2、...、230-N),其中N為正整數。需說明的是,分散式系統200中的各個儲存節點及需求節點個別可為電腦、筆記型電腦、智慧型手機、工作站或伺服器等具備處理Reload通訊協定能力的電子裝置,不限於上述。
Reload儲存節點(以下簡稱為儲存節點)220提供儲存空間而可用來儲存目標資料表222(如圖3所示)。目標資料表222包括識別碼欄位與資料內容欄位。識別碼欄位用以記錄需求節點之識別碼的種類,而可辨別來自哪一需求節點。資料內容欄位即是對應於識別碼的種類的資料內容。其中圖3所示之目標資料表222的詳細內容於後詳述。
圖2B是根據本揭露一範例實施例所繪示之Reload需求節點的方塊圖。Reload需求節點(以下簡稱為需求節點)230包括使用權控制單元232、初始值設定單元234、運算處理單元236以及完成確認單元238。其中,使用權控制單元232、初始值設定單元234、運算處理單元236以及完成確認單元238分別可由軟體、硬體或其組合實作
而得,在此不加以限制。
使用權控制單元232先寫入需求節點230的時間識別碼及註冊時間於目標資料表222中,再讀取目標資料表222來判斷是否具有儲存節點220的使用權。使用權控制單元232判斷目標資料表222中最後完成的有效結果資料與需求節點230的註冊時間記錄之間,是否還有其他需求節點之註冊時間記錄。若無,則使用權控制單元232判定需求節點230具有使用權。初始值設定單元234讀取並設定關於目標資料的運算初始值。運算處理單元236則依據運算初始值進行運算處理後,然後將需求節點230的資料識別碼及運算結果寫入目標資料表222中。完成確認單元238讀取目標資料表222來判斷在需求節點230的註冊時間與結果資料的兩筆記錄之間有無其他需求節點的記錄,藉此判斷運算結果的有效性。
對應於同一個資料可以用一個目標資料表來儲存各個需求節點的記錄;對應於不同的資料就可以用不同的目標資料表來儲存各個需求節點的記錄。圖3是根據本揭露一範例實施例所繪示之一種目標資料表222的示意圖。請參照圖3,在本範例實施例中,目標資料表222例如是對應至儲存節點220中的同一個資料X的目標資料表222。舉例來說,資料X例如是先前技術所述之“觀看次數”。目標資料表222包括識別碼欄位C1與資料內容欄位C2。假設在本範例實施例中,需求節點230-1欲寫入運算結果於儲存節點220中的一目標資料表222。識別碼欄位C1用以
記錄需求節點230-1之識別碼的種類,資料內容欄位C2則記錄對應於需求節點230-1之識別碼的結果資料內容。舉例來說,需求節點230-1具有兩個識別碼(ID),其分別是時間識別碼Ut
以及資料識別碼Uv
。其中,時間識別碼Ut
對應的資料內容欄位C2中記錄的是需求節點230-1的註冊時間Tu
;資料識別碼Uv
對應的資料內容欄位C2中記錄的是關於資料X的運算結果Vu
。
當需求節點230-1、230-2、...、230-N欲寫入關於同一個資料X的結果資料至儲存節點220中的目標資料表222,每一需求節點皆須在儲存節點220的目標資料表222中記錄如圖3所示的兩筆記錄(註冊時間與結果資料)。目前需求節點讀取目標資料表222,並依據各個需求節點的註冊時間記錄的先後順序來確認自己是否具有儲存節點220的使用權。確認取得使用權的目前需求節點在讀取與運算資料後,將自己的資料識別碼及運算結果寫入目標資料表222。最後,再判斷目標資料表222中的註冊時間與結果資料的兩筆記錄之間是否有插入其他需求節點的記錄,藉此判斷關於資料X的運算結果的有效性。如此一來,各個需求節點只要讀取目標資料表222便可得知對於儲存節點220中的某一資料X,目前合法的使用者為何者。藉此可避免分散式系統中的競爭狀況(Race condition)問題。
圖4是根據本揭露一範例實施例所繪示之資料儲存方法的流程圖。請參照圖4,本範例實施例的方法適用於圖2的分散式系統200及圖3之目標資料表222。以下即搭配
圖2與圖3來說明本範例實施例之資料儲存方法的各步驟。
在步驟S401中,當需求節點230-1、230-2、...、230-N欲寫入結果資料至儲存節點220的目標資料表222時,各個需求節點分別記錄自己的時間識別碼及對應的註冊時間於儲存節點220的目標資料表222中。在步驟S403中,目前需求節點(需求節點230-1、230-2、...、230-N當中的任一)讀取目標資料表222的內容,可查得各個需求節點的註冊時間記錄順序以判斷自己是否具有儲存節點220的使用權。若存在早於目前需求節點的註冊時間其記錄卻排在之後的其他需求節點,則註冊時間記錄保留並回到步驟S401。若目標資料表中最後完成的有效結果資料之後與目前需求節點的註冊時間記錄之間再無其他需求節點之註冊時間記錄,則目前需求節點具有使用權,因此可接續步驟S405,目前需求節點讀取與運算資料後,將自己的資料識別碼及運算結果寫入目標資料表222中。在步驟S407中,讀取目標資料表222,並根據目標資料表222來判斷目前需求節點的註冊時間與結果資料的兩筆記錄之間是否有插入其他需求節點的記錄,藉此來判斷關於此結果資料的運算結果的有效性。
圖5是根據本揭露另一範例實施例所繪示之資料儲存方法的流程圖。本範例實施例的方法同樣適用於如圖2所示的分散式系統200。
請參考圖5,當需求節點C想寫入結果資料至儲存節點的目標資料表時,先記錄目前需求節點C的時間識別碼
Ct
及註冊時間Tc
於儲存節點的目標資料表(步驟S501)。其中,結果資料例如是關於資料X的運算結果。接著,目前需求節點C讀取目標資料表(步驟S503)。判斷目標資料表中是否只有目前需求節點C的該筆資料(步驟S505)。若是,代表目前需求節點C具有寫入儲存節點的目標資料表的使用權,因此目前需求節點C將運算初始值設為0(步驟S507)。回到步驟S505,若判斷為否,代表目標資料表中還有其他筆註冊資料,因此目前需求節點C得知目標資料表中可能存在先前需求節點P的註冊時間記錄(時間識別碼Pt
、註冊時間Tp
)。其中,先前需求節點P代表在目前需求節點C之前的最近一筆欲寫入儲存節點的目標資料表的使用者,例如,先前需求節點P正在運算中而尚未寫入結果資料。若不存在先前需求節點P,則在需求節點C之後的運算中可將註冊時間Tp
設為0。
在步驟S509中,判斷目前需求節點C的註冊時間Tc
與先前需求節點P的註冊時間Tp
之時間差是否小於0。若是,目前需求節點C的註冊時間早於先前需求節點P的註冊時間卻排於其後,因此目前需求節點C雖然尚無法存取目標資料表,但是具有預約權。預約權代表在先前需求節點P存取完畢後,目前需求節點C具有優先存取目標資料表的權利,此需求節點C的註冊時間記錄不會移除,如步驟S511所述,在延遲一隨機時間(random time)後,目前需求節點C再更新自己的註冊時間Tc
。
在步驟S509中,若判斷為否則接續步驟S513,目前
需求節點C更判斷目前需求節點C的註冊時間Tc
與先前需求節點P的註冊時間Tp
之時間差是否小於允許存取時間(life time)。允許存取時間代表各個需求節點在取得使用權後的最大有效運算處理時間。若目前需求節點C的註冊時間Tc
與先前需求節點P的註冊時間Tp
之時間差小於此允許存取時間,代表先前需求節點P仍在有效的運算時間內,因此目前需求節點C尚無法取得使用權並且必須刪除自己在目標資料表中所儲存的時間識別碼Ct
及對應的註冊時間Tc
的該筆記錄(步驟S515),在延遲一隨機時間後,目前需求節點C重新記錄時間識別碼Ct
及更新自己的註冊時間Tc
。
相反地,若步驟S513判斷為否,代表先前需求節點P已經逾期(即超過有效運算時間),因此先前需求節點P自動喪失使用權。於是,由目前需求節點C取得使用權並且自目標資料表中搜尋是否存在有效需求節點E的結果資料Ve
(步驟S517)。在此所謂的有效需求節點E代表是在目標資料表中順序最接近目前需求節點C之完整記錄註冊時間Te
以及結果資料Ve
資料對的需求節點,在本實施例中,註冊時間Te
以及結果資料Ve
資料對包括時間識別碼Et
、註冊時間Te
、資料識別碼Ev
和結果資料Ve
。若步驟S517判斷結果為是,目前需求節點C將有效需求節點E的結果資料Ve
設定為運算初始值(步驟S519)。若步驟S517判斷結果為否,則接續步驟S507。
接下來,目前需求節點C依據運算初始值進行運算處
理後,記錄資料識別碼Cv
及對應的運算結果Vc
於目標資料表中(步驟S521)。寫入運算結果之後,目前需求節點C再次讀取目標資料表(步驟S523)。目前需求節點C檢查在其運算過程中是否存在後續需求節點F的註冊時間記錄(時間識別碼Ft
、註冊時間Tf
)(步驟S525)。後續需求節點F在本範例實施例中代表的是在目前需求節點C已經取得使用權並且進行運算處理的過程中(即寫入運算結果之前)所出現的新競爭者。若不存在後續需求節點F的註冊時間Tf
(即後續註冊時間),代表目前需求節點C的運算結果具備有效性。目前需求節點C必須刪除有效需求節點E在目標資料表中的註冊時間Te
與及結果資料Ve
(步驟S527)。相反地,若存在後續需求節點F的註冊時間Tf
,則目前需求節點C必須判斷後續需求節點F的註冊時間Tf
與目前需求節點C的註冊時間Tc
之時間差是否小於允許存取時間(步驟S529)。若是,代表目前需求節點C還在有效運算時間內,因此其運算結果具有效性。若否,則代表目前需求節點C已經逾期(即超過有效運算時間),因此目前需求節點C自動喪失使用權。故接續步驟S531,清除目前需求節點C在目標資料表中的相關記錄。
為了使本揭露的內容更為明瞭,以下列舉數個應用情境實施例來進行說明。圖6是根據本揭露另一範例實施例所繪示之分散式系統的應用情境示意圖。請參照圖6,分散式系統600包括二個需求節點A、B,儲存節點S1、S2、S3。以下將以多個運作時序圖來說明需求節點A、B對儲
存節點S1中的目標資料表進行存取的多種運作狀況,其中,目標資料表對應於同一個資料X。
圖7(a)是根據本揭露另一範例實施例所繪示之第一種運作時序流程圖。圖7(b)繪示為對應第一種運作時序流程圖的儲存節點的目標資料表示意圖。以下請配合參照圖6、圖7(a)及圖7(b)。
首先,如圖7(a)的步驟S701所述,當需求節點A想寫入結果資料至儲存節點S1的目標資料表時,需求節點A在目標資料表T71中寫入時間識別碼At
及註冊時間Ta
。接著,於步驟S703,需求節點A讀取目標資料表T71,從其中判斷是否具有寫入儲存節點S1之目標資料表的使用權。由於需求節點A從目標資料表T71中可知有一對完整的註冊時間Tu
-結果資料Vu
的資料對記錄。並且在目標資料表T71中的此資料對記錄之後,無其他需求節點註冊於需求節點A之前,所以需求節點A具有寫入目標資料表的使用權。於步驟S705,需求節點B想寫入結果資料至儲存節點S1的目標資料表,先寫入時間識別碼Bt
及註冊時間Tb
至目標資料表。於步驟S707,需求節點B讀取更新後的目標資料表T72。在本範例實施例中,假設需求節點B的註冊時間Tb
與需求節點A的註冊時間Ta
的時間差在0與允許存取時間之內,代表需求節點A仍在有效運算處理時間之內而保有使用權。因此,需求節點B取得使用權失敗。於步驟S709,需求節點A讀取結果資料Vu
以作為運算初始值,進行運算處理後,將運算結果寫入目標資料表。
於步驟S711,需求節點A讀取更新後的目標資料表T73,由於註冊時間Tb
與註冊時間Ta
的時間差在0與允許存取時間之內,因此結果資料Va
具備有效性。需說明的是,確認運算結果具備有效性的需求節點A會清除目標資料表T73中的註冊時間Tu
-結果資料Vu
的資料對記錄。最後,於步驟S713,由於需求節點B無法取得使用權,因此需求節點B自動在目標資料表T73中刪除時間識別碼Bt
以及註冊時間Tb
。
圖8(a)是根據本揭露另一範例實施例所繪示之第二種運作時序流程圖。圖8(b)繪示為對應第二種運作時序流程圖的儲存節點的目標資料表示意圖。以下請配合參照圖6、圖8(a)及圖8(b)。
首先,如圖8(a)的步驟S801所述,當需求節點A想寫入結果資料至儲存節點S1的目標資料表時,需求節點A在目標資料表T81中寫入時間識別碼At
及註冊時間Ta
。接著,於步驟S803,需求節點A讀取目標資料表T81,從其中判斷是否具有寫入儲存節點S1之目標資料表的使用權。由於需求節點A從目標資料表T81中可知有一對完整的註冊時間Tu
-結果資料Vu
的資料對記錄。並且,在目標資料表T81中的此資料對記錄之後,無其他需求節點註冊於需求節點A之前,所以需求節點A具有寫入目標資料表的使用權。於步驟S805,需求節點B想寫入結果資料至儲存節點S1的目標資料表,先寫入時間識別碼Bt
及註冊時間Tb
至目標資料表。於步驟S807,需求節點A讀取結果
資料Vu
以作為運算初始值,進行運算處理後,將運算結果寫入目標資料表。於步驟S809,需求節點B讀取更新後的目標資料表T82。在本範例實施例中,註冊時間Tb
與註冊時間Ta
的時間差大於允許存取時間,代表需求節點A已超過有效運算處理時間而喪失使用權。因此,需求節點B取得寫入目標資料表的使用權。於步驟S811,需求節點A讀取更新後的目標資料表T82。由於在註冊時間Ta
以及結果資料Va
之間具有需求節點B的註冊時間Tb
,因此在本範例實施例中,需求節點B對於需求節點A來說即為“後續需求節點”。需求節點A確認註冊時間Tb
與註冊時間Ta
的時間差大於允許存取時間,導致運算結果不具備有效性。於步驟S813,需求節點B讀取結果資料Vu
以作為運算初始值,並將運算處理後的結果資料Vb
寫入目標資料表。於步驟S815,由於需求節點A的運算結果不具備有效性,因此需求節點A自己在目標資料表T83中刪除時間識別碼At
、註冊時間Ta
、資料別碼At
、結果資料Va
。最後於步驟S817,需求節點B再次讀取更新後的目標資料表T83,由於在註冊時間Tb
與運算結果Vb
之間無其他新競爭者,確認運算結果具有效性。並且需求節點B清除目標資料表T83中的註冊時間Tu
-結果資料Vu
的資料對記錄。
圖9(a)是根據本揭露另一範例實施例所繪示之第三種運作時序流程圖。圖9(b)繪示為對應第三種運作時序流程圖的儲存節點的目標資料表示意圖。以下請配合參照圖6、圖9(a)及圖9(b)。
首先,如圖9(a)的步驟S901所述,當需求節點A想寫入結果資料至儲存節點S1的目標資料表時,需求節點A在目標資料表T91中寫入時間識別碼At
及註冊時間Ta
。接著,於步驟S903,需求節點A讀取目標資料表T91,從其中判斷是否具有寫入儲存節點S1之目標資料表的使用權。由於需求節點A從目標資料表T91中可知有一對完整的註冊時間Tu
-結果資料Vu
的資料對記錄。並且,在此資料對記錄之後,無其他需求節點註冊於需求節點A之前,所以需求節點A具有寫入目標資料表的使用權。於步驟S905,需求節點B想寫入結果資料至儲存節點S1的目標資料表,先寫入時間識別碼Bt
及註冊時間Tb
至目標資料表。於步驟S907,需求節點B讀取更新後的目標資料表T92。在本範例實施例中,假設註冊時間Tb
與註冊時間Ta
的時間差小於0,因此需求節點B取得預約權。
需說明的是,若有多個需求節點在競爭儲存節點之目標資料表的使用權時,各個需求節點所寫入目標資料表的註冊時間記錄並不一定依據時間的先後順序來登記。因為需求節點有可能因資料的傳送路徑不同或其他因素而導致傳送時間較長而延後到達儲存節點。據此產生本範例實施例中需求節點B的註冊時間早於需求節點A的註冊時間,但是需求節點B的該筆註冊時間記錄卻排在需求節點A的該筆註冊時間記錄之後。亦即註冊時間Tb
與註冊時間Ta
的時間差小於0的情況。在此情形之下,需求節點B雖然未取得使用權,但具有預約權。
接著於步驟S909,需求節點A讀取結果資料Vu
以作為運算初始值,依據結果資料Vu
進行運算處理後,將運算結果寫入目標資料表。於步驟S911,需求節點B在延遲一隨機時間(random time)後,更新註冊時間Tb
,以避免逾期。而由於需求節點B的註冊時間記錄不會被移除,因此需求節點B或是分散式系統中的其他需求節點可以藉由讀取目標資料表得知需求節點B具有預約權。於步驟S913,需求節點A讀取更新後的目標資料表T93。雖然對於需求節點A來說,需求節點B為後續需求節點。但是註冊時間Tb
與註冊時間Ta
的時間差小於允許存取時間,因此需求節點A確認其結果資料Va
的運算結果具備有效性,並且清除目標資料表T93中的註冊時間Tu
-結果資料Vu
的資料對記錄。於步驟S915,需求節點B讀取更新後的目標資料表T93,由於需求節點B係等待需求節點A結束存取後才取得使用權,因此對於需求節點B來說,最近一對完整的註冊時間-結果資料的資料對記錄為需求節點A的註冊時間Ta
-結果資料Va
。需求節點B讀取結果資料Va
以作為運算初始值,並將進行運算處理後的結果資料Vb
寫入目標資料表。需求節點B讀取目標資料表T93判斷在註冊時間Tb
與結果資料Vb
之間無其他新競爭者,因此確認結果資料Vb
的運算結果具備有效性。最後,需求節點B清除目標資料表T93中的註冊時間Ta
-結果資料Va
的資料對記錄。
綜上所述,本揭露之資料儲存方法以及採用此方法的分散式系統及需求節點藉由將帶有需求節點之識別碼及對
應的資料內容記錄在儲存節點的目標資料表中,使得需求節點可以用先寫入後檢視的方式來確定自己是否為合法的使用者。本揭露之運作不需增加中央控管協調者、也不需改變儲存節點的運作機制,此外,需求節點之間也不須經過任何的溝通或訊息交換的處理程序。
雖然本揭露已以實施範例揭露如上,然其並非用以限定本揭露,任何所屬技術領域中具有通常知識者,在不脫離本揭露之精神和範圍內,當可作些許之更動與潤飾,故本揭露之保護範圍當視後附之申請專利範圍所界定者為準。
100‧‧‧Reload分散式系統
200、600‧‧‧分散式系統
210‧‧‧P2P網路
220‧‧‧Reload儲存節點
222、T71~T73、T81~T83、T91~T93‧‧‧目標資料表
230、230-1~230-N‧‧‧Reload需求節點
232‧‧‧使用權控制單元
234‧‧‧初始值設定單元
236‧‧‧運算處理單元
238‧‧‧完成確認單元
A、B‧‧‧需求節點
S、S1、S2、S3‧‧‧儲存節點
C1‧‧‧識別碼欄位
C2‧‧‧資料內容欄位
S401~S407‧‧‧一範例實施例之資料儲存方法之各步驟
S501~S531‧‧‧另一範例實施例之資料儲存方法之各步驟
S701~S713‧‧‧第一種運作時序之各步驟
S801~S817‧‧‧第二種運作時序之各步驟
S901~S915‧‧‧第三種運作時序之各步驟
圖1繪示為採用Reload分散式系統的一種競爭狀況示意圖。
圖2A是根據本揭露一範例實施例所繪示之分散式系統的方塊圖。
圖2B是根據本揭露一範例實施例所繪示之Reload需求節點的方塊圖。
圖3是根據本揭露一範例實施例所繪示之一種目標資料表222的示意圖。
圖4是根據本揭露一範例實施例所繪示之資料儲存方法的流程圖。
圖5是根據本揭露另一範例實施例所繪示之資料儲存方法的流程圖。
圖6是根據本揭露另一範例實施例所繪示之資料儲存系統的應用情境示意圖。
圖7(a)是根據本揭露另一範例實施例所繪示之第一種運作時序流程圖。
圖7(b)繪示為對應第一種運作時序流程圖的儲存節點的目標資料表示意圖。
圖8(a)是根據本揭露另一範例實施例所繪示之第二種運作時序流程圖。
圖8(b)繪示為對應第二種運作時序流程圖的儲存節點的目標資料表示意圖。
圖9(a)是根據本揭露另一範例實施例所繪示之第三種運作時序流程圖。
圖9(b)繪示為對應第三種運作時序流程圖的儲存節點的目標資料表示意圖。
S401~S407‧‧‧資料儲存方法之各步驟
Claims (50)
- 一種資料儲存方法,適用於一需求節點,該資料儲存方法包括:寫入一時間識別碼及一註冊時間於一目標資料表;讀取該目標資料表以查詢一註冊時間記錄,據以判斷是否具有寫入一儲存節點的一使用權;取得該使用權的該需求節點運算一結果資料;寫入一資料識別碼及該結果資料於該目標資料表;以及讀取該目標資料表以判斷該結果資料的有效性。
- 如申請專利範圍第1項所述之資料儲存方法,其中讀取該目標資料表並據以判斷是否具有寫入該儲存節點的該使用權的步驟包括:該需求節點讀取該目標資料表,其中該目標資料表有至少一資料對,其中該資料對包括一另一時間識別碼、一另一註冊時間、一另一資料識別碼和一另一結果資料。
- 如申請專利範圍第2項所述之資料儲存方法,其中讀取該目標資料表並據以判斷是否具有寫入該儲存節點的該使用權的步驟更包括:該資料對之後不存在註冊於前的一先前需求節點的一先前註冊時間記錄,由該需求節點取得該使用權。
- 如申請專利範圍第2項所述之資料儲存方法,其中讀取該目標資料表並據以判斷是否具有寫入該儲存節點的該使用權的步驟更包括: 該資料對之後存在註冊於前的一先前需求節點的一先前註冊時間記錄,判斷該註冊時間與一先前註冊時間之時間差是否不小於一允許存取時間,若是,由該需求節點取得該使用權,其中該先前註冊時間記錄包括一先前時間識別碼及該先前註冊時間。
- 如申請專利範圍第4項所述之資料儲存方法,更包括:該註冊時間與該先前註冊時間之時間差小於0,則該需求節點取得一預約權;以及延遲一隨機時間後,更新該註冊時間。
- 如申請專利範圍第5項所述之資料儲存方法,其中該需求節點的該時間識別碼與該註冊時間被保留在該目標記錄表中。
- 如申請專利範圍第4項所述之資料儲存方法,更包括:該註冊時間與該先前註冊時間之時間差介於0與該允許存取時間之內,則該需求節點未取得該使用權;以及清除該目標資料表中的該時間識別碼及該註冊時間。
- 如申請專利範圍第7項所述之資料儲存方法,其中在清除該時間識別碼及該註冊時間之後,更包括:延遲一隨機時間後,該需求節點在該目標資料表中記錄該時間識別碼及一更新註冊時間。
- 如申請專利範圍第1項所述之資料儲存方法,其中讀取該目標資料表並據以判斷是否具有寫入該儲存節點的 該使用權的步驟包括:該需求節點讀取該目標資料表,其中當該目標資料表中只有該時間識別碼及該註冊時間,由該需求節點取得該使用權。
- 如申請專利範圍第1項所述之資料儲存方法,其中取得該使用權的該需求節點運算該結果資料的步驟包括:該需求節點以0為一運算初始值運算該結果資料。
- 如申請專利範圍第1項所述之資料儲存方法,其中取得該使用權的該需求節點運算該結果資料的步驟更包括:尋找順序最接近該需求節點的一資料對,以該資料對的一另一結果資料為一運算初始值運算該結果資料,其中該資料對包括一另一時間識別碼、一另一註冊時間、一另一資料識別碼和該另一結果資料。
- 如申請專利範圍第1項所述之資料儲存方法,其中讀取該目標資料表以判斷該結果資料的有效性的步驟包括:該需求節點讀取該目標資料表,查詢該目標資料表以判斷該註冊時間與該結果資料之間是否存在一後續需求節點的一後續註冊時間,據以判斷該結果資料的有效性。
- 如申請專利範圍第12項所述之資料儲存方法,其中當該目標資料表存在該後續註冊時間,且該後續註冊時間與該註冊時間之時間差小於一允許存取時間,該結果資 料具備有效性。
- 如申請專利範圍第12項所述之資料儲存方法,其中當該目標資料表存在該後續註冊時間,且該後續註冊時間與該註冊時間之時間差不小於一允許存取時間,該結果資料不具備有效性。
- 如申請專利範圍第14項所述之資料儲存方法,其中該運算結果不具備有效性,該資料儲存方法更包括:清除該目標資料表中該需求節點的記錄。
- 如申請專利範圍第2項所述之資料儲存方法,其中讀取該目標資料表以判斷該結果資料的有效性的步驟之後更包括:清除該資料對。
- 如申請專利範圍第1項所述之資料儲存方法,其中該目標資料表儲存於一分散式系統的該儲存節點中,且該需求節點適用於該分散式系統。
- 一種資料儲存系統,包括:至少一儲存節點,儲存一目標資料表;以及至少一需求節點,各該需求節點分別寫入一時間識別碼及一註冊時間於該目標資料表,其中,該些需求節點中的一目前需求節點讀取該目標資料表以查詢一註冊時間記錄,據以判斷是否具有寫入該儲存節點的一使用權,取得該使用權的該目前需求節點運算一結果資料,並寫入一資料識別碼及該結果資料於該目標資料表,再讀取該目標資料表來判斷該結果資料的有效 性。
- 如申請專利範圍第18項所述之資料儲存系統,其中各該需求節點包括:一使用權控制單元,讀取該目標資料表,其中該目標資料表有至少一資料對,其中該資料對包括一另一時間識別碼、一另一註冊時間、一另一資料識別碼和一另一結果資料。
- 如申請專利範圍第19項所述之資料儲存系統,其中:該使用權控制單元判斷在該資料對之後不存在註冊於前的一先前需求節點的一先前註冊時間記錄,則取得該使用權。
- 如申請專利範圍第19項所述之資料儲存系統,其中:當該目標資料表存在註冊於前的一先前需求節點的一先前註冊時間記錄,該使用權控制單元判斷該註冊時間與一先前註冊時間之時間差是否不小於一允許存取時間,若是,則取得該使用權,其中該先前註冊時間記錄包括一先前時間識別碼及該先前註冊時間。
- 如申請專利範圍第21項所述之資料儲存系統,其中:該使用權控制單元判斷該註冊時間與該先前註冊時間之時間差小於0,則由該目前需求節點取得一預約權,並在延遲一隨機時間後,該使用權控制單元更新該註冊時 間。
- 如申請專利範圍第22項所述之資料儲存系統,其中該目前需求節點的該時間識別碼與該註冊時間會被保留在該目標記錄表中。
- 如申請專利範圍第21項所述之資料儲存系統,其中:該使用權控制單元判斷該註冊時間與該先前註冊時間之時間差介於0與該允許存取時間之內,則該目前需求節點未取得該使用權,並清除該目標資料表中的該時間識別碼及該註冊時間。
- 如申請專利範圍第24項所述之資料儲存系統,其中:該使用權控制單元更在延遲一隨機時間後,在該目標資料表中記錄該時間識別碼及一更新註冊時間。
- 如申請專利範圍第19項所述之資料儲存系統,其中各該需求節點包括:一初始值設定單元,耦接該使用權控制單元,該初始值設定單元尋找順序最接近該目前需求節點的該資料對,將該資料對的該另一結果資料設定為一運算初始值。
- 如申請專利範圍第26項所述之資料儲存系統,其中各該需求節點包括:一運算處理單元,耦接該初始值設定單元,接收該初始值設定單元所設定的該運算初始值,以進行運算處理後,該運算處理單元將該資料識別碼及該結果資料寫入該 目標資料表中。
- 如申請專利範圍第18項所述之資料儲存系統,其中各該需求節點包括:一初始值設定單元,當該目標資料表中只有該時間識別碼及該註冊時間,該初始值設定單元將一運算初始值設定為0。
- 如申請專利範圍第18項所述之資料儲存系統,其中各該需求節點包括:一完成確認單元,讀取該目標資料表以查詢該註冊時間與該結果資料之間是否存在一後續需求節點的一後續註冊時間,當該後續註冊時間不存在,則該完成確認單元確認該結果資料具備有效性。
- 如申請專利範圍第29項所述之資料儲存系統,其中:當該目標資料表存在該後續註冊時間,該完成確認單元判斷該註冊時間與該後續註冊時間之時間差小於一允許存取時間,該結果資料具備有效性。
- 如申請專利範圍第29項所述之資料儲存系統,其中:該完成確認單元判斷該註冊時間與該後續註冊時間之時間差不小於一允許存取時間,該結果資料不具備有效性。
- 如申請專利範圍第29項所述之資料儲存系統,其中該運算結果不具備有效性,該完成確認單元清除該目標 資料表中該目前需求節點的記錄。
- 如申請專利範圍第18項所述之資料儲存系統,其中:該儲存節點的該目標資料表中具有至少一個以上的欄位,其中該些欄位的其中之一記錄各該需求節點的各該時間識別碼及各該資料識別碼,該些欄位之另一記錄相對應的各該註冊時間及各該結果資料。
- 如申請專利範圍第18項所述之資料儲存系統,其中:該儲存節點以第一目標資料表來儲存對應於第一資料的各該需求節點的記錄,該儲存節點以第二目標資料表來儲存對應於第二資料的各該需求節點的記錄。
- 如申請專利範圍第18項所述之資料儲存系統,其中該資料儲存系統為採用一點對點為基礎的資源定位與查詢的通訊協定規格的一分散式系統。
- 一種需求節點,適用於一資料儲存系統,該需求節點包括:一使用權控制單元,寫入一時間識別碼及一註冊時間於一目標資料表後,該使用權控制單元讀取該目標資料表以查詢一註冊時間記錄,據以判斷是否具有寫入一儲存節點的一使用權;一運算處理單元,當該使用權控制單元判定取得該使用權,運算處理單元運算一結果資料,並將一資料識別碼及該結果資料寫入該目標資料表;以及 一完成確認單元,讀取該目標資料表以判斷該結果資料的有效性。
- 如申請專利範圍第36項所述之需求節點,其中:該使用權控制單元讀取該目標資料表,其中該目標資料表有至少一資料對,其中該資料對包括一另一時間識別碼、一另一註冊時間、一另一資料識別碼和一另一結果資料。
- 如申請專利範圍第37項所述之需求節點,其中:該使用權控制單元判斷在該資料對之後不存在註冊於前的一先前需求節點的一先前註冊時間記錄,則取得該使用權。
- 如申請專利範圍第37項所述之需求節點,其中:當該目標資料表存在註冊於前的一先前需求節點的一先前註冊時間記錄,該使用權控制單元判斷該註冊時間與一先前註冊時間之時間差是否不小於一允許存取時間,若是,則取得該使用權,其中該先前註冊時間記錄包括一先前時間識別碼及該先前註冊時間。
- 如申請專利範圍第39項所述之需求節點,其中:該使用權控制單元判斷該註冊時間與該先前註冊時間之時間差小於0,則取得一預約權,並在延遲一隨機時間後,該使用權控制單元更新該該註冊時間。
- 如申請專利範圍第40項所述之需求節點,其中該需求節點的該時間識別碼與該註冊時間會被保留在該目標記錄表中。
- 如申請專利範圍第37項所述之需求節點,其中:該使用權控制單元判斷該註冊時間與該先前需求節點的該註冊時間之兩者時間差介於0與該允許存取時間之內,則未取得該使用權,並清除該目標資料表中的該時間識別碼及該註冊時間。
- 如申請專利範圍第42項所述之需求節點,其中:該使用權控制單元更在延遲一隨機時間後,在該目標資料表中記錄該時間識別碼及一更新註冊時間。
- 如申請專利範圍第37項所述之需求節點,更包括:一初始值設定單元,耦接該使用權控制單元,該初始值設定單元尋找順序最接近該目前需求節點的該資料對,將該資料對的該另一結果資料設定為一運算初始值,以提供該運算處理單元運算該結果資料。
- 如申請專利範圍第36項所述之需求節點,更包括:一初始值設定單元,當該目標資料表中只有該時間識別碼及該註冊時間,該初始值設定單元將一運算初始值設定為0。
- 如申請專利範圍第36項所述之需求節點,其中:該完成確認單元讀取該目標資料表以查詢該註冊時間與該結果資料之間是否存在一後續需求節點的一後續註冊時間,當該後續註冊時間不存在,則該完成確認單元確認該結果資料具備有效性。
- 如申請專利範圍第46項所述之需求節點,其中:當該目標資料表存在該後續註冊時間,該完成確認單元判斷該註冊時間與該後續註冊時間之時間差小於一允許存取時間,該結果資料具備有效性。
- 如申請專利範圍第46項所述之需求節點,其中:該完成確認單元判斷該註冊時間與該後續註冊時間之時間差不小於一允許存取時間,該結果資料不具備有效性。
- 如申請專利範圍第46項所述之需求節點,其中該結果資料不具備有效性,該完成確認單元清除該目標資料表中該需求節點的記錄。
- 如申請專利範圍第36項所述之需求節點,其中該需求節點更適用於採用一點對點為基礎的資源定位與查詢的通訊協定規格的一分散式系統。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW101149567A TWI464580B (zh) | 2012-12-24 | 2012-12-24 | 資料儲存方法、採用此方法的資料儲存系統及需求節點 |
US13/887,379 US9442998B2 (en) | 2012-12-24 | 2013-05-06 | Data storage method, data storage system and requesting node using the same |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW101149567A TWI464580B (zh) | 2012-12-24 | 2012-12-24 | 資料儲存方法、採用此方法的資料儲存系統及需求節點 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201426284A TW201426284A (zh) | 2014-07-01 |
TWI464580B true TWI464580B (zh) | 2014-12-11 |
Family
ID=50975973
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW101149567A TWI464580B (zh) | 2012-12-24 | 2012-12-24 | 資料儲存方法、採用此方法的資料儲存系統及需求節點 |
Country Status (2)
Country | Link |
---|---|
US (1) | US9442998B2 (zh) |
TW (1) | TWI464580B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105122774B (zh) * | 2013-03-07 | 2018-10-12 | 瑞典爱立信有限公司 | 控制对reload网络中的资源的写入访问 |
US10226242B2 (en) | 2013-07-31 | 2019-03-12 | Nuvasive Specialized Orthopedics, Inc. | Noninvasively adjustable suture anchors |
CN110290002B (zh) * | 2019-06-27 | 2023-08-01 | 北京百度网讯科技有限公司 | 一种更新方法、终端及电子设备 |
CN111652723A (zh) * | 2020-06-01 | 2020-09-11 | 泰康保险集团股份有限公司 | 数据处理方法、装置、设备及计算机可读存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW200521762A (en) * | 2003-12-19 | 2005-07-01 | Hon Hai Prec Ind Co Ltd | Software user's operation mode analyzing system and method |
US20050216798A1 (en) * | 2004-03-24 | 2005-09-29 | Microsoft Corporation | Method and system for detecting potential races in multithreaded programs |
TW200630891A (en) * | 2005-01-14 | 2006-09-01 | Microsoft Corp | Method and system for synchronizing multiple user revisions to a shared object |
TW200841190A (en) * | 2007-02-09 | 2008-10-16 | Microsoft Corp | Efficient knowledge representation in data synchronization systems |
US20090222825A1 (en) * | 2008-02-28 | 2009-09-03 | Gautam Upadhyaya | Data race detection in a concurrent processing environment |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7526672B2 (en) | 2004-02-25 | 2009-04-28 | Microsoft Corporation | Mutual exclusion techniques in a dynamic peer-to-peer environment |
US7945912B1 (en) | 2006-06-02 | 2011-05-17 | Oracle America, Inc. | Hierarchical queue-based locks |
US8127413B2 (en) | 2006-07-11 | 2012-03-06 | Georgia Tech Research Corporation | System and method for preventing race condition vulnerability |
US8181180B1 (en) | 2007-09-14 | 2012-05-15 | Hewlett-Packard Development Company, L.P. | Managing jobs in shared file systems |
US7937482B1 (en) | 2008-03-27 | 2011-05-03 | Amazon Technologies, Inc. | Scalable consensus protocol |
CA2684225A1 (en) * | 2009-10-30 | 2011-04-30 | Ibm Canada Limited - Ibm Canada Limitee | Selective delta validation of a shared artifact |
-
2012
- 2012-12-24 TW TW101149567A patent/TWI464580B/zh active
-
2013
- 2013-05-06 US US13/887,379 patent/US9442998B2/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW200521762A (en) * | 2003-12-19 | 2005-07-01 | Hon Hai Prec Ind Co Ltd | Software user's operation mode analyzing system and method |
US20050216798A1 (en) * | 2004-03-24 | 2005-09-29 | Microsoft Corporation | Method and system for detecting potential races in multithreaded programs |
TW200630891A (en) * | 2005-01-14 | 2006-09-01 | Microsoft Corp | Method and system for synchronizing multiple user revisions to a shared object |
TW200841190A (en) * | 2007-02-09 | 2008-10-16 | Microsoft Corp | Efficient knowledge representation in data synchronization systems |
US20090222825A1 (en) * | 2008-02-28 | 2009-09-03 | Gautam Upadhyaya | Data race detection in a concurrent processing environment |
Also Published As
Publication number | Publication date |
---|---|
TW201426284A (zh) | 2014-07-01 |
US9442998B2 (en) | 2016-09-13 |
US20140181234A1 (en) | 2014-06-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI361356B (en) | Propagation of conflict knowledge | |
US20170364572A1 (en) | Method and system for providing a synchronization service | |
JP6403177B1 (ja) | ブロックチェーン・ネットワークにおいてスマートコントラクトを実行可能にするための方法及び当該ネットワークを構成するためのノード | |
TWI464580B (zh) | 資料儲存方法、採用此方法的資料儲存系統及需求節點 | |
CN111460458B (zh) | 一种数据处理方法、相关装置及计算机可存储介质 | |
CN110880147B (zh) | 一种交易处理方法、相关设备及计算机存储介质 | |
EP2991280A1 (en) | Content sharing method and social synchronizing apparatus | |
CN104408183B (zh) | 数据系统的数据导入方法和装置 | |
US20190372825A1 (en) | Communication apparatus, communication method, and recording medium | |
US9936011B2 (en) | Distributed database, method of sharing data, program storing medium, and apparatus for a distributed database | |
KR101570933B1 (ko) | 데이터분산서비스에서 동적 블룸 필터를 이용한 노드 탐색 시스템 및 방법 | |
CN111553669B (zh) | 一种交易路由方法、装置及计算机可读存储介质 | |
CN106302374A (zh) | 一种用于提高表项访问带宽和原子性操作的装置及方法 | |
JP5449462B2 (ja) | 分散型データベースシステム及びプログラム | |
EP3883175A1 (en) | Blockchain-based contract terminal and method using location information | |
JP2009099007A (ja) | サービスサーバ、更新情報管理サーバ、サービスシステム、サービスプログラム及び更新情報管理プログラム | |
US10318506B2 (en) | Database system | |
KR101674294B1 (ko) | 임의 접근 및 상태 접근이 가능한 자료구조 운용장치 및 그 운용 방법 | |
US20170026357A1 (en) | Proxy authentication method and communication device | |
JP4113511B2 (ja) | タイムスタンプ局選択システム及びタイムスタンプ局選択プログラム | |
JP5636394B2 (ja) | 情報処理装置、情報処理方法、およびプログラム | |
CN110889040B (zh) | 用于推送信息的方法和装置 | |
KR20130113788A (ko) | Pc방의 서비스 등록 ip 판별 시스템 및 방법 | |
KR102422651B1 (ko) | 블록체인 시스템 상의 지분 기반 토큰 관리 방법 및 장치 | |
WO2023160040A1 (zh) | 基于区块链的数据处理方法、装置、设备及可读存储介质 |