亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

數(shù)據(jù)庫連接的分配方法和裝置的制造方法

文檔序號:9750806閱讀:540來源:國知局
數(shù)據(jù)庫連接的分配方法和裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本申請涉及信息技術(shù)領(lǐng)域,尤其涉及一種數(shù)據(jù)庫連接的分配方法和裝置。
【背景技術(shù)】
[0002]進(jìn)程要獲取數(shù)據(jù)庫中的數(shù)據(jù),首先需要為進(jìn)程分配數(shù)據(jù)連接。相關(guān)技術(shù)中,進(jìn)程可以在數(shù)據(jù)庫連接池中獲取數(shù)據(jù)庫連接,在并發(fā)獲取時(shí),為了避免同一個(gè)數(shù)據(jù)庫連接被多個(gè)進(jìn)程獲取,在一個(gè)進(jìn)程獲取數(shù)據(jù)庫連接時(shí),需要進(jìn)行加鎖。但是,加鎖會造成一定的性能下降。

【發(fā)明內(nèi)容】

[0003]本申請旨在至少在一定程度上解決相關(guān)技術(shù)中的技術(shù)問題之一。
[0004]為此,本申請的一個(gè)目的在于提出一種數(shù)據(jù)庫連接的分配方法,該方法可以在并發(fā)獲取數(shù)據(jù)庫連接時(shí)減少加鎖,從而提高獲取數(shù)據(jù)庫連接的性能。
[0005]本申請的另一個(gè)目的在于提出一種數(shù)據(jù)庫連接的分配裝置。
[0006]為達(dá)到上述目的,本申請第一方面實(shí)施例提出的數(shù)據(jù)庫連接的分配方法,包括:獲取要與數(shù)據(jù)庫建立連接的進(jìn)程的信息;根據(jù)所述進(jìn)程的信息,確定需要的數(shù)據(jù)庫連接所在的數(shù)據(jù)庫連接集合數(shù)組中的數(shù)據(jù)庫連接集合的位置信息,所述數(shù)據(jù)庫連接集合數(shù)組包括至少兩個(gè)數(shù)據(jù)庫連接集合;如果所述位置信息對應(yīng)的數(shù)據(jù)庫連接集合中存在空閑的數(shù)據(jù)庫連接,則將所述空閑的數(shù)據(jù)庫連接分配給所述進(jìn)程。
[0007]本申請第一方面實(shí)施例提出的數(shù)據(jù)庫連接的分配方法,通過根據(jù)所述進(jìn)程的信息,確定需要的數(shù)據(jù)庫連接所在的數(shù)據(jù)庫連接集合數(shù)組中的數(shù)據(jù)庫連接集合的位置信息,由于數(shù)據(jù)庫連接集合數(shù)組中包括至少兩個(gè)數(shù)據(jù)庫連接集合,可以盡量將進(jìn)程分配到不同的數(shù)據(jù)庫連接集合中,從而減少在同一個(gè)數(shù)據(jù)庫連接集合中并發(fā)的進(jìn)程的數(shù)量,也就減少加鎖的次數(shù),甚至不需要加鎖,提高獲取數(shù)據(jù)庫連接的性能。
[0008]為達(dá)到上述目的,本申請第二方面實(shí)施例提出的數(shù)據(jù)庫連接的分配裝置,包括:獲取模塊,用于獲取要與數(shù)據(jù)庫建立連接的進(jìn)程的信息;確定模塊,用于根據(jù)所述進(jìn)程的信息,確定需要的數(shù)據(jù)庫連接所在的數(shù)據(jù)庫連接集合數(shù)組中的數(shù)據(jù)庫連接集合的位置信息,所述數(shù)據(jù)庫連接集合數(shù)組包括至少兩個(gè)數(shù)據(jù)庫連接集合;第一分配模塊,用于如果所述位置信息對應(yīng)的數(shù)據(jù)庫連接集合中存在空閑的數(shù)據(jù)庫連接,則將所述空閑的數(shù)據(jù)庫連接分配給所述進(jìn)程。
[0009]本申請第二方面實(shí)施例提出的數(shù)據(jù)庫連接的分配裝置,通過根據(jù)所述進(jìn)程的信息,確定需要的數(shù)據(jù)庫連接所在的數(shù)據(jù)庫連接集合數(shù)組中的數(shù)據(jù)庫連接集合的位置信息,由于數(shù)據(jù)庫連接集合數(shù)組中包括至少兩個(gè)數(shù)據(jù)庫連接集合,可以盡量將進(jìn)程分配到不同的數(shù)據(jù)庫連接集合中,從而減少在同一個(gè)數(shù)據(jù)庫連接集合中并發(fā)的進(jìn)程的數(shù)量,也就減少加鎖的次數(shù),甚至不需要加鎖,提高獲取數(shù)據(jù)庫連接的性能。
[0010]本申請附加的方面和優(yōu)點(diǎn)將在下面的描述中部分給出,部分將從下面的描述中變得明顯,或通過本申請的實(shí)踐了解到。
【附圖說明】
[0011]本申請上述的和/或附加的方面和優(yōu)點(diǎn)從下面結(jié)合附圖對實(shí)施例的描述中將變得明顯和容易理解,其中:
[0012]圖1是本申請一實(shí)施例提出的數(shù)據(jù)庫連接的分配方法的流程示意圖;
[0013]圖2是本申請另一實(shí)施例提出的數(shù)據(jù)庫連接的分配方法的流程示意圖;
[0014]圖3是本申請另一實(shí)施例提出的數(shù)據(jù)庫連接的分配裝置的結(jié)構(gòu)示意圖;
[0015]圖4是本申請另一實(shí)施例提出的數(shù)據(jù)庫連接的分配裝置的結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0016]下面詳細(xì)描述本申請的實(shí)施例,所述實(shí)施例的示例在附圖中示出,其中自始至終相同或類似的標(biāo)號表示相同或類似的元件或具有相同或類似功能的元件。下面通過參考附圖描述的實(shí)施例是示例性的,僅用于解釋本申請,而不能理解為對本申請的限制。相反,本申請的實(shí)施例包括落入所附加權(quán)利要求書的精神和內(nèi)涵范圍內(nèi)的所有變化、修改和等同物。
[0017]圖1是本申請一本實(shí)施例提出的數(shù)據(jù)庫連接的分配方法的流程示意圖,該方法包括:
[0018]Sll:獲取要與數(shù)據(jù)庫建立連接的進(jìn)程的信息;
[0019]其中,進(jìn)程的信息可以是指進(jìn)程的編號,例如,進(jìn)程要獲取數(shù)據(jù)庫連接時(shí),可以向分配裝置發(fā)送請求消息,該請求消息中包含進(jìn)程的編號,分配裝置從該請求消息中獲取進(jìn)程的編號。
[0020]S12:根據(jù)所述進(jìn)程的信息,確定需要的數(shù)據(jù)庫連接所在的數(shù)據(jù)庫連接集合數(shù)組中的數(shù)據(jù)庫連接集合的位置信息,所述數(shù)據(jù)庫連接集合數(shù)組包括至少兩個(gè)數(shù)據(jù)庫連接集合。
[0021]其中,可以預(yù)先建立數(shù)據(jù)庫連接集合數(shù)組,數(shù)據(jù)庫連接集合數(shù)組中包括至少兩個(gè)數(shù)據(jù)庫連接集合,再根據(jù)進(jìn)程的編號確定對應(yīng)的數(shù)據(jù)庫連接集合的位置信息。
[0022]可選的,所述根據(jù)所述進(jìn)程的信息,確定需要的數(shù)據(jù)庫連接所在的數(shù)據(jù)庫連接集合數(shù)組中的數(shù)據(jù)庫連接集合的位置信息,包括:
[0023]將所述進(jìn)程的編號對所述數(shù)據(jù)庫連接集合數(shù)組包括的數(shù)據(jù)庫連接集合的總個(gè)數(shù)進(jìn)行取模運(yùn)算,得到取模后的數(shù)值;
[0024]將所述取模后的數(shù)值對應(yīng)的位置信息,確定為所述需要的數(shù)據(jù)庫連接所在的數(shù)據(jù)庫連接集合數(shù)組中的數(shù)據(jù)庫連接集合的位置信息。
[0025]例如,數(shù)據(jù)庫連接集合包括第一連接集合,第二連接集合,第三連接集合,考慮到取模后的值是從O開始,那么進(jìn)程編號也可以從O開始,且數(shù)據(jù)庫連接集合的序號也從O開始,從而找到對應(yīng)的集合,例如,第一進(jìn)程的編號是0,由于取模后的數(shù)值是0,則該第一進(jìn)程的編號對應(yīng)的位置信息是0,對應(yīng)的數(shù)據(jù)庫連接集合是第一連接集合,類似的,當(dāng)進(jìn)程的編號是I時(shí),則對應(yīng)的集合是第二連接集合??梢岳斫獾氖?,假設(shè)進(jìn)程的編號是從I開始,則可以將編號減I后再取模,確定對應(yīng)的集合。
[0026]S13:如果所述位置信息對應(yīng)的數(shù)據(jù)庫連接集合中存在空閑的數(shù)據(jù)庫連接,則將所述空閑的數(shù)據(jù)庫連接分配給所述進(jìn)程。
[0027]例如,第一進(jìn)程的編號對應(yīng)的數(shù)據(jù)庫連接集合是第一連接集合,則如果第一連接集合中存在空閑的數(shù)據(jù)庫連接,則將空閑的數(shù)據(jù)庫連接分配給第一進(jìn)程。
[0028]本實(shí)施例通過根據(jù)所述進(jìn)程的信息,確定需要的數(shù)據(jù)庫連接所在的數(shù)據(jù)庫連接集合數(shù)組中的數(shù)據(jù)庫連接集合的位置信息,由于數(shù)據(jù)庫連接集合數(shù)組中包括至少兩個(gè)數(shù)據(jù)庫連接集合,可以盡量將進(jìn)程分配到不同的數(shù)據(jù)庫連接集合中,從而減少在同一個(gè)數(shù)據(jù)庫連接集合中并發(fā)的進(jìn)程的數(shù)量,也就減少加鎖的次數(shù),甚至不需要加鎖,提高獲取數(shù)據(jù)庫連接的性能。
[0029]圖2是本申請一本實(shí)施例提出的數(shù)據(jù)庫連接的分配方法的流程示意圖,該方法包括:
[0030]S201:初始化,所述初始化包括:設(shè)置數(shù)據(jù)庫連接集合數(shù)組,所述數(shù)據(jù)庫連接集合數(shù)組由至少兩個(gè)數(shù)據(jù)庫連接集合組成,設(shè)置每個(gè)數(shù)據(jù)庫連接集合中包含的最小連接數(shù)量和最大連接數(shù)量,并在每個(gè)數(shù)據(jù)庫連接集合中創(chuàng)建數(shù)量為所述最小連接數(shù)量的數(shù)據(jù)庫連接。
[0031]其中,可以預(yù)先設(shè)置數(shù)據(jù)庫連接集合的個(gè)數(shù),并設(shè)置每個(gè)集合中創(chuàng)建的數(shù)據(jù)庫連接的最小個(gè)數(shù)。
[0032]在初始化時(shí),可以建立預(yù)設(shè)個(gè)數(shù)的數(shù)據(jù)庫連接集合,并在每個(gè)數(shù)據(jù)庫連接集合中創(chuàng)建最小個(gè)數(shù)的數(shù)據(jù)庫連接。
[0033]通過創(chuàng)建最小個(gè)數(shù)的數(shù)據(jù)庫連接,可以盡量降低資源開銷。
[0034]在進(jìn)程請求數(shù)據(jù)庫連接的請求開始后,可以執(zhí)行如下步驟:
[0035]S202:獲取進(jìn)程的編號,并根據(jù)進(jìn)程的編號確定對應(yīng)的數(shù)據(jù)庫連接集合。
[0036]例如,根據(jù)進(jìn)程的編號和數(shù)據(jù)庫連接集合的總數(shù)取模,
當(dāng)前第1頁1 2 3 4 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1