新四季網

用於減少伺服器/資料庫系統中鎖定發生的方法和系統與流程

2023-07-29 19:34:46


本發明一般地涉及資料庫系統的領域,特別涉及伺服器訪問資料庫的資料庫系統。更具體地,本發明涉及用於限制資料庫系統中並發請求的數目並且因此減少伺服器/資料庫系統中鎖定發生的方法和系統。

背景技術:
在傳統客戶端-伺服器架構中,一個或多個節點經由允許客戶端和伺服器之間的雙向通信的網絡連接到一個或多個伺服器。典型地,伺服器接收來自多個源的請求,並且根據規定的處理方案處理它們。更通常地,使用先進先出(FIFO)方法,允許首先接收的請求由伺服器首先處理,第二接收的請求第二處理,以此類推。在資料庫系統中,使用隊列處理客戶端的進入請求,以便組織請求的順序排列。基於發送到伺服器的請求和請求客戶端從伺服器接收響應的時間之間的延遲,建立給定客戶端-伺服器架構中的服務質量。伺服器上的負荷越高,接收響應的延遲更可能增加。在許多情況下,客戶端具有內建機制,其使用「超時」設施,以避免對於要回答的請求等待長時間段。在這樣的情況下,中止請求,並且即使結果從伺服器指向請求客戶端,請求客戶端也忽視結果,或者不能接收它們,由於連接已經由客戶端終止。在一些應用中,客戶端生成另一請求,期待該請求將在分配的時間幀內被回答。該方案可能導致伺服器隊列的額外負荷,從而導致伺服器的響應時間的額外延遲。在大的資料庫環境中,其中許多客戶端連接到伺服器發送要處理並推送到資料庫的請求,資料庫操作可能變為瓶頸,並且影響整體系統性能。當系統性能降低時,客戶端不能連接到伺服器。典型地,它們試圖稍後獲得連接,即,伺服器連接的數目增加。這導致螺旋式下跌,因為伺服器具有許多進入連接,使得由消耗資源的鎖定處理降低資料庫性能。不良的資料庫性能導致請求處理延遲,其轉而增加要處理的並發請求的數目。此外,因為觸發了超時,所以伺服器上長時間等待的請求可能被視為失敗,即使它最終被伺服器處理。因此,有利的是具有用於處理客戶端-伺服器環境中的過載情況的機制。更具體地,有利的是具有主動避免超時情況並且允許系統實現最大吞吐量的機制。

