新四季網

用於內存複製系統進行垃圾回收的方法和系統的製作方法

2023-04-30 05:44:56

專利名稱:用於內存複製系統進行垃圾回收的方法和系統的製作方法
技術領域:
本發明涉及垃圾回收,特別涉及用於內存複製系統進行垃圾回收的方法和系統。
背景技術:
為了提供內存的高可用性(high availability)和故障時接管(failover),應用伺服器通常提供內存複製(in-memory replication)機制,例如Oracle Coherence, Sun GlassFish Enterprise krver等產品。內存複製的基本原理是,把一個節點伺服器內存中的數據備份k(k>= 1)份到其它節點伺服器中,當前工作的數據成為主數據(primary data),備份的k份數據成為複製數據(r印lica data)。當主數據因為某種原因,例如,在當前工作的伺服器死機導致網絡臨時受損的情況,複製數據就會被利用充當主數據,且能夠實時地接管主伺服器的任務。基於java,C#以及大多數腳本語言等程序語言實現的內存複製系統通常利用垃圾回收(Gartage Collection)機制進行內存管理,垃圾回收器進行垃圾回收時,檢查出不再被應用程式使用的數據對象並執行必要的操作來回收它們佔用的內存。垃圾回收機制通常包括標記拷貝方法(Mark-Copy)和標記清除方法(Mark-Swe印),在這兩種方法中都需要先進行標記操作,標記操作的任務是從根節點開始遍歷堆上所有的數據對象,在每個它所發現的存活的數據對象都加上標記,直至遍歷完畢,沒有被標記的數據對象就是垃圾。在標記拷貝方法中,將所有存活的數據對象拷貝至另一個新堆(動態內存空間),未被拷貝的都是垃圾,原有存儲空間被整體回收釋放。在標記清除方法中,直接清除回收沒有被標記的數據對象。然而由於標記操作必須遍歷整個堆,因此需要花費大量的時間和計算資源,而在內存複製系統中進行垃圾回收的標記操作時,由於各個節點伺服器執行環境(例如JVM)彼此獨立地進行垃圾回收,因此需要對(k+Ι)個數據片各自獨立地進行標記操作,極大地浪費了各個節點伺服器上的CPU計算資源,尤其在節點伺服器重負載的情況下,甚至直接導致節點伺服器過載。因此,內存複製系統需要一種高效的垃圾回收方法,從而節省節點伺服器的計算資源和時間開銷。

發明內容
基於上述問題,本發明提供一種用於內存複製系統進行垃圾回收的方法和系統。根據本發明的第一方面,提供一種用於內存複製系統的節點伺服器進行垃圾回收的方法,該方法包括響應於垃圾回收被觸發,判斷是否存在從內存複製系統的其它節點伺服器接收的可被垃圾回收的數據對象的標識信息;以及響應於判斷結果為是,利用從內存複製系統的其它節點伺服器接收的可被垃圾回收的數據對象的標識信息對所述可被垃圾回收的數據對象進行垃圾回收。根據本發明的第二方面,提供一種用於內存複製系統的節點伺服器進行垃圾回收的系統,該系統包括判斷裝置,被配置為響應於垃圾回收被觸發,判斷是否存在從內存複製系統的其它節點伺服器接收的可被垃圾回收的數據對象的標識信息;以及垃圾回收輔助裝置,被配置為響應於判斷結果為是利用從內存複製系統的其它節點伺服器接收的可被垃圾回收的數據對象的標識信息對所述可被垃圾回收的數據對象進行垃圾回收。在根據本發明實施例的內存複製系統中,其他節點伺服器利用進行垃圾回收的節點伺服器發送的可回收數據對象的標識信息對可回收的數據對象進行垃圾回收,節省了進行標記操作的計算資源和時間開銷,從而提高了內存複製系統進行垃圾回收的效率。


