System.ArgumentOutOfRangeException: 索引和長度必須引用該字符串內的位置。 參數名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技術實現步驟摘要】
本申請實施例涉及數據庫,尤其涉及一種共享頁面的讀寫方法、數據庫系統和計算機設備。
技術介紹
1、數據共享(data?sharing)是一種數據可以在多個應用程序、服務和設備之間交換或共享的技術。在數據共享架構下,系統中數據的存儲和計算是相互分離的。系統中的每個計算節點都可以接入讀寫頁面,頁面緩沖池(buffer?pool)在多個計算節點之間是共享的,每個計算節點都可以訪問全量的數據。
2、如圖1所示,是現有技術中的一種數據共享的示意圖。圖1中示出了一分布式的頁面緩沖池,該頁面緩沖池中緩存的頁面來源于共享存儲并可以被多個節點共享。示例性地,該頁面緩沖池可以被圖1中的節點1、節點2和節點3共享。節點1、節點2和節點3均可以對頁面緩沖池中的頁面進行讀寫。現有技術中,頁面緩沖池在多個計算節點間共享時,可以通過遠程過程調用(remote?procedure?call,rpc)傳輸緩沖頁面(buffer?page)。但是,通過rpc獲取頁面的開銷較大,如何采用一種新的方式降低節點在讀寫共享頁面時的開銷,是當前亟需解決的一個技術問題。
技術實現思路
1、本申請實施例提供了一種共享頁面的讀寫方法、數據庫系統和計算機設備,可以用以解決現有技術中通過rpc傳輸緩沖頁面開銷較大的問題。
2、為達到上述目的,本申請實施例采用如下技術方案:
3、第一方面,提供一種共享頁面的讀寫方法,包括:確定待讀寫的共享頁面,共享頁面的地址可以在多個計算節點間共享。根據共享頁面的地址,計
4、應理解,在數據共享架構下,多個計算節點均可以接入頁面緩沖池,并從頁面緩沖池中獲取共享頁面。本申請實施例將共享頁面的鎖信息和日志序號等頁面信息存儲于頁面緩沖池中,使得各個計算節點在讀寫共享頁面時可以基于共享頁面的地址,直接從頁面緩沖池中獲取共享頁面及其相應的頁面信息,無需通過rpc等流程在多個計算節點中傳遞待讀寫的共享頁面及其頁面信息。這樣,可以減少多個計算節點傳遞共享頁面時帶來的通信開銷以及線程調用時的開銷,提高數據庫系統中各個計算節點的計算性能,保障數據庫系統的正常運行。
5、在第一方面的一種可能的實現方式中,基于鎖信息和日志序號,對共享頁面進行讀寫,包括:確定讀寫共享頁面的操作類型,操作類型包括讀取操作或修改操作;根據操作類型設置共享頁面的鎖信息;在設置鎖信息后,基于日志序號對共享頁面進行與操作類型相匹配的讀寫操作。
6、應理解,操作類型可以根據具體的事務需求確定,包括讀取操作或修改操作。其中,讀取操作可以是指對共享頁面中的數據或信息進行讀取,也即是讀頁面操作;修改操作可以是指對共享頁面中的數據或信息進行修改,也即是寫頁面操作。在確定對共享頁面的操作類型后,計算節點可以設置共享頁面的鎖信息,例如,在需要寫頁面時,對共享頁面加鎖。然后,基于設置好的鎖信息,進行相應的讀寫操作。
7、在第一方面的一種可能的實現方式中,根據操作類型設置共享頁面的鎖信息,包括:當操作類型為修改操作,設置共享頁面的鎖信息為寫鎖,并將寫鎖的持有者設置為當前的計算節點。
8、應理解,在操作類型為修改操作,也即計算節點需要對共享頁面進行寫頁面流程時,計算節點應當持有該共享頁面的寫鎖。當某一計算節點持有某一共享頁面的寫鎖時,該計算節點可以修改共享頁面中的數據,或者向頁面中寫入數據,或者刪除頁面中的部分或全部數據。同時,該計算節點持有共享頁面的寫鎖后,其他計算節點無法對該共享頁面中的數據進行修改、刪除或寫入等操作。
9、在第一方面的一種可能的實現方式中,基于日志序號對共享頁面進行與操作類型相匹配的讀寫操作,包括:當操作類型為修改操作,基于日志序號校驗共享頁面是否被持久化處理;若共享頁面已被持久化處理,則對共享頁面進行修改操作;若共享頁面未被持久化處理,則在等待共享頁面被持久化處理后,再對共享頁面進行修改操作。
10、應理解,對共享頁面的持久化處理可以是指當前計算節點的上一節點對處理后的共享頁面中的數據進行落盤。只有待上一節點對數據進行落盤后,當前的計算節點才能夠對共享頁面進行讀寫;否則,需要等待上一節點對頁面進行持久化處理完成后,再對共享頁面進行讀寫。
11、在第一方面的一種可能的實現方式中,基于日志序號校驗共享頁面是否被持久化處理,包括:獲取上一次修改共享頁面的上一計算節點燒錄日志形成的日志序號;比較上一計算節點燒錄日志形成的日志序號與共享頁面的日志序號;若上一計算節點燒錄日志形成的日志序號大于或等于共享頁面的日志序號,則判定共享頁面已被持久化處理;否則,判定共享頁面未被持久化處理。
12、在一種實現方式中,可以通過校驗上一計算節點燒錄日志形成的日志序號是否大于或等于共享頁面的日志序號來判定上一計算節點是否已對共享頁面做持久化處理。其中,共享頁面的日志序號包括頭部序號和尾部序號。在將上一計算節點燒錄日志形成的日志序號與共享頁面的日志序號進行比較時,可以將上一計算節點燒錄日志形成的日志序號與共享頁面的頭部序號進行比較,也可以將上一計算節點燒錄日志形成的日志序號與共享頁面的尾部序號進行比較。
13、在第一方面的一種可能的實現方式中,在對共享頁面進行修改操作之后,上述方法還包括:依次將頭部序號、修改后的共享頁面中的數據和尾部序號寫入遠端的頁面緩沖池中。
14、在第一方面的另一種可能的實現方式中,基于日志序號對共享頁面進行與操作類型相匹配的讀寫操作,還包括:當操作類型為讀取操作,比較共享頁面的日志序號中的頭部序號和尾部序號;若頭部序號和尾部序號相同,則讀取共享頁面中的數據;若頭部序號和尾部序號不同,則通過加鎖的方式對共享頁面進行讀取。
15、應理解,讀寫操作可以是指針對共享頁面進行的讀頁面流程。計算節點在讀頁面前,需要對共享頁面中的數據進行校驗。例如,可以通過比較共享頁面的日志序號中的頭部序號和尾部序號是否相同來進行校驗。如果二者相同,表示該共享頁面校驗通過,計算節點可以讀取頁面中的數據。在一次校驗未通過的情況下,計算節點可以按照上述方法進行多次校驗。如果多次校驗均未通過則表示該共享頁面在無鎖校驗流程中未通過校驗。此時,計算節點可以嘗試加鎖的方式,來讀取頁面中的數據。
16、在第一方面的一種可能的實現方式中,通過加鎖的方式對共享頁面進行讀取,包括:設置共享頁面的鎖信息為讀鎖,并將讀鎖的持有者設置為當前的計算節點;在設置讀鎖后,讀取共享頁面中的數據。
17、應理解,在對共享頁面加讀鎖并持有該讀鎖后,當前的計算節點可以防止其他計算節點對頁面中的數據進行修改。這樣,僅當前的計算節點可以讀寫頁面中的數據。因此計算節點可以在持有頁面的讀鎖的情況下,讀取頁面中的數據。
18、在第一方面的一種可能的實現方式中,上述方法還包括:本文檔來自技高網...
【技術保護點】
1.一種共享頁面的讀寫方法,其特征在于,包括:
2.根據權利要求1所述的方法,其特征在于,所述基于所述鎖信息和所述日志序號,對所述共享頁面進行讀寫,包括:
3.根據權利要求2所述的方法,其特征在于,所述根據所述操作類型設置所述共享頁面的鎖信息,包括:
4.根據權利要求2或3所述的方法,其特征在于,所述基于所述日志序號對所述共享頁面進行與所述操作類型相匹配的讀寫操作,包括:
5.根據權利要求4所述的方法,其特征在于,所述基于所述日志序號校驗所述共享頁面是否被持久化處理,包括:
6.根據權利要求4或5所述的方法,其特征在于,所述共享頁面的日志序號包括頭部序號和尾部序號,在對所述共享頁面進行修改操作之后,所述方法還包括:
7.根據權利要求2所述的方法,其特征在于,所述基于所述日志序號對所述共享頁面進行與所述操作類型相匹配的讀寫操作,包括:
8.根據權利要求7所述的方法,其特征在于,所述通過加鎖的方式對所述共享頁面進行讀取,包括:
9.根據權利要求1-8任一項所述的方法,其特征在于,所述方法還
10.根據權利要求9所述的方法,其特征在于,所述從至少一個所述緩存頁面中,確定所述共享頁面的最新版本頁面,包括:
11.根據權利要求9或10所述的方法,其特征在于,所述從關聯節點中獲取所述共享頁面的至少一個緩存頁面,包括:
12.根據權利要求1-11任一項所述的方法,其特征在于,所述頁面緩沖池存在于基于低時延主機互聯協議的共享內存中。
13.一種數據庫系統,包括數據庫和多個計算節點,多個所述計算節點共享所述數據庫中的頁面,其特征在于,任一所述計算節點采用如權利要求1-12任一項所述的共享頁面的讀寫方法對所述數據庫中的頁面進行讀寫。
14.一種計算機設備,包括存儲器、處理器以及存儲在所述存儲器中并可在所述處理器上運行的計算機程序,其特征在于,所述處理器執行所述計算機程序時實現如權利要求1-12任一項所述的共享頁面的讀寫方法。
15.一種計算機可讀存儲介質,其特征在于,所述計算機可讀存儲介質包括存儲器和處理器,所述處理器執行所述存儲器中存儲的計算機程序,以實現如權利要求1-12任一項所述的共享頁面的讀寫方法。
...【技術特征摘要】
1.一種共享頁面的讀寫方法,其特征在于,包括:
2.根據權利要求1所述的方法,其特征在于,所述基于所述鎖信息和所述日志序號,對所述共享頁面進行讀寫,包括:
3.根據權利要求2所述的方法,其特征在于,所述根據所述操作類型設置所述共享頁面的鎖信息,包括:
4.根據權利要求2或3所述的方法,其特征在于,所述基于所述日志序號對所述共享頁面進行與所述操作類型相匹配的讀寫操作,包括:
5.根據權利要求4所述的方法,其特征在于,所述基于所述日志序號校驗所述共享頁面是否被持久化處理,包括:
6.根據權利要求4或5所述的方法,其特征在于,所述共享頁面的日志序號包括頭部序號和尾部序號,在對所述共享頁面進行修改操作之后,所述方法還包括:
7.根據權利要求2所述的方法,其特征在于,所述基于所述日志序號對所述共享頁面進行與所述操作類型相匹配的讀寫操作,包括:
8.根據權利要求7所述的方法,其特征在于,所述通過加鎖的方式對所述共享頁面進行讀取,包括:
9.根據權利要求1-8任一項所述的方法,其特征在于,所述方法還包...
還沒有人留言評論。發表了對其他瀏覽者有用的留言會獲得科技券。