欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

減少數(shù)據(jù)庫事務(wù)期間的鎖定的制作方法

文檔序號(hào):6432219閱讀:184來源:國(guó)知局
專利名稱:減少數(shù)據(jù)庫事務(wù)期間的鎖定的制作方法
技術(shù)領(lǐng)域
本發(fā)明一般涉及數(shù)據(jù)庫事務(wù)處理,尤其涉及減少數(shù)據(jù)庫事務(wù)期間的鎖定。
背景技術(shù)
當(dāng)設(shè)備或應(yīng)用程序更新數(shù)據(jù)庫中的數(shù)據(jù)時(shí),該數(shù)據(jù)庫中的數(shù)據(jù)被鎖定直到作出對(duì)該數(shù)據(jù)的變更的設(shè)備或應(yīng)用程序釋放該數(shù)據(jù)或終止與數(shù)據(jù)庫的會(huì)話。對(duì)數(shù)據(jù)庫中的數(shù)據(jù)的鎖定可能影響數(shù)據(jù)庫和/或連接到該數(shù)據(jù)庫的設(shè)備和應(yīng)用程序的性能。另外,當(dāng)數(shù)據(jù)庫中的數(shù)據(jù)被鎖定時(shí),其他設(shè)備和/或應(yīng)用程序可能無法訪問數(shù)據(jù)或?qū)ζ渥鞒鲎兏?。鎖定問題在長(zhǎng)運(yùn)行事務(wù)期間和/或?qū)τ谄渲卸鄠€(gè)用戶、應(yīng)用程序或設(shè)備被授權(quán)訪問數(shù)據(jù)的數(shù)據(jù)庫尤其嚴(yán)重。其他長(zhǎng)運(yùn)行事務(wù)包括連續(xù)作出對(duì)同一數(shù)據(jù)的多次查詢和/或修改和/或訪問數(shù)據(jù)的設(shè)備或應(yīng)用程序?qū)υ摂?shù)據(jù)執(zhí)行眾多和/或復(fù)雜計(jì)算的情況。在這些和其他情況下,修改數(shù)據(jù)的設(shè)備和/或應(yīng)用程序可以在該數(shù)據(jù)被鎖定時(shí)對(duì)該數(shù)據(jù)執(zhí)行各種計(jì)算和/或操作,由此阻止其他應(yīng)用程序和/或設(shè)備對(duì)該數(shù)據(jù)的訪問。緩解數(shù)據(jù)鎖定導(dǎo)致的問題的一種嘗試涉及使用在訪問數(shù)據(jù)庫中的數(shù)據(jù)的設(shè)備處保存所有變更的高速緩存。在設(shè)備處高速緩存對(duì)數(shù)據(jù)的變更,而不是鎖定數(shù)據(jù)。當(dāng)設(shè)備準(zhǔn)備好向數(shù)據(jù)庫提交變更時(shí),鎖定該數(shù)據(jù)并且同時(shí)提交變更。然而,高速緩存變更需要設(shè)備處的額外的計(jì)算資源,因?yàn)樵O(shè)備必須對(duì)查詢結(jié)果執(zhí)行后處理操作以反映高速緩存在設(shè)備處的變更。這些后處理步驟可取決于高速緩存在設(shè)備處的變更數(shù)量而變得極度復(fù)雜,并且在彼此依賴的眾多計(jì)算的情況下可能使設(shè)備性能降級(jí)。在此呈現(xiàn)對(duì)于這些和其他考慮事項(xiàng)做出的本發(fā)明。

發(fā)明內(nèi)容
此處描述了用于在不在設(shè)備處使用設(shè)備高速緩存或后處理操作的情況下減少數(shù)據(jù)庫事務(wù)期間的數(shù)據(jù)鎖定的概念和技術(shù)。根據(jù)此處公開的概念和技術(shù),服務(wù)器應(yīng)用程序響應(yīng)于執(zhí)行修改存儲(chǔ)在數(shù)據(jù)庫中的基本數(shù)據(jù)的操作而生成變更集。該變更集與基本數(shù)據(jù)一起作為表的集合存儲(chǔ)在數(shù)據(jù)庫中。該表集合可包括存儲(chǔ)反映基本數(shù)據(jù)中已由操作創(chuàng)建和/或修改的記錄的數(shù)據(jù)的第一表,以及存儲(chǔ)反映基本數(shù)據(jù)中已由操作刪除的記錄的數(shù)據(jù)的第二表。在提交變更集中反映的對(duì)基本數(shù)據(jù)的變更、添加和/或刪除之前,在主存服務(wù)器應(yīng)用程序的服務(wù)器計(jì)算機(jī)處接收到的查詢被修改成包括用于查詢存儲(chǔ)在變更集中的數(shù)據(jù)和基本數(shù)據(jù)的語句。對(duì)基本數(shù)據(jù)和變更集執(zhí)行經(jīng)修改的查詢,并且生成滿足經(jīng)修改的查詢的結(jié)果并將其返回至作出請(qǐng)求的設(shè)備和/或?qū)嶓w。變更集和經(jīng)修改的查詢的生成以及經(jīng)修改的查詢的執(zhí)行可以在不鎖定基本數(shù)據(jù)的情況下進(jìn)行。由此,某些實(shí)施方式允許設(shè)備和/或應(yīng)用程序在其他設(shè)備和/或應(yīng)用程序修改基本數(shù)據(jù)的同時(shí)訪問基本數(shù)據(jù)。當(dāng)向服務(wù)器應(yīng)用程序提交操作的設(shè)備結(jié)束與服務(wù)器計(jì)算機(jī)的事務(wù)時(shí),服務(wù)器應(yīng)用程序鎖定基本數(shù)據(jù)。服務(wù)器應(yīng)用程序連續(xù)對(duì)基本數(shù)據(jù)應(yīng)用存儲(chǔ)在變更集表中的變更。當(dāng)存儲(chǔ)在變更集表中的變更已被應(yīng)用于基本數(shù)據(jù)時(shí),解鎖基本數(shù)據(jù)并且丟棄變更集。應(yīng)當(dāng)明白,上述主題還可被實(shí)現(xiàn)成計(jì)算機(jī)控制的裝置、計(jì)算機(jī)進(jìn)程、計(jì)算系統(tǒng)、或諸如計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)等制品。通過閱讀以下具體實(shí)施方式
并查閱相關(guān)聯(lián)的附圖,這些和各種其他特征將是顯而易見的。提供本發(fā)明內(nèi)容以便以簡(jiǎn)化形式介紹將在以下具體實(shí)施方式
中進(jìn)一步描述的一些概念。本發(fā)明內(nèi)容并不旨在標(biāo)識(shí)出所要求保護(hù)的主題的關(guān)鍵特征或必要特征,本發(fā)明內(nèi)容也不旨在用于限定所要求保護(hù)的主題的范圍。此外,所要求保護(hù)的主題不限于解決在本發(fā)明的任何部分中提及的任何或所有缺點(diǎn)的實(shí)現(xiàn)。


