另外的實施例”。其他術語的定義將在下文描述中給出。
[0024]圖2示出了根據本發明的實施例的用于系統中的資源預配置的方法200的流程圖。在此使用的術語“系統”包括在物理或者虛擬機器上運行以用于執行和管理事務的任何系統,包括硬件系統、軟件系統或其組合。系統的示例包括但不限于以下一個或多個=DBMS系統,服務器管理系統,文件系統,交易管理系統,存儲管理系統,等等。將會理解,本發明的實施例可以適用于任何目前已知的還是將來開發的系統。
[0025]方法200開始于步驟S210,在此獲取關于資源的配置信息,該資源預計隨后將在該系統上執行的事務使用。為討論方便起見,在下文描述中,將把所考慮的系統稱為“目標系統”。
[0026]根據本發明的實施例,資源配置信息的獲取可以在多種情況下被觸發。例如,在某些實施例中,在步驟S210處,資源的配置信息是響應于目標系統的啟動而被獲取的。在本公開內容的上下文中,術語“啟動”既包括目標系統的正常啟動,也包括目標系統在異常停機(例如,由于故障、斷電等等原因)之后的重啟或重置。
[0027]如上所述,傳統上當目標系統剛剛被啟動之后,需要經歷一段時間的“預熱”。在此期間,被加載到目標系統上執行的事務所需使用的資源尚未經過配置。例如,需要使用的文件未被打開,存儲塊未被設置,用于處理資源競爭的鎖未被獲取,等等。因此,第一批事務不得不完成對這些底層資源的配置,并且因此影響執行效率。
[0028]為解決該問題,在某些實施例中,在步驟S210處,目標系統可以啟動過程中主動地獲取關于一個或多個資源的配置信息。如上所述,這些資源預計將在系統的啟動過程完成之后由系統上執行的事務使用。特別地,與傳統方案不同的是,根據本發明的實施例,在步驟S210處獲得的是預計隨后將被事務使用的、獨立于事務的資源的配置信息,而不僅僅限于系統或事務本身的狀態。
[0029]根據本發明的實施例,預計將被使用的資源及其配置信息可以通過多種不同的方式獲得。例如,在一個實施例中,在步驟S210處,目標系統可以從不同于目標系統的一個或多個其他系統(稱為“參考系統”)獲取資源的配置信息。例如,在一個實施例中,參考系統可以是與目標系統處于相同集群中的其他系統。
[0030]參考系統與目標系統可以通過任何適當的方式通信。例如,在一個實施例中,目標系統與參考系統可以位于不同的物理機器上。此時,可以借助于例如局域網、因特網等網絡通信機制來實現系統之間的通信。備選地或附加地,目標系統與參考系統可以位于相同的物理機器上。此時,可以借助于進程間通信、程序間通信之類的內部通信機制來實現系統之間的通信。
[0031]為了從參考服務器獲得關于資源的配置信息,在一個實施例中,當目標系統啟動之后,它可以向一個或多個參考系統發送請求。作為響應,接收到該請求的每個參考系統可以將該參考系統上目前執行的事務正在使用的資源以及這些資源的配置信息返回給目標系統。例如,參考系統可以確定目前被打開的文件、所創建的存儲塊的內容信息、對文件和/或其他資源所應用的共享鎖,等等。這些配置信息可以利用任何適當的格式來組織,包括但不限于列表、可擴展標記語言(XML)文件、配置文件,等等。而后,參考系統可以將資源配置信息作為響應消息返回給目標系統。相應地,在步驟S210處,目標系統可以從接收到的響應消息中解析資源配置信息。
[0032]在某些實施例中,參考系統是能夠與目標系統通信的任何其他系統。備選地,為了進一步提高預配置的準確性,可以事先從多個可用的候選系統中選擇適當的參考系統。例如,在一個實施例中,可以基于系統的特性(characteristics)來選擇參考系統,使得目標系統和參考系統具有相同或者相似的特性。
[0033]在此使用的術語“特性”是指描述系統的業務特征的屬性。例如,在一個實施例中,特性可以包括系統的工作負載(workload)。具體而言,在此實施例中,可以選擇與目標系統執行相同或者相似工作負載的一個或多個系統來充當參考系統。例如,如果目標系統主要是負責文件管理的系統,則可以選擇同樣負責文件管理的系統作為參考系統,而排除例如DBMS之類用于其它工作負載的系統。可以理解,當工作負載相同或者相似時,目標系統和參考系統上的事務使用相同或相似資源的概率也將相應增加。這樣,由參考系統提供的資源配置信息對于目標系統的參考價值將會更大。
[0034]備選地或附加地,在選擇參考系統時,還可以考慮目標服務器和/或參考服務器的任務類型。可以理解,即使對于處理相同工作負載的多個系統而言,任務類型或者說分工也可能不同。例如,在一個集群中,某些系統可能被用于完成不同于其他系統的特定任務。作為示例,某些系統可能負責特定時間段(例如,工作時間)內的業務處理,而另一些系統則負責在特定時間段(例如,夜間)內完成數據備份。具有不同任務類型的系統之間所使用的資源很可能具有較大差異。因此,在一個實施例中,可以僅向具有相同或者相似任務類型的其他系統請求資源的配置信息。
[0035]在實現中,目標系統可以維護具有相同或者相似工作負載和/或任務類型的其他系統的列表。在一個實施例中,這樣的列表可由與各個系統相關聯的控制器生成和更新。備選地或附加地,列表也可由用戶以人工方式生成和更新。當目標系統啟動時,可以訪問該列表,并且從列表中讀取參考系統以便發送針對資源配置信息的請求。
[0036]注意,工作負載和任務類型僅僅是系統特性的示例,并非意在限制本發明的范圍。在備選實施例中,可以考慮任何備選的或附加的特性來確定參考系統,例如系統所在機器的計算能力、存儲能力、網絡狀況,等等。
[0037]另外,根據本發明的實施例,目標系統可以從不止一個參考系統接收這些參考系統各自正在使用的資源(稱為“候選資源”)的配置信息。在一個實施例中,目標系統可以保存接收到的所有候選資源的配置信息。相應地,所有這些候選資源都將在目標系統處被預先配置。
[0038]備選地,也可以從多個參考系統發送的這些候選資源中,確定或者預測哪些資源可能將被目標系統上執行的事務使用。相應地,在步驟S210,可以僅保留這些資源的配置信息。根據本發明的實施例,可以基于各種預定的標準,從多個候選資源中選擇將要在目標系統處配置的資源。
[0039]例如,在一個實施例中,可以基于“投票”機制來預測可能被使用的資源。具體而言,如果一個候選資源被超過預定數目的參考系統使用,則可以確定該資源可能也將在目標系統中被使用。反之,如果某個候選資源僅被一個或者少數幾個參考系統所使用,則這種資源可能具有一定的特殊性。相應地,目標系統可以丟棄關于該候選資源的配置信息。以此方式,可以有效地避免由于配置不必要的資源而增加目標系統負擔或者延長預配置時間。
[0040]僅僅出于說明目的,以文件為例討論一個具體示例。假設目標系統從N個參考系統接收資源配置信息,并且預定的投票閾值為M,其中N和M均為自然數,并且M小于或等于N。每個參考系統指出當前在該參考系統上被打開和使用的文件。只有當某個文件在M或者M個以上的參考系統中都被打開和使用時,關于該文件的信息才被目標系統保留。
[0041]除了投票之外或者作為備選,可以基于其他標準從來自多個參考服務器的候選資源中確定可能在目標系統處被使用的資源。例如,可以向不同的參考服務器指派不同的權重。權重可以基于各種因素來確定,包括但不限于:目標系統與參考系統之間的工作負載相似度、任務類型相似度、機器計算能力的相似度、網絡聯通狀況的相似度,等等。權重也可以由用戶設置和/或修改。由此,在一個實施例中,由權重超過預定閾值的參考服務器所指定的一個或多個候選資源將被選擇。相應地,在步驟S210處,可以保留關于這些資源的配置信息。
[0042]通過從參考系統獲取資源的配置信息,有利于準確地預先配置目標系統處的資源。然而,在某些情況下,目標系統可能無法從其他系統獲得有價值的資源配置信息。例如,集群中可能不存在與目標系統具有相同或者相似工作負載或者任務類型的參考系統。作為示例,目標系統的任務類型(例如,數據備份)可能與可訪問的所有其他系統的任務類型(例如,業務處理)均不相同,