技術實現要素:
本發明實施例的目的是提供改進的計算機實施的方法、計算機可讀介質和計算機系統,用於限制資料庫系統中並發請求的數目。通過獨立權利要求的特徵解決該目的。在從屬權利要求中給出優選實施例。如果沒有另外明確指示,本發明的實施例可以相互自由組合。在一個方面中,本發明涉及一種用於限制資料庫系統中並發請求的數目的計算機實施的方法,所述方法包括以下步驟:-在至少一個隊列中排列要由所述資料庫系統處理的請求;-限定對應於所述至少一個隊列的並發請求的最大值;-監視對應於所述至少一個隊列的至少一個隊列利用參數,並且基於所述至少一個隊列利用參數計算性能值;-基於所述性能值,動態調整所述至少一個隊列的並發請求的最大值,以便改進系統性能,以及-基於動態調整的最大值,動態限制所述至少一個隊列的並發請求的數目。例如,至少一個隊列利用參數是請求的平均處理時間、服務的請求的數目、被拒絕請求的數目、在特定時間段中相對於請求的總數目的被拒絕請求的比率或者基於組合至少兩個上述參數的計算的參數等。此外,可以從關於處理請求所需要時間的統計分布的信息(例如,最小處理時間、最大處理時間、處理時間的範圍、處理時間的偏差、處理時間的變化等)得到至少一個隊列利用參數。所述特徵可能是有利的,由於可能取決於資料庫伺服器的負荷,以其峰值性能運行資料庫系統。如果僅僅存在臨街負荷,即,性能因子低,那麼動態地增加並發的排隊請求的數目。相反地,如果系統性能劣化,那麼減少並發的排隊請求的數目,以便使得系統能夠處理請求而沒有請求的超時。根據優選實施例,將請求分組在至少兩個分組中,其中每個分組與專用隊列和並發請求的隊列特定最大值相關聯。特別在具有大數目的進入的請求的環境中,由鎖定處理消耗資料庫性能。優選地,根據相互鎖定的可能性在分組中排列請求。更可能相互鎖定的請求將分配到相同分組。相反地,具有低的相互鎖定的可能性的請求將分配到不同分組。例如,還可以根據觸發請求的服務的服務ID,根據分析異常堆棧以識別幹擾服務的學習機制等進行分組。根據優選實施例,通過在插入隊列之前拒絕進入的請求和/或通過將請求移出隊列,限制並發請求的數目。優選地,僅以小的步伐改變並發請求的數目,以便以平滑的方式調整當前系統性能。通過在插入隊列之前拒絕進入的請求進行。如果鎖定超時事件出現,那麼系統性能將迅速上升。因此,減少已經排隊的並發請求的數目,根據優選實施例,以便允許系統迅速上升。根據優選實施例,對於第一時間段計算所述性能值,其中所述第一時間段的所述性能值用於調整在第二時間段中的並發請求的最大值,所述第二時間段緊接在所述第一時間段之後。優選地,第一時間段的性能值與第二時間段的性能值相比較,以確定性能值的變化。為了動態地改進系統性能,性能值的變化用於調整並發請求的數目。根據優選實施例,通過計數信號量處理並發請求的最大值。使用計數信號量的有點在於可以同時處理各個隊列的狀態(開/關)以及並發請求的數目。從而可能確定分配到分組的進入的請求是否可以插入隊列或者必須被拒絕(開/關)。此外,可以從信號量讀取並發請求的最大值。根據優選實施例,選擇並發請求的最大值,以便最大化並發請求的數目與請求的平均處理時間的乘積。相對於並發請求的數目繪製並發請求的數目與請求的平均處理時間的乘積示出峰值。在該峰值處,實現最佳系統性能。因此,根據該峰值選擇並發請求的最大值。根據優選實施例,基於並發請求的最大值和請求的平均處理時間,動態調整至少一個隊列的最大長度。從而,不但改變插入隊列的請求的數目,而且改變隊列的總長度,以便對於當前系統性能調整隊列專用參數。根據優選實施例,在接收資料庫的鎖定超時之後,減小並發請求的最大值和至少一個隊列的最大長度,以便避免進一步的鎖定超時。通常,使用根據本發明的方法,相當不可能出現鎖定超時。然而,在鎖定超時事件出現之後,減小並發請求的數目和至少一個隊列的長度,使得系統能夠迅速上升,因此避免進一步的鎖定超時。在進一步的方面中,本發明涉及包括用其體現的計算機可讀程序代碼的計算機可讀介質,當由處理器執行所述計算機可讀程序代碼時,使得處理器執行根據上述實施例的任一的方法。在進一步的方面中,本發明涉及一種基於計算機的資料庫系統,包括用作資料庫客戶端的至少一個伺服器,包括:-調度器單元,適於在至少一個隊列中排列要由資料庫處理的請求;-監視單元,適於●限定要並發處理的對應於所述至少一個隊列的請求的最大值,●監視對應於所述至少一個隊列的至少一個隊列利用參數,並且基於所述至少一個隊列利用參數計算性能值,●基於所述性能值,動態調整所述至少一個隊列的並發請求的最大值,以便改進系統性能,以及-限制單元,適於基於動態調整的最大值,動態限制所述至少一個隊列的並發請求的數目。根據優選實施例,所述調度器單元適於將請求分組在至少兩個分組中,其中每個分組與專用隊列和並發請求的隊列特定最大值相關聯。根據優選實施例,所述調度器單元適於基於請求與分組中包含的其他請求鎖定的可能性、基於請求的起源或基於請求的服務類型,將請求分配到分組。根據優選實施例,所述系統適於通過在插入隊列之前拒絕進入的請求和/或通過將請求移出隊列,限制並發請求的數目。附圖說明以下,通過參照附圖,僅以示例的方式更詳細描述本發明的優選實施例。圖1示出基於客戶端-伺服器環境的資料庫系統。圖2示出具有要由伺服器處理的插入請求的隊列的示例。圖3示出根據本發明的伺服器的示意圖。圖4示出用於取決於當前系統性能動態限制請求的並發的流程圖。圖5示出用於基於系統性能動態調整(adapt)隊列屬性的流程圖。具體實施方式如本領域的技術人員將理解的,本發明的各方面可以體現為系統、方法或電腦程式產品。因此,本發明的各個方面可以具體實現為以下形式,即:完全的硬體實施方式、完全的軟體實施方式(包括固件、駐留軟體、微代碼等),或硬體和軟體方面結合的實施方式,這裡可以統稱為「電路」、「模塊」或「系統」。此外,在一些實施例中,本發明的各個方面還可以實現為在一個或多個計算機可讀介質中的電腦程式產品的形式,該計算機可讀介質中包含計算機可讀的程序代碼。可以採用一個或多個計算機可讀介質的任意組合。計算機可讀介質可以是計算機可讀信號介質或者計算機可讀存儲介質。計算機可讀存儲介質例如可以是——但不限於——電、磁、光、電磁、紅外線、或半導體的系統、裝置或器件,或者任意以上的組合。計算機可讀存儲介質的更具體的例子(非窮舉的列表)包括:具有一個或多個導線的電連接、可攜式計算機盤、硬碟、隨機存取存儲器(RAM)、只讀存儲器(ROM)、可擦式可編程只讀存儲器(EPROM或快閃記憶體)、光纖、可攜式緊湊盤只讀存儲器(CD-ROM)、光存儲器件、磁存儲器件、或者上述的任意合適的組合。在本文件中,計算機可讀存儲介質可以是任何包含或存儲程序的有形介質,該程序可以被指令執行系統、裝置或者器件使用或者與其結合使用。參照圖1,圖示了用於發送請求到資料庫5的客戶端-伺服器環境1的傳統架構。多個客戶端2a-2e連接到網絡3。此外,伺服器4也連接到網絡3。可以由若干子網絡構成的網絡3使得客戶端2a到2e和伺服器4相互通信。例如,客戶端2a通過網絡3發送請求到伺服器4,用於訪問資料庫5。伺服器4可以從多個客戶端接收多個請求,並且典型地以接收的順序處理它們,或者在其他情況下,根據預定的優先級策略處理它們。在伺服器4中排隊的請求等待它們轉為由伺服器4處理。一旦由伺服器4處理,對於請求的響應就發送到客戶端2a-2e。參照圖2,示出了由伺服器4處理的典型隊列10。隊列可以具有「QS」存儲單元(location)的深度,其中每個存儲單元能夠存儲由伺服器4在其排程處理之前的一個客戶端的請求。新的客戶端請求放置在隊列10中的第一可用位置(slot)。這意味著如果位置「1」到「3」由之前請求佔據,那麼新的客戶端請求將放置在位置「4」。類似地,如果填充隊列10直到並且包括位置「i-1」,那麼下一個要填充的位置是位置「i」。優選地,客戶端請求總是從隊列10中的第一位置(即,位置「1」)起佔據用於處理。當隊列10充滿時,即,位置「QS」被佔據時,伺服器4將拒絕從客戶端接收新的請求。為了避免因為消耗資源的鎖定處理和請求的超時和/或因為超過觸發請求從隊列移除的默認時間值的等待時間,系統性能的崩潰,依靠圖3到圖5說明調整並發請求的最大數目和至少一個隊列的最大長度的精細方式。圖3示出伺服器4的示意圖。伺服器4包括至少一個通信層41和數據訪問層42。由與通信層41相關聯的調度器43處理進入的請求20。為了避免不同請求之間的鎖定,進入的請求優選地分配到不同分組。調度器43執行進入的請求的分類以及到特定分組的分配。每個分組包括其自身的隊列,其中插入請求。存在用於分組進入的請求20的不同方式。最簡單的一個是僅存在一個分組,因為假定每個請求可能與任何其他請求鎖定。第二種方式是根據導致請求的服務分組請求。假定從特定服務進入的請求容易與來自相同服務的另一請求鎖定,並且當然不太可能與由另一服務導致的請求鎖定。遵循第二種方式,在通信服務ID和請求所分配到的分組之間存在關係。根據第三種更加先進的方式,在調度器43內實施學習機制。學習機制將分析異常堆棧,以發現為何出現特定異常。如果異常是因為請求的鎖定導致的,那麼可以確定相互幹擾的服務。目標是基於請求的起源和服務ID等,調查請求的鎖定的可能性。鎖定分組管理器44分配到請求的每個分組,即,分配到每個隊列。鎖定分組管理器44包括優選地連續測量分組的處理性能的測量單元。此外,並發請求的最大值SS分別與每個隊列或分組相關聯。優選地,使用計數信號量處理並發請求的最大值SS。可以對於其狀態(例如,開或關)以及對於其值(例如,並發請求的最大數目SS)測試信號量。從而可能確定分配到分組的進入的請求是否可以插入隊列(開或關),或者不得不被拒絕,並且額外地檢索並發請求的最大值SS。測量單元連續監視分配到各個分組的進入的請求的數目、至少一個隊列利用參數、隊列的長度以及被拒絕請求NoRR的數目。如上所述,至少一個隊列利用參數可以是請求的平均處理時間APT、服務的請求的數目、被拒絕請求的數目、在特定時間段中相對於請求的總數目的被拒絕請求的比率或者基於組合至少兩個上述參數的計算的參數等。此外,可以關於處理請求所需要時間的統計分布的信息(例如,最小處理時間、最大處理時間、處理時間的範圍、處理時間的偏差、處理時間的變化等)得到至少一個隊列利用參數。在本發明的以下實施例中,平均處理時間APT用作隊列利用參數。基於該之前時間段(下文中也稱為測量時段MP)的估計特性,確定導致平均處理時間APT和並發請求的數目SS的乘積(APT*SS)的最大值的並發請求的數目。資料庫系統領域的技術人員認識到存在平均處理時間APT和並發請求的數目SS的乘積的最適宜條件(optimum)。參數兩者相互影響。以小的並發請求的數目SS開始,當並發請求的數目SS上升時,平均處理時間APT僅受少量影響,但是在更大的並發請求的數目SS處,平均處理時間APT迅速減少。所以可以發現最適宜條件,在該最適宜條件並發請求的數目SS和平均處理時間APT的乘積具有其最大值。並發請求的最大值SS用於使得請求能夠被插入與分組相關聯的隊列中,其中請求由調度器43分配到分組。如果各個隊列中包含的請求的數目小於並發請求的最大值SS,那麼請求將排隊或立即被處理。否則,請求將被拒絕。此外,測量單元使用之前測量時段的估計特性MP(act)-ΔMP,推斷當前測量時段MP(act)的隊列大小QS的最大值。隊列大小QS的最大值限定可以包含在各個隊列中並且將在預定時段內得到處理的請求的最大數目。參照圖4,示出了用於調整影響各個分組的性能的隊列屬性的流程圖。通常使用初始值開始調整隊列屬性的處理30。那些初始值可以是預定參數值或之前運行的處理的推斷值。在測量時段MP中量化各個分組的處理時間,在測量時段MP期間收集關於分組性能的統計數據。測量時段MP持續時間ΔMP的時段。為了獲得可靠的統計數據,測量時段MP必須超過特定時間段。測量時段MP可以大於請求的平均處理時間APT,優選地大於並發請求的最大值SS與平均處理時間APT的乘積(SS*APT)。在以初始值開始30之後,在第一測量時段MP(act)期間收集關於分組處理性能的統計數據(步驟31)。從而,通過測量單元監視分配到各個分組的進入的請求的數目、平均處理時間APT、隊列的長度和被拒絕的連接的數目。此後,基於第一測量時段MP(act)的收集的統計數據,確定最佳的隊列值32。在進一步的處理步驟中,根據在步驟32中確定的最佳的隊列值,調整各個隊列的屬性(步驟33)。優選地,調整並發請求的最大值SS和隊列大小QS的最大值。此外,可以基於收集的統計數據,動態地調整測量時段MP的持續時間或進一步的處理參數。使用在第一測量時段MP期間確定的隊列具體屬性,在第二測量時段MP(MP(act)=MP(act)+ΔMP)中,在步驟31繼續調整隊列屬性的處理。圖5詳細示出基於在之前測量時段MP期間收集的統計數據,調整隊列屬性的例程。首先,檢查在當前測量時段MP(act)中被拒絕的請求NoRR的數目。如果不存在被拒絕的請求,則NoRR=0,即迅速地處理所有請求。如果在當前測量時段MP(act)期間拒絕請求,則之前測量時段MP(act-ΔMP)的性能因子PF與當前測量時段MP(act)的性能因子PF比較。性能因子PF是分組的當前處理性能的指示符。性能因子PF主要基於並發請求的最大值SS和平均處理時間APT計算。例如,可以由以下公式計算性能值:性能值還可以以更精細方式計算。為了示例的清楚起見,實施例僅監視請求的平均處理時間,但是在實際系統中,可能有利的是收集關於處理請求所需的統計數據分布的更多信息,例如最小值、最大值、範圍、偏差、變化等。那些值可以用於計算性能值的更精細方法。如果PF(MP(act-ΔMP))>PF(MP(act)),即分組性能相對於之前測量時段MP(act-ΔMP)降低,那麼並發請求的最大值SS可以減少(SS=SS-1),以降低伺服器的負荷。減少並發請求的最大值SS不立即減少各個隊列中的請求的數目。優選地,通過處理隊列中已經包含的請求而不插入進一步的請求直到隊列中包含的請求的數目小於並發請求的減小的最大值SS,緩慢減少請求的數目。如果PF(MP(act-ΔMP))<PF(MP(act)),即分組性能相對於之前測量時段MP(act-ΔMP)提升,那麼增加(SS=SS+1)並發請求的最大值SS,以提升伺服器的負荷,並且因此最優化系統性能。換句話說,進一步試圖增加要在基準時段內處理的請求的數目。在進一步的處理中,檢查是否其中QS是隊列的最大長度,在該長度處隊列的所有請求得到處理,而不導致超時,並且tdefault是其後導致超時的默認時間段。如果不等式為真,那麼減小隊列的最大長度QS以避免超時。如果則增加隊列的最大長度QS,以使得更多請求能夠插入隊列。通過重複根據圖5的例程,最優化並發請求的最大數目SS和隊列的最大長度QS,以實現最大的系統性能。為了對於由超過處理請求的時限導致的鎖定超時事件儘可能快地響應,使用鎖定超時檢測器45。鎖定超時檢測器45是緊急機制,其位於資料庫訪問層。鎖定超時檢測器45捕獲和分析鎖定超時事件(例如,SQL-Exception),並且確定取消哪個請求。隨後,提示處理請求的鎖定超時檢測器45調整各個隊列參數,以便避免進一步的超時。例如,隊列的最大長度QS和並發請求的最大數目SS顯著減少以抵消性能劣化。優選地,隊列的最大長度QS設為QS=0,並且並發請求的最大值SS設為SS=1。使得系統能夠處理小數目的請求,而不遭受鎖定超時。隨著系統性能提升,並發請求的數目也提升以實現最優化的系統性能,即,在連續的測量時段MP期間,參數將緩慢增加。儘管前述已經參照本發明的特定實施例,本領域的技術人員將理解,在這些實施例中可以進行改變而不背離本發明的原理和精神,本發明的範圍由權利要求所限定。

同类文章

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

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有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-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