圖1是示出用于此處所公開的各實(shí)施方式的示例性操作環(huán)境的系統(tǒng)圖。圖2是示意性地示出根據(jù)一示例性實(shí)施方式的用于存儲(chǔ)基本數(shù)據(jù)和變更集的數(shù)據(jù)結(jié)構(gòu)的框圖。圖3是示意性地示出根據(jù)一示例性實(shí)施方式的用于更新存儲(chǔ)在數(shù)據(jù)庫中的數(shù)據(jù)的方法的各方面的流程圖。圖4是示出能夠?qū)崿F(xiàn)此處所呈現(xiàn)的各實(shí)施方式的各方面的計(jì)算系統(tǒng)的示例性計(jì)算機(jī)硬件和軟件體系結(jié)構(gòu)的計(jì)算機(jī)體系結(jié)構(gòu)圖。
具體實(shí)施例方式以下詳細(xì)描述涉及用于在不在設(shè)備處使用設(shè)備高速緩存或后處理操作的情況下減少數(shù)據(jù)庫事務(wù)期間的鎖定的概念和技術(shù)。根據(jù)此處公開的概念和技術(shù),服務(wù)器應(yīng)用程序響應(yīng)于接收到用于修改存儲(chǔ)在數(shù)據(jù)庫中的基本數(shù)據(jù)的操作而生成變更集。該變更集被存儲(chǔ)為與基本數(shù)據(jù)一起存儲(chǔ)在數(shù)據(jù)庫的表的集合。該表集合可包括存儲(chǔ)反映基本數(shù)據(jù)中已由操作創(chuàng)建和/或修改的記錄的數(shù)據(jù)的第一表,以及存儲(chǔ)反映基本數(shù)據(jù)中已由操作刪除的記錄的數(shù)據(jù)的第二表。在提交變更集中反映的對(duì)基本數(shù)據(jù)的變更、添加和/或刪除之前,在主存服務(wù)器應(yīng)用程序的服務(wù)器處接收到的查詢被修改成包括用于查詢存儲(chǔ)在變更集中的數(shù)據(jù)和基本數(shù)據(jù)的語句。對(duì)基本數(shù)據(jù)和變更集執(zhí)行經(jīng)修改的查詢,并且生成滿足經(jīng)修改的查詢的結(jié)果并將其返回至作出請(qǐng)求的設(shè)備和/或?qū)嶓w。變更集和經(jīng)修改的查詢的生成以及經(jīng)修改的查詢的執(zhí)行可以在不鎖定基本數(shù)據(jù)的情況下進(jìn)行。由此,某些實(shí)施方式允許設(shè)備和/或應(yīng)用程序在其他設(shè)備和/或應(yīng)用程序修改基本數(shù)據(jù)的同時(shí)訪問基本數(shù)據(jù)。盡管在結(jié)合計(jì)算機(jī)系統(tǒng)上的操作系統(tǒng)和應(yīng)用程序的執(zhí)行而執(zhí)行的程序模塊的一般上下文中呈現(xiàn)了此處描述的主題,但是本領(lǐng)域技術(shù)人員將認(rèn)識(shí)到,其他實(shí)現(xiàn)可以結(jié)合其他類型的程序模塊來執(zhí)行。一般而言,程序模塊包括執(zhí)行特定任務(wù)或?qū)崿F(xiàn)特定抽象數(shù)據(jù)類型的例程、程序、組件、數(shù)據(jù)結(jié)構(gòu)和其他類型的結(jié)構(gòu)。此外,本領(lǐng)域技術(shù)人員將明白,可以利用其他計(jì)算機(jī)系統(tǒng)配置來實(shí)施此處描述的主題,這些計(jì)算機(jī)系統(tǒng)配置包括手持式設(shè)備、多處理器系統(tǒng)、基于微處理器的或可編程消費(fèi)電子產(chǎn)品、小型計(jì)算機(jī)、大型計(jì)算機(jī)等等。在以下詳細(xì)描述中,參考了構(gòu)成其一部分并作為說明示出了各具體實(shí)施方式
或示例的附圖。現(xiàn)在參考附圖(全部若干附圖中相同的標(biāo)號(hào)表示相同的元素),將提出用于減少
5數(shù)據(jù)庫期間的鎖定的計(jì)算系統(tǒng)、計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)和計(jì)算機(jī)實(shí)現(xiàn)的方法的各方面?,F(xiàn)在參考圖1,將描述用于本文所提出的各實(shí)施方式的一個(gè)操作環(huán)境100的各方面。圖1所示的操作環(huán)境100包括在網(wǎng)絡(luò)104上操作或與網(wǎng)絡(luò)104通信的服務(wù)器計(jì)算機(jī)102。服務(wù)器計(jì)算機(jī)102的功能可由一個(gè)或多個(gè)服務(wù)器計(jì)算機(jī)、臺(tái)式計(jì)算機(jī)、移動(dòng)電話、膝上型計(jì)算機(jī)、其他計(jì)算系統(tǒng)等來提供。服務(wù)器計(jì)算機(jī)102被配置成執(zhí)行操作系統(tǒng)106以及諸如服務(wù)器應(yīng)用程序108等一個(gè)或多個(gè)應(yīng)用程序。操作系統(tǒng)106是用于控制服務(wù)器計(jì)算機(jī)102的操作的計(jì)算機(jī)程序。服務(wù)器應(yīng)用程序108是被配置成在操作系統(tǒng)106上執(zhí)行以提供此處描述的用于減少數(shù)據(jù)庫事務(wù)期間的鎖定的功能的應(yīng)用程序。 根據(jù)各實(shí)施方式,操作環(huán)境100還包括與網(wǎng)絡(luò)104和/或服務(wù)器計(jì)算機(jī)102通信操作的一個(gè)或多個(gè)設(shè)備110。在一些實(shí)現(xiàn)中,設(shè)備110包括一個(gè)或多個(gè)個(gè)人計(jì)算機(jī)(“PC”),諸如臺(tái)式、平板或膝上型計(jì)算機(jī)系統(tǒng)。設(shè)備110還可包括其他類型的計(jì)算系統(tǒng),包括但不限于服務(wù)器計(jì)算機(jī)、手持式計(jì)算機(jī)、上網(wǎng)本計(jì)算機(jī)、嵌入式計(jì)算機(jī)系統(tǒng)、個(gè)人數(shù)字助理、移動(dòng)電話、智能電話等。服務(wù)器應(yīng)用程序108被配置成接收由一個(gè)或多個(gè)設(shè)備110生成的操作112,響應(yīng)于操作112而訪問主存在服務(wù)器計(jì)算機(jī)102可訪問的一個(gè)或多個(gè)數(shù)據(jù)庫116處的基本數(shù)據(jù)114,并且基于操作112來對(duì)基本數(shù)據(jù)114采取動(dòng)作,如此處所描述的。根據(jù)各實(shí)施方式,操作112可包括用于讀取基本數(shù)據(jù)114的查詢或者用于修改基本數(shù)據(jù)114的修改。在一些實(shí)施方式中,操作112包括由設(shè)備110生成的一個(gè)或多個(gè)結(jié)構(gòu)化查詢語言(“SQL”)操作。更具體而言,在一些實(shí)施方式中,操作112包括用于從基本數(shù)據(jù)114中讀取滿足查詢中指定的準(zhǔn)則的一個(gè)或多個(gè)記錄的一個(gè)或多個(gè)查詢。服務(wù)器應(yīng)用程序108被配置成生成滿足查詢的一個(gè)或多個(gè)結(jié)果118,并且將結(jié)果118提供給設(shè)備110來作為對(duì)查詢的響應(yīng)。在其他實(shí)施方式中,操作112包括對(duì)基本數(shù)據(jù)114的一個(gè)或多個(gè)修改。對(duì)基本數(shù)據(jù)114的“修改”不限于變更或修改基本數(shù)據(jù)114,而是改為廣泛地用來指代對(duì)基本數(shù)據(jù)114的一個(gè)或多個(gè)記錄的創(chuàng)建或添加、對(duì)基本數(shù)據(jù)114的一個(gè)或多個(gè)記錄的修改、和/或?qū)緮?shù)據(jù)114的一個(gè)或多個(gè)記錄的刪除。數(shù)據(jù)庫數(shù)據(jù)的更新通常要求在作出變更之前鎖定正被更新的數(shù)據(jù)。這些鎖可能對(duì)訪問存儲(chǔ)在數(shù)據(jù)庫中的數(shù)據(jù)的其他用戶或設(shè)備造成性能或準(zhǔn)確性問題。例如,鎖定可阻止其他設(shè)備和/或用戶訪問數(shù)據(jù)直到該數(shù)據(jù)被釋放。尤其對(duì)于長(zhǎng)運(yùn)行事務(wù)而言,這些鎖可造成其他問題,諸如沖突、死鎖等。根據(jù)此處描述的各實(shí)施方式,服務(wù)器應(yīng)用程序108被配置成在接收到修改時(shí)生成變更集120,而不是立即對(duì)基本數(shù)據(jù)114應(yīng)用變更。由此,服務(wù)器應(yīng)用程序108在設(shè)備110對(duì)基本數(shù)據(jù)114進(jìn)行修改期間不鎖定基本數(shù)據(jù)114。根據(jù)一些實(shí)現(xiàn),變更集120包括用于存儲(chǔ)與經(jīng)由操作112請(qǐng)求的修改相對(duì)應(yīng)的數(shù)據(jù)的表。如將在此處更詳細(xì)地解釋的,在各實(shí)施方式中,只存在一個(gè)基本數(shù)據(jù)114的集合,但可以存在一個(gè)或多個(gè)變更集120。具體而言,與服務(wù)器計(jì)算機(jī)102通信的每一個(gè)設(shè)備110可生成對(duì)該特定設(shè)備110而言是私有的和/或不與其他設(shè)備110共享或不對(duì)其可見的變更集120并對(duì)其進(jìn)行操作。服務(wù)器應(yīng)用程序108使用變更集120來補(bǔ)充服務(wù)器計(jì)算機(jī)102接收到的其他查詢,之后向基本數(shù)據(jù)114提交變更集120中反映的變更。因此,因當(dāng)理解,多個(gè)設(shè)備110能夠同時(shí)與服務(wù)器102交互并與各個(gè)變更集120交互。由此,響應(yīng)于相同或相似的查詢,設(shè)備110可基于與設(shè)備110相關(guān)聯(lián)的各個(gè)變更集120的內(nèi)容而接收到不同的結(jié)果。服務(wù)器應(yīng)用程序108還被配置成修改接收到的查詢以訪問存儲(chǔ)在變更集120中的數(shù)據(jù)。更具體而言,服務(wù)器應(yīng)用程序108被配置成將涉及基本數(shù)據(jù)114的查詢修改成包括用于查詢變更集120的語句。服務(wù)器應(yīng)用程序108執(zhí)行經(jīng)修改的查詢并向提交原始查詢的設(shè)備110輸出結(jié)果118。應(yīng)當(dāng)理解,查詢可源自其他設(shè)備、節(jié)點(diǎn)或甚至服務(wù)器邏輯,而不一定來自設(shè)備110。例如,在一些實(shí)施方式中,服務(wù)器計(jì)算機(jī)102擔(dān)當(dāng)對(duì)于其自身的客戶機(jī)并且用服務(wù)器邏輯生成查詢。其他實(shí)施方式是可能的并被構(gòu)想。由此,所示且所述實(shí)施方式應(yīng)被理解為是示例性的,并且絕不應(yīng)被解釋為是限制性的。在一些實(shí)施方式中,服務(wù)器應(yīng)用程序108通過生成與變更集120有關(guān)的一個(gè)或多個(gè)查詢并且使用例如UNI0N(并)操作數(shù)來聯(lián)接查詢,來修改作為操作112接收到的查詢。服務(wù)器應(yīng)用程序108的這些和其他特征將參考以下圖2-3來進(jìn)一步理解。根據(jù)各實(shí)施方式,服務(wù)器應(yīng)用程序108還被配置成確定何時(shí)已經(jīng)接收到所有查詢和修改。例如,服務(wù)器應(yīng)用程序108可以從設(shè)備110接收到提交設(shè)備110所作出的所有變更的命令。另外地或另選地,設(shè)備110可終止與服務(wù)器計(jì)算機(jī)102的會(huì)話,和/或服務(wù)器應(yīng)用程序108可確定已達(dá)到時(shí)間或操作配額,并且可終止源自設(shè)備110的事務(wù)。根據(jù)各實(shí)施方式,服務(wù)器應(yīng)用程序108被配置成當(dāng)該服務(wù)器應(yīng)用程序確定服務(wù)器計(jì)算機(jī)102和設(shè)備110之間的事務(wù)已經(jīng)結(jié)束時(shí)對(duì)基本數(shù)據(jù)114應(yīng)用變更集120中的所有變更。因?yàn)樗胁樵冃薷?、?duì)基本數(shù)據(jù)114的更新以及與經(jīng)修改的查詢有關(guān)的計(jì)算都是在服務(wù)器計(jì)算機(jī)102上進(jìn)行的,所以設(shè)備110能夠免于處理和后處理操作,否則這些處理和后處理操作可能使設(shè)備110的性能降級(jí)和/或延長(zhǎng)在更新期間鎖定基本數(shù)據(jù)114的時(shí)間。由此,各實(shí)施方式允許減少數(shù)據(jù)庫事務(wù)期間的數(shù)據(jù)鎖定。圖1示出了一個(gè)服務(wù)器計(jì)算機(jī)102、一個(gè)網(wǎng)絡(luò)104、一個(gè)設(shè)備110以及一個(gè)數(shù)據(jù)庫116。然而,應(yīng)當(dāng)理解,操作環(huán)境100的一些實(shí)現(xiàn)包括多個(gè)服務(wù)器計(jì)算機(jī)102、多個(gè)網(wǎng)絡(luò)104、多個(gè)設(shè)備110和/或多個(gè)數(shù)據(jù)庫116。由此,所示實(shí)施方式應(yīng)被理解為是示例性的,并且絕不應(yīng)被解釋為是限制性的?,F(xiàn)在轉(zhuǎn)向圖2,將詳細(xì)描述基本數(shù)據(jù)114和變更集120的其他方面。更具體而言,圖2是示意性地示出根據(jù)一示例性實(shí)施方式的用于基本數(shù)據(jù)114和變更集120的數(shù)據(jù)結(jié)構(gòu)200的框圖。如圖2所示,數(shù)據(jù)結(jié)構(gòu)200包括用于存儲(chǔ)基本數(shù)據(jù)114的基本數(shù)據(jù)表202以及兩個(gè)表;用于存儲(chǔ)指示將對(duì)基本數(shù)據(jù)114作出的變更的數(shù)據(jù)的已變更記錄表204和已刪除記錄表206?;緮?shù)據(jù)表202包括記錄208A-D,其中每一個(gè)記錄都包括用于存儲(chǔ)記錄標(biāo)識(shí)符(“記錄ID”)的字段210以用作基本數(shù)據(jù)表202的主鍵,以及用于存儲(chǔ)與記錄208相關(guān)聯(lián)的數(shù)據(jù)的一個(gè)或多個(gè)字段。在所示實(shí)施方式中,每一個(gè)記錄208都包括用于存儲(chǔ)第一元素的值的字段212,以及用于存儲(chǔ)第二元素的值的字段214。應(yīng)當(dāng)理解,基本數(shù)據(jù)表202可包括比所示基本數(shù)據(jù)表202更少或更多列、行和/或字段。由此,所示基本數(shù)據(jù)表202及其內(nèi)容應(yīng)被理解為是說明性的,而絕不應(yīng)被解釋為是限制性的。根據(jù)此處所描述的各實(shí)施方式,服務(wù)器應(yīng)用程序108被配置成在接收到用于修改存儲(chǔ)在數(shù)據(jù)庫116的基本數(shù)據(jù)114的操作112時(shí)生成已變更記錄表204和已刪除記錄表206。已變更記錄表204和已刪除記錄表206用于存儲(chǔ)對(duì)基本數(shù)據(jù)114作出的變更,而不是鎖定基本數(shù)據(jù)114并且在接收到修改后更新基本數(shù)據(jù)114。由此,服務(wù)器應(yīng)用程序108被配置成減少和/或避免與數(shù)據(jù)庫事務(wù)相關(guān)聯(lián)的數(shù)據(jù)鎖定直到所有事務(wù)完成。對(duì)于長(zhǎng)運(yùn)行事務(wù)和/或事務(wù)串,這些實(shí)施方式能夠基本上減少實(shí)現(xiàn)對(duì)基本數(shù)據(jù)114的更新所需的鎖定的量。服務(wù)器應(yīng)用程序108將變更存儲(chǔ)在變更集120中直到與操作112相關(guān)聯(lián)的用戶或設(shè)備結(jié)束與服務(wù)器計(jì)算機(jī)102的事務(wù),而不是在該用戶或設(shè)備更新期間鎖定基本數(shù)據(jù)114。當(dāng)用戶或設(shè)備結(jié)束與服務(wù)器計(jì)算機(jī)102的事務(wù)時(shí),服務(wù)器應(yīng)用程序108鎖定基本數(shù)據(jù)114并且同時(shí)提交變更集120中反映的所有變更,由此減少或消除對(duì)基本數(shù)據(jù)114的任何非必要鎖定。在一些實(shí)施方式中,服務(wù)器應(yīng)用程序108被配置成在用戶或設(shè)備與服務(wù)器計(jì)算機(jī)102之間的事務(wù)中止的情況下丟棄變更集120。此外,在一些實(shí)施方式中,變更集120中反映的變更以有序方式持久存儲(chǔ)以避免死鎖。在事務(wù)期間,服務(wù)器應(yīng)用程序108被配置成不僅基于基本數(shù)據(jù)114,而且基于包括在變更集120中的數(shù)據(jù)來滿足提交給服務(wù)器計(jì)算機(jī)102的查詢。如上所述,對(duì)查詢的修改和對(duì)查詢的執(zhí)行由服務(wù)器應(yīng)用程序108來執(zhí)行。由此,服務(wù)器應(yīng)用程序108被配置成允許設(shè)備110避免為了反映在事務(wù)期間作出的變更而對(duì)結(jié)果118進(jìn)行后處理,如上文中所解釋的。該能力可提高設(shè)備110、服務(wù)器計(jì)算機(jī)102和數(shù)據(jù)庫116的性能,并且能夠減少鎖定基本數(shù)據(jù)114以容納對(duì)基本數(shù)據(jù)114的更新的時(shí)間量。根據(jù)一些實(shí)施方式,如圖2所示,已變更記錄表204具有與基本數(shù)據(jù)表202相同的布局。已變更記錄表204存儲(chǔ)與基本數(shù)據(jù)表202中已經(jīng)由操作112變更的記錄208相對(duì)應(yīng)的數(shù)據(jù)。在所示示例中,已變更記錄表204存儲(chǔ)指示對(duì)基本數(shù)據(jù)表202中的記錄208B作出的變更的記錄216。如圖2所示,存儲(chǔ)在基本數(shù)據(jù)表202中的一個(gè)或多個(gè)記錄208可以基于存儲(chǔ)在相應(yīng)的表202、204中的記錄ID數(shù)據(jù)來與存儲(chǔ)在已變更數(shù)據(jù)表204中的一個(gè)或多個(gè)記錄216相關(guān)。已刪除記錄表206存儲(chǔ)標(biāo)識(shí)基本數(shù)據(jù)表202中已經(jīng)由操作112刪除的記錄208的數(shù)據(jù)。根據(jù)各實(shí)施方式,已刪除記錄表206不具有與基本數(shù)據(jù)表202和/或已變更記錄表204相同的布局,但不一定是這種情況。在所示實(shí)施方式中,已刪除記錄表206包括一個(gè)記錄218,該記錄指示基本數(shù)據(jù)表202中的記錄208D已經(jīng)由操作112刪除。對(duì)基本數(shù)據(jù)表202、已變更記錄表204和已刪除記錄表206的使用可通過考慮一些簡(jiǎn)要示例來理解。如果服務(wù)器應(yīng)用程序108僅基于基本數(shù)據(jù)表202執(zhí)行對(duì)具有"Value_2 (值_2) ”作為“Element」(元素_1) ”的值的記錄的查詢,則該查詢將返回對(duì)應(yīng)于記錄ID “3”的記錄。然而,如在已變更數(shù)據(jù)表204中所示出的,對(duì)基本數(shù)據(jù)表202和已變更記錄表204執(zhí)行的對(duì)具有“Value_2”作為“ElementJ ”的值的記錄的查詢將返回對(duì)應(yīng)于記錄ID “2”和“3”的記錄。類似地,如果服務(wù)器應(yīng)用程序108僅基于基本數(shù)據(jù)表202執(zhí)行對(duì)具有"Value_3 (值_3) ”作為“Element_2 (元素_2) ”的值的記錄的查詢,則該查詢將返回對(duì)應(yīng)于記錄ID “1”和“4”的記錄。然而,如果服務(wù)器應(yīng)用程序108基于基本數(shù)據(jù)表202和已刪除記錄表206來執(zhí)行對(duì)具有“Value_3”作為“Element_2”的值的記錄的查詢,則該查詢將只返回對(duì)應(yīng)于記錄ID “1”的記錄。這些查詢是示例性的并且僅僅是為了示出此處公開的概念和技術(shù)而提供的。由此,這些示例絕不應(yīng)被解釋為是示例性的。
8
現(xiàn)在轉(zhuǎn)向圖3,將詳細(xì)描述用于更新數(shù)據(jù)庫的方法300的各方面。應(yīng)該理解,不一定按任何特定次序來呈現(xiàn)此處公開的方法300的操作,并且構(gòu)想了用替換次序來執(zhí)行部分或全部操作是可能的。為了易于描述和說明,按所示次序來呈現(xiàn)各操作??梢栽诓槐畴x所附權(quán)利要求書的范圍的情況下添加、省略和/或通知執(zhí)行操作。還應(yīng)當(dāng)理解,所示方法300可以在任何時(shí)候結(jié)束并且不必完整地執(zhí)行。該方法300的操作中的部分或全部和/或基本上等價(jià)的操作可以通過執(zhí)行計(jì)算機(jī)存儲(chǔ)介質(zhì)上所包括的計(jì)算機(jī)可讀指令來執(zhí)行,這在下面予以定義。如在說明書和權(quán)利要求書中使用的術(shù)語“計(jì)算機(jī)可讀指令”及其變型,在此處是用來廣泛地包括例程、應(yīng)用程序、應(yīng)用程序模塊、程序模塊、程序、組件、數(shù)據(jù)結(jié)構(gòu)、算法等。計(jì)算機(jī)可讀指令可以在各種系統(tǒng)配置上實(shí)現(xiàn),包括單處理器或多處理器系統(tǒng)、小型計(jì)算機(jī)、大型計(jì)算機(jī)、個(gè)人計(jì)算機(jī)、手持式計(jì)算設(shè)備、基于微處理器的可編程消費(fèi)電子產(chǎn)品、其組合等等。因此,應(yīng)該理解,此處所述的邏輯操作被實(shí)現(xiàn)為(1) 一系列計(jì)算機(jī)實(shí)現(xiàn)的動(dòng)作或運(yùn)行于計(jì)算系統(tǒng)上的程序模塊;和/或( 計(jì)算系統(tǒng)內(nèi)的互連的機(jī)器邏輯電路或電路模塊。取決于計(jì)算系統(tǒng)的性能及其他要求,可以選擇不同的實(shí)現(xiàn)。因此,此處描述的邏輯操作被不同地稱為狀態(tài)操作、結(jié)構(gòu)設(shè)備、動(dòng)作或模塊。這些操作、結(jié)構(gòu)設(shè)備、動(dòng)作和模塊可用軟件、固件、專用數(shù)字邏輯以及其任何組合來實(shí)現(xiàn)。出于說明和描述本公開的概念的目的,在此公開的方法300被描述為由服務(wù)器計(jì)算機(jī)102執(zhí)行的服務(wù)器應(yīng)用程序108來執(zhí)行。應(yīng)該理解,該實(shí)施例是示例性的,并且不應(yīng)被視為以任何方式構(gòu)成限制??捎煞?wù)器計(jì)算機(jī)102和/或其他設(shè)備執(zhí)行另外和/或另選的應(yīng)用程序以提供此處公開的功能,而不背離所附權(quán)利要求書的范圍。方法300開始于操作302,其中服務(wù)器計(jì)算機(jī)102確定是否已經(jīng)在服務(wù)器計(jì)算機(jī)102處接收到操作112。根據(jù)一些實(shí)施方式,方法300直到服務(wù)器計(jì)算機(jī)102確定服務(wù)器計(jì)算機(jī)102已經(jīng)接收到操作112才在操作302之后繼續(xù)。如果服務(wù)器計(jì)算機(jī)102確定已經(jīng)接收到操作112,則方法300繼續(xù)至操作304。在操作304,服務(wù)器計(jì)算機(jī)102確定接收到的操作112與對(duì)基本數(shù)據(jù)114的修改還是與同基本數(shù)據(jù)114有關(guān)的查詢相對(duì)應(yīng)。如果操作與對(duì)基本數(shù)據(jù)114的修改相對(duì)應(yīng),則方法300繼續(xù)至操作306,其中服務(wù)器計(jì)算機(jī)102存儲(chǔ)指示該修改的數(shù)據(jù)。服務(wù)器計(jì)算機(jī)102將指示該修改的數(shù)據(jù)存儲(chǔ)為描述經(jīng)由操作112請(qǐng)求的修改的變更集120。如上文中參考圖1-2所解釋的,存儲(chǔ)在變更集120中的數(shù)據(jù)可被存儲(chǔ)在與基本數(shù)據(jù)114相關(guān)聯(lián)的一個(gè)或多個(gè)表中。在一些實(shí)施方式中,變更集120包括存儲(chǔ)在已變更記錄表204和已刪除記錄表206中的數(shù)據(jù)。變更集120能夠與基本數(shù)據(jù)114 一起存儲(chǔ)在數(shù)據(jù)庫116處,并且可由服務(wù)器計(jì)算機(jī)102用來滿足與基本數(shù)據(jù)114有關(guān)的查詢。如果服務(wù)器計(jì)算機(jī)102在操作304確定在操作302中接收到的操作112對(duì)應(yīng)于查詢,則方法300繼續(xù)至操作308,其中服務(wù)器計(jì)算機(jī)102基于接收到的查詢生成經(jīng)修改的查詢。如上文中參考圖1-2所解釋的,服務(wù)器應(yīng)用程序108被配置成通過用對(duì)來自變更集120的數(shù)據(jù)的查詢來補(bǔ)充對(duì)基本數(shù)據(jù)114的查詢,來生成經(jīng)修改的查詢。在一個(gè)示例性實(shí)施方式中,服務(wù)器應(yīng)用程序108用針對(duì)來自變更集120的數(shù)據(jù)的一個(gè)或多個(gè)語句來補(bǔ)充對(duì)來自基本數(shù)據(jù)114的數(shù)據(jù)的選擇語句。參考圖2所示的各張表,服務(wù)器計(jì)算機(jī) 108 將用語句"SELECT*FR0M BASE_DATA WHERE ELEMENT_1 =,VALUE_1,AND (IDNOT IN(SELECT ID FROM CHANGED_RECORDS)) UNION(SELECT*FROM CHANGED RECORDS WHEREELEMENT_1 =,VALUE_1,)” 來替換查詢語句 “SELECT*FROM BASE_DATA WHERE ELEMENT_1= ’VALUE_1’”。應(yīng)當(dāng)理解,在該示例中,服務(wù)器應(yīng)用程序108已將原始語句修改成包括已變更記錄表204中反映的更新。服務(wù)器應(yīng)用程序108還可被配置成為已刪除記錄表206生成單獨(dú)的查詢和/或進(jìn)一步修改經(jīng)修改的查詢以包括用于過濾掉已刪除記錄的語句。返回到上述示例,服務(wù)器應(yīng)用程序 108 能夠用語句“SELECT*FR0M BASE_DATAWHERE ELEMENT_1 =,VALUE_1,AND (IDNOT IN (SELECT ID FROM CHANGED_REC0RDS)) AND(ID NOT IN(SELECT ID FROM DELETED,RECORDS)) UNION (SELECT*FR0M CHANGED_REC0RDSWHERE ELEMENT_1 =,VALUE_1,)”來替換經(jīng)修改的查詢。因此,應(yīng)當(dāng)理解,在該示例中,服務(wù)器應(yīng)用程序108已將查詢修改成反映存儲(chǔ)在已變更記錄表204和已刪除記錄表206中的數(shù)據(jù),由此產(chǎn)生反映基本數(shù)據(jù)114和變更集120中的數(shù)據(jù)的結(jié)果118。方法300從操作308繼續(xù)至操作310,其中服務(wù)器應(yīng)用程序108運(yùn)行經(jīng)修改的查詢并且向生成操作112的實(shí)體提供使用經(jīng)修改的查詢來獲取的結(jié)果。方法300從操作310和306繼續(xù)至操作312,其中服務(wù)器應(yīng)用程序108確定設(shè)備110和服務(wù)器計(jì)算機(jī)102之間的事務(wù)是否已經(jīng)結(jié)束。如果服務(wù)器應(yīng)用程序108確定設(shè)備110和服務(wù)器計(jì)算機(jī)102之間的事務(wù)尚未結(jié)束,則方法300返回到操作302,其中服務(wù)器計(jì)算機(jī)102等待從設(shè)備110接收到另一操作112。如果服務(wù)器應(yīng)用程序108確定設(shè)備110和服務(wù)器計(jì)算機(jī)102之間的事務(wù)已經(jīng)結(jié)束,則方法300繼續(xù)至操作314。在操作314,服務(wù)器應(yīng)用程序108將變更集120所反映的變更提交給基本數(shù)據(jù)114。由此,基本數(shù)據(jù)114被更新成反映變更集120中所指示的變更。如上所述,服務(wù)器應(yīng)用程序108只在對(duì)基本數(shù)據(jù)114應(yīng)用變更集120所反映的變更時(shí)才鎖定基本數(shù)據(jù)114。然而,為了避免死鎖,這些鎖定的次序必須對(duì)所有并發(fā)操作相同。在一些實(shí)施方式中,這由于變更集120包含所有修改并且對(duì)修改的排序在不管修改的原始次序的情況下完成而實(shí)現(xiàn)。服務(wù)器應(yīng)用程序108刪除在已刪除記錄表206中被指示為已刪除的任何記錄216,并且更新與在已變更記錄表204中被指示為已變更的記錄216相對(duì)應(yīng)的任何記錄208。服務(wù)器應(yīng)用程序108將已更新的數(shù)據(jù)存儲(chǔ)在數(shù)據(jù)庫116,并且丟棄變更集120和/或清除已變更記錄表204和/或已刪除記錄表206的內(nèi)容。方法300在操作316結(jié)束。如上所述,此處所描述的概念和技術(shù)的實(shí)施方式允許設(shè)備110避免執(zhí)行高速緩存維護(hù)和/或?qū)Σ樵兘Y(jié)果的后處理,因?yàn)橛?jì)算在服務(wù)器計(jì)算機(jī)102處由服務(wù)器應(yīng)用程序108來執(zhí)行。另外,因?yàn)樽兏菍?duì)變更集120而不是基本數(shù)據(jù)114作出的,所以相對(duì)于可以在使用設(shè)備高速緩存和/或后處理操作的情況下鎖定基本數(shù)據(jù)114的持續(xù)時(shí)間,能夠減少鎖定基本數(shù)據(jù)114的持續(xù)時(shí)間。由此,數(shù)據(jù)庫116、設(shè)備110和/或服務(wù)器計(jì)算機(jī)102的性能可以提高勝過減少數(shù)據(jù)鎖定的其他方法。盡管未在上文中描述,但此處所描述的概念和技術(shù)的一個(gè)實(shí)施方式包括取決于需求、期望和/或偏好來選擇性地使用局部臨時(shí)表和全局臨時(shí)表來存儲(chǔ)變更集120。由此,在一些實(shí)施方式中,變更集120被存儲(chǔ)在全局臨時(shí)表中,由此允許其他設(shè)備和應(yīng)用程序訪問變更集120以允許如由變更集120修改的基本數(shù)據(jù)114的當(dāng)前視圖。根據(jù)一些實(shí)施方式,服務(wù)器應(yīng)用程序108在任何特定時(shí)刻只鎖定變更集120的一個(gè)表。由此,在一些實(shí)施方式中,在任何時(shí)刻只可鎖定已更新記錄表204或已刪除記錄表206中的一個(gè)。由此,基本數(shù)據(jù)114以及已更新記錄表204或已刪除記錄表206中的一個(gè)將在任何時(shí)刻被解鎖,除非變更集中的變更被提交給基本數(shù)據(jù)114。如上所述,在一些實(shí)施方式中,服務(wù)器應(yīng)用程序108為每一個(gè)用戶生成變更集120和/或變更集120包括局部臨時(shí)表而不是全局臨時(shí)表。由此,變更集120的表在更新期間鎖定,但因?yàn)橹挥幸粋€(gè)用戶可訪問變更集120的表,所以對(duì)表的鎖定不影響性能或可伸縮性。同樣,在一些實(shí)施方式中,變更集120中的變更集被存儲(chǔ)為“ Δ (delta) ”,由此允許針對(duì)同一數(shù)據(jù)的多個(gè)操作和/或更新,而不在提交操作和/或更新的多個(gè)實(shí)體之間生成沖突。圖4示出了能夠執(zhí)行此處所描述的用于減少數(shù)據(jù)庫事務(wù)期間的鎖定的軟件組件的設(shè)備的示例性計(jì)算機(jī)體系結(jié)構(gòu)400。因此,圖4中所示的計(jì)算機(jī)體系結(jié)構(gòu)400示出了用于服務(wù)器計(jì)算機(jī)、臺(tái)式計(jì)算機(jī)、上網(wǎng)本計(jì)算機(jī)、平板計(jì)算機(jī)、膝上型計(jì)算機(jī)、智能電話、和/或其他計(jì)算設(shè)備的體系結(jié)構(gòu)。計(jì)算機(jī)體系結(jié)構(gòu)400可用于執(zhí)行此處所呈現(xiàn)的軟件組件的任何方面。圖4所示的計(jì)算機(jī)體系結(jié)構(gòu)400包括中央處理單元402 ( “CPU” )、包括隨機(jī)存取存儲(chǔ)器404( “RAM”)和只讀存儲(chǔ)器(“ROM”)406的系統(tǒng)存儲(chǔ)器408、以及將存儲(chǔ)器404耦合至CPU 402的系統(tǒng)總線410。基本輸入/輸出系統(tǒng)被存儲(chǔ)在ROM 408中,該系統(tǒng)包含幫助諸如在啟動(dòng)期間計(jì)算機(jī)體系結(jié)構(gòu)400中的元件之間傳遞信息的基本例程。計(jì)算機(jī)體系結(jié)構(gòu)400還包括用于存儲(chǔ)操作系統(tǒng)106和服務(wù)器應(yīng)用程序108的大容量存儲(chǔ)設(shè)備412。盡管未在圖4中示出,但大容量存儲(chǔ)設(shè)備412還可被配置成在需要時(shí)存儲(chǔ)基本數(shù)據(jù)114和/或變更集120。將大容量存儲(chǔ)設(shè)備412通過連接到總線410的大容量存儲(chǔ)控制器(未示出)連接到CPU 402。大容量存儲(chǔ)設(shè)備412及其相關(guān)聯(lián)的計(jì)算機(jī)可讀介質(zhì)為計(jì)算機(jī)體系結(jié)構(gòu)400提供非易失性存儲(chǔ)。盡管對(duì)此處包含的計(jì)算機(jī)可讀介質(zhì)的描述參考了諸如硬盤或CD-ROM驅(qū)動(dòng)器之類的大容量存儲(chǔ)設(shè)備,但是本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)理解,計(jì)算機(jī)可讀介質(zhì)可以是可由計(jì)算機(jī)體系結(jié)構(gòu)400訪問的任何可用計(jì)算機(jī)存儲(chǔ)介質(zhì)。作為示例而非限制,計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)可包括以用于存儲(chǔ)諸如計(jì)算機(jī)可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊或其它數(shù)據(jù)的信息的任何方法或技術(shù)實(shí)現(xiàn)的易失性和非易失性、可移動(dòng)和不可移動(dòng)介質(zhì)。例如,計(jì)算機(jī)可讀介質(zhì)包括但不限于RAM、R0M、EPR0M、EEPR0M、閃存或其他固態(tài)存儲(chǔ)器技術(shù)、⑶-ROM、數(shù)字多功能盤(“DVD”)、HD-DVD、藍(lán)光(BLU-RAY)或其他光學(xué)存儲(chǔ)、磁帶盒、磁帶、磁盤存儲(chǔ)或其他磁性存儲(chǔ)設(shè)備、或能用于存儲(chǔ)所需信息并且可以由計(jì)算機(jī)體系結(jié)構(gòu)400訪問的任何其他介質(zhì)。為了本說明書和權(quán)利要求書的目的,短語“計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)”及其變型不包括波、信號(hào)和/或其他瞬態(tài)和/或無形通信介質(zhì)。根據(jù)各實(shí)施例,計(jì)算機(jī)體系結(jié)構(gòu)400可以使用通過諸如網(wǎng)絡(luò)104之類的網(wǎng)絡(luò)到遠(yuǎn)程計(jì)算機(jī)的邏輯連接來在聯(lián)網(wǎng)環(huán)境中操作。計(jì)算機(jī)體系結(jié)構(gòu)400可以通過連接至總線410的網(wǎng)絡(luò)接口單元414來連接到網(wǎng)絡(luò)104。應(yīng)當(dāng)理解,網(wǎng)絡(luò)接口單元414也可以用于連接至其它類型的網(wǎng)絡(luò)和遠(yuǎn)程計(jì)算機(jī)系統(tǒng),例如一個(gè)或多個(gè)設(shè)備110、數(shù)據(jù)庫116和/或其他節(jié)點(diǎn)或設(shè)備。計(jì)算機(jī)體系結(jié)構(gòu)400還可以包括用于接收和處理來自多個(gè)其他設(shè)備的輸入的輸入/輸出控制器416,這些設(shè)備包括鍵盤、鼠標(biāo)或者電子指示筆(未在圖4中示出)。類似地,輸入/輸出控制器416可以提供至顯示屏、打印機(jī)或其他類型的輸出設(shè)備(也未在圖4中示出)的輸出。

