本發(fā)明屬于實(shí)時(shí)數(shù)據(jù)庫(kù)
技術(shù)領(lǐng)域:
,更具體地,設(shè)計(jì)一種多處理器實(shí)時(shí)系統(tǒng)中的更新事務(wù)分派方法。
背景技術(shù):
:數(shù)據(jù)是對(duì)現(xiàn)實(shí)事物的表示,數(shù)據(jù)價(jià)值已被人們所廣泛認(rèn)可;由于現(xiàn)實(shí)事物屬性的多變性,為了更好地進(jìn)行表示,數(shù)據(jù)庫(kù)系統(tǒng)中的數(shù)據(jù)往往具有有效期。為了實(shí)時(shí)反映現(xiàn)實(shí)事物信息,實(shí)時(shí)數(shù)據(jù)庫(kù)系統(tǒng)通過(guò)更新事務(wù)對(duì)數(shù)據(jù)進(jìn)行維護(hù),以確保數(shù)據(jù)的一致性。更新事務(wù)的及時(shí)完成是實(shí)時(shí)數(shù)據(jù)庫(kù)系統(tǒng)數(shù)據(jù)有效性、可用性的根本保證,而更新事務(wù)處理期間分派直接影響著事務(wù)的可調(diào)度性?,F(xiàn)有的更新事務(wù)分派方法考慮了處理器的低負(fù)載性,但在更新事務(wù)可調(diào)度性方面無(wú)法提供準(zhǔn)確保證;并且,現(xiàn)有的更新事務(wù)處理器間分派的研究多將應(yīng)用場(chǎng)景限制于EDF(EarliestDeadlineFirst)調(diào)度或DM(DeadlineMonotonic)調(diào)度,單一場(chǎng)景的研究模型的研究結(jié)果實(shí)用性較低,對(duì)于不確定調(diào)度方式的實(shí)時(shí)數(shù)據(jù)庫(kù)系統(tǒng)而言,更新事務(wù)處理期間分派方法的選擇具有一定難度。技術(shù)實(shí)現(xiàn)要素:針對(duì)現(xiàn)有技術(shù)的以上缺陷或改進(jìn)需求,本發(fā)明提供了一種多處理器實(shí)時(shí)系統(tǒng)中的更新事務(wù)分派方法,其目的在于在保證處理器低負(fù)載的同時(shí),提高更新實(shí)物分派的實(shí)時(shí)性。為實(shí)現(xiàn)上述目的,按照本發(fā)明的一個(gè)方面,提供了一種多處理器實(shí)時(shí)系統(tǒng)中的更新事務(wù)分派方法,包括如下步驟:(1)更新事務(wù)密度統(tǒng)計(jì):對(duì)每項(xiàng)更新事務(wù)的密度進(jìn)行統(tǒng)計(jì),生成更新事務(wù)密度表,并按照更新事務(wù)密度表根據(jù)應(yīng)用需求對(duì)實(shí)時(shí)更新數(shù)據(jù)進(jìn)行排序;(2)單項(xiàng)事務(wù)處理器間分派處理:根據(jù)更新事務(wù)的密度表將各項(xiàng)更新事務(wù)分派到處理器上,并生成更新事務(wù)分派表;(3)異常情況處理:當(dāng)更新事務(wù)分派出現(xiàn)異常無(wú)法完全分派時(shí),根據(jù)更新事務(wù)分派表的查詢結(jié)果獲取更新事務(wù)分派結(jié)果。優(yōu)選地,上述處理器實(shí)時(shí)系統(tǒng)中的更新事務(wù)分派方法,其步驟(1)具體包括如下子步驟:(1.1)獲得每項(xiàng)更新事務(wù)的執(zhí)行時(shí)間T1和樣本有效時(shí)間T2;(1.2)獲取每項(xiàng)更新事務(wù)的密度A=T1/T2;(1.3)統(tǒng)計(jì)生成更新事務(wù)密度表,并按照更新事務(wù)密度表根據(jù)應(yīng)用需求對(duì)實(shí)時(shí)更新數(shù)據(jù)進(jìn)行排序。優(yōu)選地,上述處理器實(shí)時(shí)系統(tǒng)中的更新事務(wù)分派方法,其步驟(2)具體包括如下子步驟:(2.1)遍歷處理器列表,找出各處理器上首個(gè)滿足(A+B)不大于1/2、且(A+B)不大于C/m的更新事務(wù),將所述更新事務(wù)分派到對(duì)應(yīng)的處理器;其中A為該項(xiàng)更新事務(wù)的密度,B為所選處理器當(dāng)前負(fù)載,C為更新事務(wù)總密度,m為處理器總數(shù);(2.2)對(duì)于每個(gè)處理器,找出各處理器上首個(gè)滿足(A+B)不大于1/2的更新事務(wù),并將其分派到該處理器上;(2.3)根據(jù)上述步驟(2.1)和(2.2)的更新事物與其所分派的處理器之間的對(duì)應(yīng)關(guān)系,生成更新事務(wù)分派表。優(yōu)選地,上述處理器實(shí)時(shí)系統(tǒng)中的更新事務(wù)分派方法,其步驟(3)具體為:遍歷原始更新事務(wù)集,查詢更新事務(wù)分派結(jié)束后是否存在尚未被分派的更新事務(wù),若是,則判定分派失??;若否,則根據(jù)分派結(jié)果生成更新事務(wù)分派表。總體而言,通過(guò)本發(fā)明所構(gòu)思的以上技術(shù)方案與現(xiàn)有技術(shù)相比,能夠取得下列有益效果:(1)本發(fā)明所提供的多處理器實(shí)時(shí)系統(tǒng)中的更新事務(wù)分派方法,與已有的更新事務(wù)分派技術(shù)相比,本發(fā)明所提出的方法在考慮處理器負(fù)載的基礎(chǔ)上,根據(jù)更新事務(wù)的密度來(lái)分派更新事務(wù),考慮到了更新事務(wù)的可調(diào)度性,在保證事務(wù)實(shí)時(shí)性和可調(diào)度性的前提下,降低處理器負(fù)載,具有更好的實(shí)用性;(2)本發(fā)明所提供的多處理器實(shí)時(shí)系統(tǒng)中的更新事務(wù)分派方法以任一處理器負(fù)載均不大于1/2為分派條件,因此在采用EDF調(diào)度方法和DM調(diào)度方法的實(shí)時(shí)數(shù)據(jù)庫(kù)系統(tǒng)中均可使用,具有更好的普適性;(3)本發(fā)明所提供的多處理器實(shí)時(shí)系統(tǒng)中的更新事務(wù)分派方法,實(shí)現(xiàn)簡(jiǎn)單,易于操作,便于開(kāi)發(fā)人員掌握,此做法保證了使用此方法的實(shí)時(shí)數(shù)據(jù)庫(kù)系統(tǒng)的維護(hù)簡(jiǎn)易性和可擴(kuò)展性;綜合而言,本發(fā)明實(shí)現(xiàn)的更新事務(wù)分派方法,綜合考慮了處理器的低負(fù)載性和更新事務(wù)的可調(diào)度性;使用本發(fā)明所提出方法的實(shí)時(shí)數(shù)據(jù)庫(kù)系統(tǒng)可在更大程度上滿足更新事務(wù)的實(shí)時(shí)性需求,從而更好地確保了系統(tǒng)數(shù)據(jù)的準(zhǔn)確性;并且可適用于采用EDF調(diào)度和DM調(diào)度的實(shí)時(shí)數(shù)據(jù)庫(kù)系統(tǒng),具有普適性。附圖說(shuō)明圖1本發(fā)明實(shí)施例提供的多處理器實(shí)時(shí)系統(tǒng)中的更新事務(wù)分派方法的流程示意圖;圖2為本發(fā)明實(shí)施例中更新事務(wù)密度統(tǒng)計(jì)處理的流程示意圖;圖3為本發(fā)明實(shí)施例中單項(xiàng)事務(wù)處理器間分派處理的流程示意圖。具體實(shí)施方式為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實(shí)施例,對(duì)本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說(shuō)明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。此外,下面所描述的本發(fā)明各個(gè)實(shí)施方式中所涉及到的技術(shù)特征只要彼此之間未構(gòu)成沖突就可以相互組合。本發(fā)明提供的更新事務(wù)分派方法適用于多處理器實(shí)時(shí)數(shù)據(jù)庫(kù)系統(tǒng),綜合考慮處理器低負(fù)載性和更新事務(wù)的可調(diào)度性,包括更新事務(wù)密度統(tǒng)計(jì)處理、單項(xiàng)事務(wù)處理器間分派處理和異常情況處理;其中,更新事務(wù)密度統(tǒng)計(jì)處理是基礎(chǔ),單項(xiàng)事務(wù)處理器間分派處理是分派處理方式,異常情況處理是在單項(xiàng)事務(wù)處理器間分派處理結(jié)果存在不確定性時(shí)所做的處理。本發(fā)明所提供的更新事務(wù)分派方法其流程如圖1所示,具體包括如下步驟:(1)更新事務(wù)密度統(tǒng)計(jì)處理:統(tǒng)計(jì)每項(xiàng)更新事務(wù)的密度,生成更新事務(wù)密度表:(1.1)計(jì)算每項(xiàng)更新事務(wù)密度:收集所有更新事務(wù)的執(zhí)行時(shí)間和有效時(shí)間,具體子步驟如下:(1.1.1)獲得每項(xiàng)更新事務(wù)的執(zhí)行時(shí)間T1和樣本有效時(shí)間T2;(1.1.2)獲取每項(xiàng)更新事務(wù)的密度A=T1/T2;其中,T1是該事務(wù)的執(zhí)行時(shí)間,T2是該事務(wù)的有效期;(1.2)生成更新任務(wù)密度表:根據(jù)每項(xiàng)更新事務(wù)的密度,生成更新事務(wù)密度表,并按照實(shí)時(shí)數(shù)據(jù)庫(kù)設(shè)置根據(jù)應(yīng)用需求對(duì)更新事務(wù)進(jìn)行排序,根據(jù)排序生成更新事務(wù)密度表;(2)單項(xiàng)事務(wù)處理器間分派處理;將每項(xiàng)更新事務(wù)分派到指定處理器上,生成更新事務(wù)分派表,具體子步驟如下:(2.1)單項(xiàng)更新事務(wù)在多處理器平臺(tái)上的分派:依次為每一個(gè)處理器分派更新事務(wù),具體步驟如下:(2.1.1)訪問(wèn)首個(gè)負(fù)載小于1/2的處理器;(2.1.2)在上述負(fù)載小于1/2的服處理器上,查找首個(gè)滿足條件(A+B)不大于1/2(以下簡(jiǎn)稱條件1)、且滿足條件(A+B)不大于C/m(以下簡(jiǎn)稱條件2)的更新事務(wù);當(dāng)滿足上述兩個(gè)條件的更新事務(wù)存在,則進(jìn)入步驟(2.1.3);當(dāng)滿足上述兩個(gè)條件的更新事務(wù)不存在,則進(jìn)入步驟(2.1.4);其中,A為該任務(wù)的密度,B為所選處理器當(dāng)前負(fù)載,C為更新事務(wù)總密度,m為處理器總數(shù);(2.1.3)將滿足步驟(2.1.2)所述兩個(gè)條件的更新事務(wù)分派到所訪問(wèn)的處理器上,并進(jìn)入步驟(2.1.8);(2.1.4)查找首個(gè)滿足條件1的更新事務(wù)是否存在;若是,則進(jìn)入步驟(2.1.5);若否,則進(jìn)入步驟(2.1.7);(2.1.5)將該更新事務(wù)分派到所訪問(wèn)的處理器上,并進(jìn)入步驟(2.1.6);(2.1.6)查找下一個(gè)滿足條件1的更新事務(wù)是否存在;若是,則進(jìn)入步驟(2.1.7);若否,則結(jié)束;(2.1.7)訪問(wèn)對(duì)應(yīng)的處理器,并進(jìn)入步驟(2.1.2);(2.1.8)查找下一個(gè)滿足條件1和條件2的更新事務(wù),進(jìn)入步驟(2.1.3);(2.2)統(tǒng)計(jì)更新事務(wù)分派結(jié)果,根據(jù)統(tǒng)計(jì)結(jié)果生成更新事務(wù)分派表;(3)異常情況處理:當(dāng)更新事務(wù)分派出現(xiàn)異常,無(wú)法完全分派時(shí),進(jìn)行異常情況處理,具體為:根據(jù)更新事務(wù)分派表,遍歷原始更新事務(wù)集,查詢更新事務(wù)分派結(jié)束后是否存在尚未被分派的更新事務(wù),若是,則判定分派失??;若否,則生成更新事務(wù)分派表。以下結(jié)合實(shí)施例具體闡述多處理數(shù)據(jù)庫(kù)系統(tǒng)中的更新事務(wù)分派方法,對(duì)于實(shí)施例的一組更新事務(wù)和三個(gè)處理器,更新事務(wù)信息如表1所列;表1更新事務(wù)信息列表更新事務(wù)t1t2t3t4t5t6執(zhí)行時(shí)間1111113有效期455712105首先計(jì)算更新事務(wù)的密度,實(shí)施例中,更新事務(wù)的密度如表2所列,更新事務(wù)總密度為100%。表2更新事務(wù)密度列表更新事務(wù)t1t2t3t4t5t6執(zhí)行時(shí)間1/41/51/51/71/1213/105實(shí)施例中,當(dāng)前實(shí)時(shí)數(shù)據(jù)庫(kù)系統(tǒng)默認(rèn)更新事務(wù)排序方式為按有效期從小到大排序。尋找當(dāng)前負(fù)載小于1/2的處理器:在初始階段,由于尚未分派更新事務(wù),處理器負(fù)載均為0,因此以任意一個(gè)處理器作為第一個(gè)處理器;遍歷更新事務(wù)列表,根據(jù)更新事務(wù)密度表找出滿足條件的更新事務(wù);由于(1/4+0)不大于1/2且不大于1/3(100%除以3),因此將更新事務(wù)t1分派到首個(gè)處理器上執(zhí)行,該處理器負(fù)載增加1/4;由于(1/4+1/12)不大于1/2且不大于1/3,因此將更新事務(wù)t5分派到首個(gè)處理器上執(zhí)行,該處理器的負(fù)載更新為1/4+1/12=1/3;由于不存在其他滿足(1/3+A)不大于1/3的更新事務(wù),因此,重新遍歷更新事務(wù)集,尋找滿足條件(1/3+A)不大于1/2的事務(wù);其中,A為更新事務(wù)的密度。找到滿足條件的更新事務(wù)t4并將其分派到當(dāng)前所訪問(wèn)處理器上執(zhí)行,同時(shí)更新該處理器的負(fù)載為1/3+1/7=10/21;由于不存在其它滿足(10/21+A)不大于1/3的更新事務(wù),因此訪問(wèn)第二個(gè)處理器;在為第二個(gè)處理器分派更新事務(wù)時(shí),事務(wù)t2和事務(wù)t6被依次找到并分派到此處理器上執(zhí)行;然后將事務(wù)t3分派到最后一個(gè)處理器上。實(shí)施例中獲得的有效的更新事務(wù)分派表,如以下表3所列;表3分配結(jié)果列表本領(lǐng)域的技術(shù)人員容易理解,以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。當(dāng)前第1頁(yè)1 2 3