結合附圖,通過參考下列詳細的示例性實施例的描述,將會更好地理解本發明本身、優選的實施方式以及本發明的目的和優點,其中圖1示出根據本發明實施例的內存複製系統的示意圖;圖2示出根據本發明實施例內存複製系統節點伺服器進行垃圾回收的方法;圖3示出根據本發明實施例內存複製系統節點伺服器進行垃圾回收的流程圖;圖4示出根據本發明的實施例內存複製系統進行垃圾回收的實例;以及圖5示出根據本發明實施例內存複製系統節點伺服器進行垃圾回收的框圖。
具體實施例方式以下結合附圖描述根據本發明實施例的用於內存複製系統中的垃圾回收的方法和系統,將會更好地理解本發明的目的和優點。圖1示出根據本發明實施例的內存複製系統示意圖,如圖所示,內存複製系統包括多個節點伺服器,通過內存複製機制將當前節點伺服器中待存儲的數據切分為多個數據片,每個數據片包括多個數據對象,每個數據對象被複製成k個對應的複製數據對象分發到一個或多個其它節點伺服器中,如果當前節點伺服器中的數據對象不可用的時候,其它伺服器節點中的複製數據對象會實時地接管其任務。圖2示出根據本發明實施例的用於內存複製系統的節點伺服器進行垃圾回收的方法,該方法包括在步驟S201,響應於垃圾回收被觸發,判斷是否存在從內存複製系統的其它節點伺服器接收的可被垃圾回收的數據對象的標識信息;以及在步驟S202,響應於判斷結果為是,利用從內存複製系統的其它節點伺服器接收的可被垃圾回收的數據對象的標識信息對所述可被垃圾回收的數據對象進行垃圾回收。具體地,圖3示出了根據本發明實施例的用於內存複製系統節點伺服器進行垃圾回收的流程圖。在步驟S301,內存複製系統節點伺服器中的垃圾回收被觸發,以JVMCJava虛擬機)為例,在JVM所管理的空閒內存空間過少或者連續空閒內存空間過小,JVM不能從堆 (Heap)上為對象分配內存空間時,JVM會發出內存分配錯誤,由此激活垃圾回收器進行垃圾回收。在步驟S302,判斷是否存在從其它節點伺服器接收的可被垃圾回收的數據對象的標識信息。如果判斷結果為否,則在步驟S305,利用現有的垃圾回收機制對所述內存複製系統節點伺服器的數據對象進行垃圾回收。具體地,由於各個節點伺服器彼此獨立的進行垃圾回收,在利用現有的垃圾回收機制例如標記拷貝方法(Mark-Copy)和標記清除方法 (Mark-Sweep)對節點伺服器的數據對象進行垃圾回收的過程中,各個節點伺服器各自監視其上數據對象的標記(Mark)操作,標記操作的任務是從應用程式的根節點出發,利用相互引用關係,遍歷其在堆(heap)上動態分配的所有數據對象,在每個它所發現的存活的數據對象都加上標記,例如用「 1,,來標記存活的對象,直至遍歷完畢,沒有被標記的數據對象就是可回收的數據對象。接著在步驟S306,獲取垃圾回收過程中可被垃圾回收的數據對象的標識信息。根據本發明的一個實施例,在內存複製系統中的每個節點伺服器建立數據對象標識表,其中記錄了內存複製系統中所有數據對象在各個節點伺服器的標識信息,各個節點伺服器通過現有技術中的同步機制進行更新,從而保持數據一致性,標識信息可以是數據對象在主節點伺服器和備份節點伺服器的地址信息,也可以是數據對象在內存複製系統中的全局唯一標識,在全局唯一標識的情況下,還需要在各個節點伺服器上建立一個內存地址映射表,其中記錄了全局唯一標識與對應的數據對象的內存地址之間的映射關係。根據本發明的一個實施例,可以由進行垃圾回收的節點伺服器在數據對象標識表中查找可被垃圾回收的數據對象在其它節點伺服器的標識信息。根據本發明的另一實施例,可以選取其中一個節點伺服器作為主管節點伺服器來維護數據對象標識表,其它節點伺服器上的數據對象的標識信息發生變化會及時通知該主管節點伺服器,由該主管節點伺服器對數據對象標識表進行相應的更新,進行垃圾回收的節點伺服器將可被垃圾回收的數據對象的標識信息發送給主管節點伺服器,由主管節點伺服器在數據對象標識表中查找可被垃圾回收的數據對象在其它節點伺服器的標識信息。在步驟S307,將所述可被垃圾回收的數據對象的標識信息發送至包含有所述可被垃圾回收的數據對象的其它節點伺服器,即,其它節點伺服器包含有與所述可被垃圾回收的數據對象有複製關係的數據對象;前進到步驟S308,流程結束。如果判斷結果為是,則在步驟S303,利用從其它節點伺服器接收的可被垃圾回收的數據對象的標識信息對與所述可被垃圾回收的數據對象有複製關係的數據對象進行垃圾回收;前進到步驟S304,將從其它節點伺服器接收的可被垃圾回收的數據對象的標識信息刪除,流程結束。如果空間釋放之後,空閒的內存空間仍然過少或者連續空閒內存空間仍然不夠用,則垃圾回收還會繼續被觸發,又回到流程的起始步驟,在判斷不存在從其它節點伺服器接收的可被垃圾回收的數據對象的標識信息的情況,流程前進到判斷結果為否的分支,開始步驟S305-S309。根據本發明的一個實施例,描述利用標記清除方法(Mark-Swe印)對節點伺服器的數據對象進行垃圾回收的過程,標記清除方法在運行的過程中分為三個階段標記階段、 清除階段和壓縮階段。響應於垃圾回收被觸發,根據本發明實施例的方法可以節省標記階段的操作,而直接利用從其它節點伺服器接收的可被垃圾回收的數據對象的標識信息進行清除操作,根據本發明的一個實施例,可被垃圾回收的數據對象的標識信息可以是可回收數據對象的內存地址信息,垃圾回收器直接將可回收數據對象的內存地址的內存空間釋放掉。根據本發明的另一個實施例,可被垃圾回收的數據對象的標識信息可以是可回收數據對象在主節點伺服器和備份節點伺服器的全局唯一標識,則在其它節點伺服器上建立內存地址映射表,其中記錄了所述節點伺服器包含的數據對象的全局唯一標識與所述數據對象的內存地址之間的映射關係,在內存地址映射表查找到該全局唯一標識所對應的數據對象的內存地址,進一步,垃圾回收器將所有可回收數據對象的內存地址的內存空間釋放掉,最後在壓縮階段將離散凌亂分布的對象放到內存中的連續地址。根據本發明的另一個實施例,描述利用標記拷貝方法(Mark-Copy)對節點伺服器的數據對象進行垃圾回收的過程,JVM將所管理的內存空間一分為二,當內存空間使用到一半時,垃圾回收器被激活進行垃圾回收,根據本發明實施例的方法,不必對數據對象進行標記操作,而是直接利用從其它節點伺服器接收的可被垃圾回收的數據對象的標識信息進行拷貝操作,根據本發明的一個實施例,可被垃圾回收的數據對象的標識信息可以是可回收數據對象的內存地址信息,垃圾回收器將可回收數據對象的內存地址以外的內存地址上的所有存活的對象拷貝至另一半未使用的內存空間,並在另一半空間上繼續分配內存,而前一半空間轉為空閒空間作為下一次垃圾回收的目標空間。根據本發明的另一個實施例,可被垃圾回收的數據對象的標識信息可以是可回收數據對象在主節點伺服器和備份節點伺服器的全局唯一標識,則在其它節點伺服器上維護的內存地址映射表查找到該全局唯一標識所對應的數據對象的內存地址,垃圾回收器將可回收數據對象的內存地址以外的內存地址上的所有存活的對象拷貝至另一半未使用的內存空間。圖4示出根據本發明的實施例內存複製系統進行垃圾回收的實例,其中內存複製系統包括四個節點伺服器,節點伺服器1上有四個數據對象a、b、c和d,在節點伺服器2上備份有數據對象a和c,在節點伺服器3上備份有數據對象a、b和c,備份節點伺服器4上備份有數據對象b、c和d,內存複製系統在各個節點伺服器上創建有數據對象標識表,如表 1所示,數據對象標識表記錄了內存複製系統中所有數據對象在各個節點伺服器的地址。響應於節點伺服器1的垃圾回收被觸發,判斷其上是否存在從其它節點伺服器接收的可被垃圾回收的數據對象的標識信息,響應於判斷結果為否,利用現有的垃圾回收機制將數據對象b和c回收掉,接著從數據對象標識表中查找到數據對象b和c在各個節點伺服器的地址信息,如表2所示,根據表2節點伺服器1分別將數據對象c的地址發送給節點伺服器2, 將數據對象b的地址發送給節點伺服器3,將數據對象b和c的地址發送給節點伺服器4, 節點伺服器2、3和4將節點伺服器1接收的可回收數據對象的標識信息保存起來,在節點伺服器2、3和4的垃圾回收被觸發時,判斷其上是否存在從其它節點伺服器接收的可被垃圾回收的數據對象的標識信息,響應於判斷結果為是,不必進行垃圾回收的標記操作,可以直接將可回收數據對象的內存地址的內存空間釋放掉,完成垃圾回收,從而節省了進行標記操作的計算資源和時間開銷,提高了內存複製系統進行垃圾回收的效率。
對象節點伺服器1節點伺服器2節點伺服器3節點伺服器4a<3,0x04381029)bCd
表權利要求
1.一種用於內存複製系統的節點伺服器進行垃圾回收的方法,該方法包括響應於垃圾回收被觸發,判斷是否存在從內存複製系統的其它節點伺服器接收的可被垃圾回收的數據對象的標識信息;響應於判斷結果為是,利用從內存複製系統的其它節點伺服器接收的可被垃圾回收的數據對象的標識信息對所述可被垃圾回收的數據對象進行垃圾回收。
2.根據權利要求1所述的方法,進一步包括在將所述可被垃圾回收的數據對象進行垃圾回收之後將從內存複製系統的其它節點伺服器接收的可被垃圾回收的數據對象的標識信息刪除。
3.根據權利要求1或2所述的方法,進一步包括響應於判斷結果為否,對所述內存複製系統的節點伺服器的數據對象進行垃圾回收;獲取垃圾回收過程中可被垃圾回收的數據對象的標識信息;以及將所述可被垃圾回收的數據對象的標識信息發送至包含有所述可被垃圾回收的數據對象的內存複製系統的其它節點伺服器。
4.根據權利要求3所述的方法,其中獲取垃圾回收過程中可被垃圾回收的數據對象的標識信息進一步包括建立包含有內存複製系統中的數據對象在內存複製系統的各個節點伺服器的標識信息的數據對象標識表;以及在所述數據對象標識表中查找所述可被垃圾回收的數據對象在內存複製系統的其它節點伺服器的標識信息。
5.根據權利要求1所述的方法,其中所述可被垃圾回收的數據對象的標識信息包括所述可被垃圾回收的數據對象在所述內存複製系統的節點伺服器的內存地址。
6.根據權利要求5所述的方法,其中利用從內存複製系統的其它節點伺服器接收的可被垃圾回收的數據對象的標識信息對所述可被垃圾回收的數據對象進行垃圾回收進一步包括釋放所述可被垃圾回收的數據對象在所述內存複製系統的節點伺服器的內存地址對應的內存空間。
7.根據權利要求1所述的方法,其中所述可被垃圾回收的數據對象的標識信息包括可被垃圾回收的數據對象的全局唯一標識。
8.根據權利要求7所述的方法,其中利用從內存複製系統的其它節點伺服器接收的可被垃圾回收的數據對象的標識信息對所述可被垃圾回收的數據對象進行垃圾回收進一步包括建立內存地址映射表,其中記錄有所述內存複製系統的節點伺服器包含的數據對象的全局唯一標識與所述數據對象的內存地址之間的映射關係;在內存地址映射表中查找所述全局唯一標識所對應的可被垃圾回收的數據對象的內存地址;以及釋放所述可被垃圾回收的數據對象在所述內存複製系統的節點伺服器的內存地址對應的內存空間。
9.一種用於內存複製系統的節點伺服器進行垃圾回收的系統,該系統包括判斷裝置,被配置為響應於垃圾回收被觸發,判斷是否存在從內存複製系統的其它節點伺服器接收的可被垃圾回收的數據對象的標識信息;以及垃圾回收輔助裝置,被配置為響應於判斷結果為是利用從內存複製系統的其它節點伺服器接收的可被垃圾回收的數據對象的標識信息對所述可被垃圾回收的數據對象進行垃圾回收。
10.根據權利要求9所述的系統,進一步包括刪除裝置,被配置為在將所述可被垃圾回收的數據對象進行垃圾回收後將從內存複製系統的其它節點伺服器接收的可被垃圾回收的數據對象的標識信息刪除。
11.根據權利要求9或10所述的系統,其中響應於所述判斷裝置的判斷結果為否,所述系統進一步包括垃圾回收裝置,被配置為對所述內存複製系統的節點伺服器的數據對象進行垃圾回收;獲取裝置,被配置為獲取垃圾回收過程中可被垃圾回收的數據對象的標識信息;以及發送裝置,被配置為將所述可被垃圾回收的數據對象的標識信息發送至包含有所述可被垃圾回收的數據對象的內存複製系統的其它節點伺服器。
12.根據權利要求11所述的系統,其中獲取裝置進一步被配置為建立包含有內存複製系統中的數據對象在內存複製系統的各個節點伺服器的標識信息的數據對象標識表;以及在所述數據對象標識表中查找所述可被垃圾回收的數據對象在內存複製系統的其它節點伺服器的標識信息。
13.根據權利要求9所述的系統,其中所述可被垃圾回收的數據對象的標識信息包括所述可被垃圾回收的數據對象在所述內存複製系統的節點伺服器的內存地址。
14.根據權利要求13所述的系統,其中垃圾回收輔助裝置進一步被配置為釋放所述可被垃圾回收的數據對象在所述內存複製系統的節點伺服器的內存地址對應的內存空間。
15.根據權利要求9所述的系統,其中所述可被垃圾回收的數據對象的標識信息包括可被垃圾回收的數據對象的全局唯一標識。
16.根據權利要求15所述的系統,其中垃圾回收輔助裝置進一步被配置為建立內存地址映射表,其中記錄有所述內存複製系統的節點伺服器包含的數據對象的全局唯一標識與所述數據對象的內存地址之間的映射關係;在所述內存地址映射表中查找所述全局唯一標識所對應的可被垃圾回收的數據對象的內存地址;以及釋放所述可被垃圾回收的數據對象在所述內存複製系統的節點伺服器的內存地址對應的內存空間。
全文摘要
本發明提供一種用於內存複製系統進行垃圾回收的方法和系統,其中所述內存複製系統包括多個節點伺服器,並且將一個節點伺服器中的數據對象複製並分發到一個或多個其它節點伺服器,該方法包括響應於垃圾回收被觸發,判斷是否存在從內存複製系統的其它節點伺服器接收的可被垃圾回收的數據對象的標識信息;響應於判斷結果為是,利用從內存複製系統的其它節點伺服器接收的可被垃圾回收的數據對象的標識信息對所述可被垃圾回收的數據對象進行垃圾回收。
文檔編號G06F12/02GK102262591SQ201010192518
公開日2011年11月30日 申請日期2010年5月31日 優先權日2010年5月31日
發明者史巨偉, 李立, 田瑞雄, 趙邑新 申請人:國際商業機器公司

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