應(yīng)當(dāng)理解,本文所描述的軟件組件在被加載到CPU 402中并被執(zhí)行時(shí)可以將CPU402和總體計(jì)算機(jī)體系結(jié)構(gòu)400從通用計(jì)算系統(tǒng)變換成為方便本文所提出的功能而定制的專用計(jì)算系統(tǒng)。CPU 402可從任何數(shù)目的晶體管或其他分立電路元件中構(gòu)造,這些元件可以單獨(dú)或共同承擔(dān)任何數(shù)目的狀態(tài)。更具體地,CPU 402可以響應(yīng)于包含在本文所公開的軟件模塊中的可執(zhí)行指令來作為有限狀態(tài)機(jī)操作。這些計(jì)算機(jī)可執(zhí)行指令可以通過指定CPU402如何在各狀態(tài)之間轉(zhuǎn)換來變換CPU 402,由此變換了構(gòu)成CPU 402的晶體管或其它分立硬件元件。對(duì)本文所提出的軟件模塊的編碼也可變換本文所提出的計(jì)算機(jī)可讀介質(zhì)的物理結(jié)構(gòu)。在本說明書的不同的實(shí)現(xiàn)中,物理結(jié)構(gòu)的具體變換可取決于各種因素。這樣的因素的示例可以包括,但不僅限于用于實(shí)現(xiàn)計(jì)算機(jī)可讀介質(zhì)的技術(shù),計(jì)算機(jī)可讀介質(zhì)被表征為主存儲(chǔ)器還是輔存儲(chǔ)器等等。例如,如果計(jì)算機(jī)可讀介質(zhì)被實(shí)現(xiàn)為基于半導(dǎo)體的存儲(chǔ)器,則本文所公開的軟件可以通過變換半導(dǎo)體存儲(chǔ)器的物理狀態(tài)而在計(jì)算機(jī)可讀介質(zhì)上編碼。例如,軟件可以變換構(gòu)成半導(dǎo)體存儲(chǔ)器的晶體管、電容器或其它分立電路元件的狀態(tài)。軟件還可變換這些組件的物理狀態(tài)以在其上存儲(chǔ)數(shù)據(jù)。作為另一示例,本文所公開的計(jì)算機(jī)可讀介質(zhì)可以使用磁或光技術(shù)來實(shí)現(xiàn)。在這些實(shí)現(xiàn)中,本文所提出的軟件可以在其中編碼了軟件時(shí)變換磁或光介質(zhì)的物理狀態(tài)。這些變換可包括更改給定磁性介質(zhì)內(nèi)的具體位置的磁性。這些變換還可以包括改變給定光學(xué)介質(zhì)內(nèi)的特定位置的物理特征或特性,以改變這些位置的光學(xué)特性。物理介質(zhì)的其它變換是可能的,而不脫離本說明書的范圍和精神,而上述示例僅僅是為了方便這一討論而提供的。鑒于以上內(nèi)容,應(yīng)當(dāng)理解,在計(jì)算機(jī)體系結(jié)構(gòu)400中發(fā)生許多類型的物理變換以便存儲(chǔ)并執(zhí)行在此所提出的軟件組件。還應(yīng)當(dāng)理解,計(jì)算機(jī)體系結(jié)構(gòu)400可包括其它類型的計(jì)算設(shè)備,包括手持式計(jì)算機(jī)、嵌入式計(jì)算機(jī)系統(tǒng)、個(gè)人數(shù)字助理、以及本領(lǐng)域技術(shù)人員已知的其它類型的計(jì)算設(shè)備。還可以構(gòu)想的是,計(jì)算機(jī)體系結(jié)構(gòu)400可以不包括圖4所示的全部組件,可以包括未在圖4中明確示出的其它組件,或者可利用完全不同于圖4所示的體系結(jié)構(gòu)?;谏鲜鰞?nèi)容,應(yīng)當(dāng)理解,本文已經(jīng)公開了用于減少數(shù)據(jù)庫事務(wù)期間的鎖定的技術(shù)。盡管用對(duì)計(jì)算機(jī)結(jié)構(gòu)特征、方法和變換動(dòng)作、特定計(jì)算機(jī)器和計(jì)算機(jī)可讀介質(zhì)專用的語言描述了本文所提出的主題,但可以理解,所附權(quán)利要求書中定義的本發(fā)明不必限于本文所述的具體特征、動(dòng)作或介質(zhì)。相反,這些具體特征、動(dòng)作和介質(zhì)是作為實(shí)現(xiàn)權(quán)利要求的示例形式來公開的。上述主題僅作為說明提供,并且不應(yīng)被解釋為限制??蓪?duì)此處描述的主題作出各種修改和改變,而不必遵循所示和所述的示例實(shí)施例和應(yīng)用,且不背離所附權(quán)利要求書中所述的本發(fā)明的真正精神和范圍。
1權(quán)利要求
1.一種用于更新數(shù)據(jù)庫(116)中的基本數(shù)據(jù)(114)的計(jì)算機(jī)實(shí)現(xiàn)的方法,所述計(jì)算機(jī)實(shí)現(xiàn)的方法包括執(zhí)行計(jì)算機(jī)實(shí)現(xiàn)的操作用于在服務(wù)器計(jì)算機(jī)(102)處從設(shè)備(110)接收操作(112),所述操作(112)包括用于修改所述數(shù)據(jù)庫(116)中的所述基本數(shù)據(jù)(114)的信息;基于所述操作(11 來生成變更集(120),所述變更集(120)指示將對(duì)所述數(shù)據(jù)庫(116)中的所述基本數(shù)據(jù)(114)作出的變更;將所述變更集(120)存儲(chǔ)在所述數(shù)據(jù)庫(116)中;以及響應(yīng)于確定所述設(shè)備(110)和所述服務(wù)器計(jì)算機(jī)(10 之間的事務(wù)已經(jīng)結(jié)束,根據(jù)所述變更集(120)中所指示的變更來更新所述基本數(shù)據(jù)(114)。
2.如權(quán)利要求1所述的方法,其特征在于,所述變更集包括已變更記錄表,所述已變更記錄表存儲(chǔ)指示所述基本數(shù)據(jù)中由所述操作變更的記錄的數(shù)據(jù)。
3.如權(quán)利要求2所述的方法,其特征在于,所述基本數(shù)據(jù)中由所述操作變更的記錄包括由所述操作刪除的記錄。
4.如權(quán)利要求2所述的方法,其特征在于,更新所述基本數(shù)據(jù)包括修改所述基本數(shù)據(jù)中由存儲(chǔ)在所述已變更記錄表中的數(shù)據(jù)指示的記錄。
5.如權(quán)利要求2所述的方法,其特征在于,所述已變更數(shù)據(jù)表的布局與存儲(chǔ)所述基本數(shù)據(jù)的基本數(shù)據(jù)表的布局相同。
6.如權(quán)利要求1所述的方法,其特征在于,所述變更集包括已變更記錄表和已刪除記錄表,所述表存儲(chǔ)指示所述基本數(shù)據(jù)中由所述操作變更的記錄或所述基本數(shù)據(jù)中由所述操作刪除的記錄中的至少一個(gè)的數(shù)據(jù)。
7.如權(quán)利要求6所述的方法,其特征在于,還包括從所述設(shè)備接收查詢,所述查詢包括從所述數(shù)據(jù)庫中讀取所述基本數(shù)據(jù)的請(qǐng)求;以及生成經(jīng)修改的查詢,所述經(jīng)修改的查詢包括所述查詢以及用于讀取存儲(chǔ)在所述已變更記錄表或所述已刪除記錄表中的至少一個(gè)里的數(shù)據(jù)的變更集查詢。
8.如權(quán)利要求7所述的方法,其特征在于,還包括執(zhí)行所述查詢以及所述變更集查詢以獲取滿足所述查詢的結(jié)果。
9.如權(quán)利要求8所述的方法,其特征在于,還包括確定所述設(shè)備和所述服務(wù)器計(jì)算機(jī) 之間的事務(wù)是否已經(jīng)結(jié)束。
10.如權(quán)利要求9所述的方法,其特征在于,更新所述基本數(shù)據(jù)包括以下操作中的至少一個(gè)根據(jù)存儲(chǔ)在所述已變更記錄表中的數(shù)據(jù)來變更所述基礎(chǔ)數(shù)據(jù)中的記錄;或者根據(jù)存儲(chǔ)在所述已刪除記錄表中的數(shù)據(jù)來刪除所述基礎(chǔ)數(shù)據(jù)中的記錄。
11.如權(quán)利要求1所述的方法,其特征在于,更新所述基本數(shù)據(jù)包括鎖定所述基本數(shù)據(jù)以便進(jìn)行更新;以及在鎖定所述基本數(shù)據(jù)以便進(jìn)行更新的同時(shí)根據(jù)所述變更集來更新所述基本數(shù)據(jù)。
12.如權(quán)利要求11所述的方法,其特征在于,更新所述基本數(shù)據(jù)還包括在完成對(duì)所述基本數(shù)據(jù)的更新后,解鎖所述基本數(shù)據(jù);以及丟棄所述變更集。
13.如權(quán)利要求1所述的方法,其特征在于,所述操作包括結(jié)構(gòu)化查詢語言操作。
14.一種其上存儲(chǔ)有計(jì)算機(jī)可讀指令的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),所述指令在由計(jì)算機(jī)(102)執(zhí)行時(shí)使所述計(jì)算機(jī)(102)從設(shè)備(110)接收操作(112),所述操作(112)包括用于修改所述數(shù)據(jù)庫(116)中的基本數(shù)據(jù)(114)的信息;基于所述操作(11 來生成變更集(120),所述變更集(120)指示將對(duì)所述數(shù)據(jù)庫(116)中的所述基本數(shù)據(jù)(114)作出的變更;將所述變更集(120)存儲(chǔ)在所述數(shù)據(jù)庫(116)中;以及響應(yīng)于確定所述設(shè)備(110)和所述計(jì)算機(jī)(10 之間的事務(wù)已經(jīng)結(jié)束,根據(jù)所述變更集(120)中所指示的變更來更新所述基本數(shù)據(jù)(114)。
15.如權(quán)利要求15所述的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其特征在于,還包括在由所述計(jì)算機(jī)執(zhí)行時(shí)使得所述計(jì)算機(jī)執(zhí)行以下操作的指令從所述設(shè)備接收查詢,所述查詢包括從所述數(shù)據(jù)庫中讀取所述基本數(shù)據(jù)的請(qǐng)求;生成經(jīng)修改的查詢,所述經(jīng)修改的查詢包括所述查詢以及用于讀取存儲(chǔ)在所述已變更記錄表或所述已刪除記錄表中的至少一個(gè)里的數(shù)據(jù)的變更集查詢;執(zhí)行所述查詢以及所述變更集查詢以獲取滿足所述查詢的結(jié)果;以及確定所述設(shè)備和所述服務(wù)器計(jì)算機(jī)之間的事務(wù)是否已經(jīng)結(jié)束。
全文摘要
本發(fā)明涉及減少數(shù)據(jù)庫事務(wù)期間的鎖定。此處描述了用于在不使用高速緩存的情況下減少數(shù)據(jù)庫事務(wù)期間的鎖定的概念和技術(shù)。根據(jù)此處公開的概念和技術(shù),服務(wù)器應(yīng)用程序響應(yīng)于接收到用于修改存儲(chǔ)在數(shù)據(jù)庫中的基本數(shù)據(jù)的操作而生成變更集。該變更集被存儲(chǔ)為與基本數(shù)據(jù)一起存儲(chǔ)在數(shù)據(jù)庫的表的集合,并且包括反映基本數(shù)據(jù)中已由這些操作創(chuàng)建和/或修改的記錄的第一表。該變更集還可包括反映基本數(shù)據(jù)中已由這些操作刪除的記錄的第二表。
文檔編號(hào)G06F17/30GK102385611SQ20111025725
公開日2012年3月21日 申請(qǐng)日期2011年8月26日 優(yōu)先權(quán)日2010年8月27日
發(fā)明者J·L·法爾克波, T·赫杰斯伯格 申請(qǐng)人:微軟公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
黄大仙区| 邯郸县| 顺平县| 石城县| 岐山县| 青河县| 鄢陵县| 夏邑县| 谷城县| 固阳县| 息烽县| 象山县| 万州区| 介休市| 曲水县| 顺昌县| 玛曲县| 伊川县| 定安县| 玉屏| 伊通| 叶城县| 洛扎县| 桐城市| 肇东市| 邯郸县| 分宜县| 德安县| 大足县| 扬中市| 旺苍县| 阜新市| 镇沅| 开鲁县| 汤阴县| 隆子县| 无棣县| 杭锦后旗| 昌都县| 兴国县| 工布江达县|