TWI461935B - 降低維持視域時的更新衝突 - Google Patents
降低維持視域時的更新衝突 Download PDFInfo
- Publication number
- TWI461935B TWI461935B TW097111079A TW97111079A TWI461935B TW I461935 B TWI461935 B TW I461935B TW 097111079 A TW097111079 A TW 097111079A TW 97111079 A TW97111079 A TW 97111079A TW I461935 B TWI461935 B TW I461935B
- Authority
- TW
- Taiwan
- Prior art keywords
- transaction
- update
- data
- column
- query
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2379—Updates performed during online database operations; commit processing
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2453—Query optimisation
- G06F16/24534—Query rewriting; Transformation
- G06F16/24539—Query rewriting; Transformation using cached or materialised query results
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2282—Tablespace storage structures; Management thereof
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2365—Ensuring data consistency and integrity
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Description
此發明係有關於降低維持視域時的更新衝突。
一資料庫可實現可序列化隔離,以避免或消除在交易期間之更新衝突。當一資料庫實現可序列化隔離時,該資料庫會使一交易產生一錯覺,使該交易感覺其似乎為目前唯一涉入該資料庫的交易。在可序列化隔離中,交易不需要擔心其它交易會同時改變資料值。為了提供一可序列化隔離,當一特定交易被允許進行時,資料庫可延遲交易。如此會導致不滿意的效能或一致性問題。
簡言之,本發明所主張標的係有關降低維持視域時的更新衝突。在某些態樣中,在快照隔離中之交易可更新一實體化視域。由於更新係隱藏起來,以避免交易取得不一致資料,因此無法看見該更新。當交易無法看到發生在交易期間內對一實體化視域之更新時,關聯該具體化視域之額外資訊可指示此現象。結果,當在交易期間內查詢該具體化視域時,查詢引擎可使用該額外資訊將資料自該更新中排除。
提供本「發明內容」係為了以一簡化方式介紹一組概念,在下文之「實施方式」中將進一步對其進行描述。本「發明內容」無意於確定所主張標的物的關鍵特徵或基本
特徵,也無意於用來限制本申請專利之發明的範圍。
「本發明所主張標的」一詞,除上下文有明確指出外,是指在「實施方式」段落中所描述的主張標的。「態樣」一詞應被解讀為「至少一態樣」。在「實施方式」段落中所確定的主張標的態樣,無意確定所主張標的之關鍵特徵或基本特徵。
第1圖例示說明一適當運算系統環境100之範例,本發明所主張態樣可在此環境下實現。運算系統環境100僅為一適當運算環境的範例,其並非提出本發明所主張標的之用途與功能之範疇的任何限制。運算環境100也不應視為具有任何關聯性或需要關連於範例性環境100中所例示之任何組件或組件的組合。
本發明所主張標的之態樣可以在其它多種一般性用途或特定用途運算系統環境或組態下來運作。本發明所主張標的可運行的適當習知運算系統、環境及/或組態包括(但不限於)個人電腦、伺服器電腦、手持或攜上裝置、多處理器系統、微控制式系統、機上盒、可程式消費者電子裝置、網路PC、微型電腦、主機電腦、包括任何上述系統或裝置的分散式運算環境,等等。
本發明所主張標的之態樣可以由電腦執行之一般性電腦可執行指令(如程式模組)之架構進行說明。一般來說,
程式模組包括常式、程式、物件、組件、資料結構等,其執行特定任務或實施特定抽象資料類型。本發明所主張標的之態樣也可以被實施於分散式計算環境,於該環境中藉由透過一通信網路連結之遠端處理裝置來執行特定任務。在一分散式計算環境中,程式模組皆可位於包括有記憶體儲存裝置的本機及遠端電腦儲存媒體中。
請參見第1圖,用於實施本發明所主張標的態樣的一示例性系統包括一型式為電腦110之一通用型運算裝置。電腦110的組件可包括(但不限於)一處理單元120、一系統記憶體130及一系統匯流排121,其可耦合多種系統組件(包括系統記憶體)到該處理單元120。該系統匯流排121可為數種匯流排結構之任何一種,其中包括一記憶體匯流排或記憶體控制器、一周邊匯流排、及使用多種匯流排架構之一本地匯流排。舉例來說(而非限制),這種架構包括工業標準架構(ISA,“Industry Standard Architecture”)匯流排、微通道架構(MCA,“Micro Channel Architecture”)匯流排、增強ISA(EISA,“Enhanced ISA”)匯流排、視頻電子標準協會(VESA.“Video Electronics Standards Association”)本地匯流排、及周邊組件戶連(PCI,“Peripheral Component Interconnect”)匯流排,亦稱之為Mezzanine匯流排。
電腦110基本上包括多種電腦可讀取媒體。電腦可讀取媒體可為任何可由電腦110存取的媒體,其同時包括揮發性與非揮發性媒體、可移除與不可移除媒體。舉例來說
(而非限制),電腦可讀取媒體可包含電腦儲存媒體與通信媒體。電腦儲存媒體同時包括揮發性與非揮發性、可移除與不可移除媒體,其可以任何方法或技術來實施以儲存資訊,例如電腦可讀取指令、資料結構、程式模組或其它資料。電腦儲存媒體包括(但不限於)RAM、ROM、EEPROM、快閃記憶體或其它記憶體技術,CD-ROM、數位多功能碟片(DVD,“Digital versatile disk”)或其它光碟儲存元、磁匣、磁帶、磁碟儲存元或其它磁性儲存裝置,或任何其它可用於儲存所想要資訊並可由電腦110存取之媒體。通信媒體基本上包含了電腦可讀取指令、資料結構、程式模組或其它在一調變資料信號中的資料,例如載波或其它輸送機制,並包括任何資訊傳遞媒體。該術語「調變資料信號」代表一信號中其一或多項特性為利用方法設定或改變以在該信號中編碼資訊。舉例來說(而非限制),通信媒體包括有線媒體,像是有線網路或直接線路連線,以及無線媒體,像是聲波、RF、紅外線及其它無線媒體。任何上述的組合亦必須包含在電腦可讀取媒體的範疇內。
系統記憶體130包括型式為揮發性及/或非揮發性記憶體的電腦儲存媒體,例如唯讀記憶體(ROM,“Read only memory”)131及隨機存取記憶體(RAM,“Random access memory”)132。一基本輸入/輸出系統133(BIOS, Basic input/output system)包含有基本的例式來協助電腦110之內元件之間的資訊轉換,例如在開機期間,其基本上是儲存在ROM 131中。RAM 132基本上包含資料及/或程式
模組,其可由處理單元120立即存取及/或目前在處理單元上運作。舉例來說(而非限制),第1圖例示了作業系統134、應用程式135、其它程式模組136及程式資料137。
電腦110亦可包括其它可移除/不可移除、揮發性/非揮發性電腦儲存媒體。僅舉例來說,第1圖例示一硬碟機141,其可讀取或寫入不可移除、非揮發性磁性媒體,一磁碟機151可讀取或寫入一可移除非揮發性磁碟片152,及一光碟機155,其可讀取或寫入一可移除非揮發性光碟片156,例如CD-ROM或其它光學媒體。可用於該示例性作業環境中的其它可移除/不可移除、揮發性/非揮發性電腦儲存媒體包括(但不限於)磁帶匣、快閃記憶卡、數位多功能碟片、數位錄影帶、固態RAM、固態ROM及類似者。硬碟機141基本上透過一不可移除記憶體介面來連接到系統匯流排121,例如介面140,磁碟機151及光碟機155,其基本上透過一可移除記憶體介面連接到系統匯流排121,例如介面150。
上述及第1圖所例示的驅動器及其相關的電腦儲存媒體提供了電腦可讀取指令、資料結構、程式模組及其它電腦110之資料的儲存。在第1圖中,例如硬碟機141係例示成儲存作業系統144、應用程式145、其它程式模組146及程式資料147。請注意這些組件可相同於作業系統134、應用程式135、其它程式模組136及程式資料137等,亦可不同。作業系統144、應用程式145、其它程式模組146及程式資料147在此給定不同編號來至少例示出他們為不
同的複本。一使用者可經由輸入裝置輸入指令及資訊到電腦110,像是一鍵盤162、一麥克風163及一指向裝置161,像是滑鼠、軌跡球或觸控板。其它輸入裝置(未示出)可包括搖桿、遊戲板、衛星碟、掃描器等等。這些及其它輸入裝置通常連接到該處理單元120,其透過耦合到系統匯流排之一使用者輸入介面160,但亦可由其它介面及匯流排結構做連接,像是平行埠、遊戲埠或一通用序列匯流排(USB,“Universal serial bus”)。一監視器191或其它種類的顯示裝置亦可經由一介面連接到系統匯流排121,例如視訊介面190。除了監視器之外,電腦亦可包括其它周邊輸出裝置,像是喇叭197及印表機196,其可透過一輸出周邊介面195連接。
電腦110可使用邏輯連線到一或多部遠端電腦(例如遠端電腦180)而在一網路化環境中操作。遠端電腦180可為一個人電腦、掌上型裝置、伺服器、路由器、網路PC、一對等裝置或其它常見網路節點,且基本上包括許多或所有上述關於電腦110之元件。在第1圖中所示的邏輯連線包括一區域網路(LAN,“Local area network”)171及一廣域網路(WAN,“Wide area networrk”)173,但亦可包括其它網路。這些網路化環境常見於辦公室、企業化電腦網路、企業內網路及網際網路。
當用於LAN網路環境中時,電腦110經由一網路介面或配接卡170連接到LAN 171。當用於WAN網路環境中時,電腦110基本上包括一數據機172或其它構件,用於
在WAN 173上建立通信,例如網際網路。數據機172可為內接或外接式,其可透過使用者輸入介面160或其它適當的機制連接到系統匯流排121。在一網路化環境中,相對於電腦110或其一部份所述之程式模組可儲存在該遠端記憶體儲存裝置中。舉例來說(而非限制),第1圖例示遠端應用程式185係位於記憶體裝置181上。應可瞭解到所示之網路連線僅為示例性,可使用其它構件來建立電腦之間的通信鏈結。
一資料庫亦可實現快照隔離,以降低交易期間之更新衝突。在快照隔離中,一資料庫在某一時間點(有時稱為「快照時間」)開始提供一交易可看見該資料庫中之資料。若在快照時間之後,有任何事情係被一更新程式而非該交易所改變,則資料庫會隱藏該等改變且顯示在快照時間點當時所存在之資料。
當可能涉及少量延遲時,快照隔離可允許使用該資料庫的應用程式可處理更多資料量。此外,與其它機制比較,當讀取資料庫值或由同時發生之交易來更新資料庫值且當該更新已被其它交易讀取之資料庫值時,與涉及阻擋與封鎖之環境相比,快照隔離環境可較容易去設計應用程式及資料庫關係綱目。然而,快照隔離可能會由於存取樣式導致資料一致之不規則性。
在一方法中,當一快照隔離環境中存取樣式可能導致
不一致資料時,DBMS(database management system,資料庫管理系統)中止試圖更新資料之交易。當使用快照隔離時,若一交易在無特殊防範措施下被允許進行而產生不一致資料,此種情況有時會被稱作更新衝突。
在前述方法中,當更新衝突頻率增加時,資料庫之資料處理量便會受到影響。在一足夠的更新衝突頻率下,一資料庫使用快照隔離且中止可能導致不一致資料之交易,該資料庫之資料處理量可能趨近或變成比使用可序列化隔離之資料庫其資料處理量還差。
使用快照隔離而可能導致不一致資料,係由於使用具體化視域。具體化視域係關聯一或多表格的預先計算查詢結果。在一具體化視域中,查詢結果可儲存在一表格或其它資料庫物件中,以在之後能進行快速參考。當對應具體化視域所查詢的一或多表格改變時,該具體化視域可逐步進行適當更新以反應該等改變。例如,在一包括其它表格之總合值之具體化視域中,當在該等其它表格中增加、刪除或改變新的列時,可更新具體化視域中之總合值,以反應該等其它表格中所增加、刪除或改變之值。將可認清,一具體化視域可大大地改善隨後使用該具體化視域之查詢之效能。
第2圖為一依據本發明所主張標的之一般性代表實例方塊圖,在該實例中一實現快照隔離之資料庫可建立不一致性。表格205包括二個列。每一列包括一客戶識別符及該客戶之結餘。
表格206包括一系列連續步驟,其針對Stefano之結餘而執行。在步驟210,Stefano將其信用卡插入至一自動存提款機(ATM)而開始一交易X1。在步驟210,Stefano的太太將其信用卡插入至一自動提款機而開始一交易X2。
在步驟212,Stefano取得其結餘為100美元。在步驟213,Stefano存入50美元。ATM依據該存款計算新的結餘。在步驟214,ATM將該Stefano的銀行帳戶結餘更新為150美元。在步驟215,ATM交付此交易。
在步驟216,Stefano的太太正在使用的ATM取得該結餘。在快照隔離中,該ATM取得之結餘為100美元。在步驟217,Stefano的太太存入20美元至ATM。ATM依據該存款計算出新結餘(即120美元)。在步驟218,ATM將Stefano銀行帳戶結餘更新為120美元。在方塊219,ATM交付此交易。
由此實例可看出,在沒有任何修正或防範步驟下,快照隔離中一序列之資料存取會造成Stefano的餘額錯誤。在一具體實施例中,可藉由使一交易在最終交付該交易前會先讀取其改變值之方式,進而避免不一致資料發生。若自從快照隔離開始後曾發生值之改變,則資料庫可中止該交易。應用程式於是可自由開始另一交易,且試圖更新該值。
第3A-3B圖例示說明依據本發明所主張標的之一般性代表另一實例之表格,其中一實現快照隔離之資料庫可建立不一致性。參照第3A圖,其示出三表格305-307。表格
307為一具體化視域,其由結合表格305及306建立得,其中A欄之值等於C欄之值。依據表格305及306所示之值,結果可得具體化視域307所示之值。
參照第3B圖,表格310-312、315-317及320-322分別對應表格305-307,表示二同時間執行之交易之不同階段。考慮如表格325所示二同時間執行之交易X1及X2。在步驟390前,所有表格皆無任何資料於其上,如表格310-312所示。在步驟390,交易X1開始。在步驟391,交易X2開始。
在步驟392,交易X1將列(1,X)插入至表格310而產生表格315。由於該等交易係執行於快照隔離中,因此交易X2不會看見表格310之改變。
在步驟393,交易X2將列(1,Y)插入表格316而產生表格321。由於該等交易係執行於快照隔離中,因此交易X1不會看見表格316之改變。
在步驟393,需要決定何者應在具體化視域322中。依據建立及維持具體化視域所使用的標準,若皆交付X1及X2兩者,則具體化視域322應進行更新以成為包括一列值(1,X,1,Y)分別在(A,B,C,D)欄位中之具體化視域322。若交易X2將此列插入至該具體化視域並接著交付,然後中止交易X1,則交易X1之中止不會回復在具體化視域322中由交易X2所造成的改變。在一具體實施例中,一交易可僅回復其本身所造成的改變。相反的,若交易X2未插入一列至具體化視域322中,問題同樣可能發生。若
交易X2交付且接著X1交付,且X1無法看見由X2所作的改變(由於交易隔離),則X1可能為法更新具體化視域322。在此方案中,在X1交付後,具體化視域322可能為法正確進行更新。
在一具體實施例中,此問題可由以下方式解決:延遲執行由交易X2更新具體化視域322,直到在X2之前開始的所有交易及造成需要更新具體化視域322中之列的所有交易交付或中止為止。可由交易X2執行之動作可如以下步驟發生:1. 將記錄插入至表格316。
2. 試圖將表格316中新的插入列與其它關聯視域定義之表格之列(例如,表格315)進行結合,以決定是否需要在具體化視域中反應改變,且應如何反應。在此步驟中,取消快照隔離以決定應用至具體化視域上的變化集。換句話說,可允許交易X2在其開始之後,看見在交易X1期間由交易X1所改變之值,只要他們已進行交付,且因此釋收相應封鎖。若由其它交易所作的改變係使得當其它交易交付時需要更新具體化視域322,則交易X2阻擋,直到其它交易交付或中止。
3. 適當地在具體化視域322中進行改變。
若交易X2在具體化視域322已進行更新之後(該更新係回應由另一同時發生之交易(例如X1,其在X2開始之後
交付其所作改變且結果取得其快照)對表格320所作的改變)讀取具體化視域322,則可能發生另一資料不一致性。即使若該同時發生的交易X1在此期間完成,則其所作改變不應被X2看見,因為交易X1的改變係在取得X2的快照之後才進行交付。
為了能了解此問題,以下認知將有幫助:在一般情況下,一交易可看見其本身所作的改變,即使是在這些改變被交付之前亦可看見。因此,若一交易使用發生在該交易快照時間之後之改變來更新一具體化視域,且該交易接著讀取表格,則該交易可在快照隔離期間看見其原本無法看見的資料值。
當讀取一具體化視域之資料時,讀取結果應與讀取其下之表格之結果相同。具體化視域存取應該僅加速回應時間,而不會影響操作之語意及結果。在上述例子中,若交易X2結合表格320與321,則其會接收一空結果集,因為在X2快照中無法看見由交易X1所插入之列。當存取該視域時應會產生相同結果。
第4圖係依據本發明所主張標的之一連串交易活動之另一例,其可導致此問題發生。T1及T2係二個表格且V係一經由結合T1及T2建立的具體化視域。此外,可假定T1及T2在交易X1及X2開始前即已包含某些資料。
在步驟403,使用者1將一列R1
插入至T1
並交付此交易。結果在T1中顯示以下列:
使用者2已開啟快照隔離交易;因此在步驟402之後交付的資料不應被使用者2看見。然而,在步驟405時使用者2將列R2
插入至T2
,V之索引需要被正確維持。因此,增加了對應R1及R2之組合的該具體化視域V列。
由於步驟405,T2呈現以下之列:
同時,在具體化視域中呈現以下之列:
由於遞增索引維持動作是在同一交易中完成,因此V中之列係標籤為X2之時戳。然而,步驟406及407將傳回不一致資料,儘管其係功能上等同。由於對應R1及R2之組合的索引列係由現行交易X2所建立,因此「選自V
」將回傳此列,但「選自T1
結合T2
」將不回傳該列。
在一方式中,可藉由在交易X2使用其不應看見的改變來更新一具體化視域之前即中止該交易X2,來解決此一問題。然而,若資料存取型樣係經常被使用,則此方式會影響資料庫資料處理量。
在一具體實施例中,可解決此問題而不需中止交易。即藉由將一具體化視域中之改變隱藏起來,讓不應該看見
該等改變之快照隔離中一交易無法看見該等改變。
第5圖示出依據本發明所主張標的之三個範例性資料結構,其可使用於資料庫中。表格505示出一表格之現行狀態。表格505及510包括使用者可見欄位506與511及額外資料507與512。在另一具體實施例中,額外資料507及512可關聯適當列,而非包括在表格505及510中。可見欄506及511可包括一應用程式可或能存取的一或多欄(例如,在先前版本之表格510)。額外資料507及512可包括其它資料,其係由資料庫以每一列或關聯每一列進行儲存。例如,對於每一列,額外資料可包括最後更新該列之交易之身份識別(ID),及存在於該交易進行更新之前且參考該列之值。
在一交易更新一列之前,該列可被移動至先前版本之表格510。已更新列中額外資料可包括一值,其識別在先前版本之表格510中的先前版本,及包括更新該列之交易之一交易ID。
在快照隔離中,當一交易試圖存取表格505中一列時,DBMS首先會查核該列之額外資料是否包括關聯該交易之ID。若該列包括關聯該交易之ID,則DBMS可提供如表格505中所指示的列狀態至該交易。若否,則DBMS可藉由存取交付資料結構515來決定該列之交付時間。若該列之交付時間係在該交易之快照時間之後,則DBMS可存取表格510中最先前版本之列。若該列係由另一交易進行更新,則DBMS可決定該先前版本之交付時間是否在該
交易之快照時間之後。若是,則DBMS可存取下一個最先前版本之列,直到其發現由該交易更新之列或發現具有交付時間早於該交易之快照時間之列。
為了解決看見一具體化視域中資料之問題,在一具體實施例中,DBMS可利用一可見/不可見旗標對表格505之額外資料507中每一列進行標示。在此具體實施例中,表格505可代表具體化視域。若交易試圖存取表格505中資料,則DBMS僅可回傳具有可見旗標集之列。為了能將具體化視域中不應被看見的列隱藏起來,直到交易交付為止,DBMS可清除可見旗標(例如,將列標示為不可見)。
在一具體實施例中,可見旗標之值係取自視域定義中之表格之所有列,其經處理以計算施用至該視域之增加的改變。回到先前配合第4圖所說明的例子,由使用者2插入至視域V中之列將藉由結合由使用者2新插入至表格R2之列與表格R1之匹配列,而計算得。在此例中,將有一匹配列其係在取得使用者2之快照之後,被另一交易插入,意即該被插入視域中之列將被標示成不可見。若使用者1在取得使用者2之快照之前即已交付表格R1中匹配列之插入,則該被插入視或V中之列會被標示成可見。
在另一具體實施例中,DBMS可提供二個交易ID予每一交易。當交易更新一具體化視域且該更新應被該交易看見時,DBMS可用該交易獲得的第一交易ID來標示該列。當交易更新一具體化視域且該更新不應被該交易看見時,DBMS可用第二交易ID來標示該列。當交易請求關於表格
505之資訊時,DBMS可回傳關聯第一交易ID但無關第二交易ID之資料。
將認知到在其它資料庫系統中,可利用其它機制來達到此隱藏效果,而不致背離本發明所主張標的之精神或範疇。
第6圖為一依據本發明所主張標的之一般性之範例性動作流程圖。在方塊605,動作開始。
在方塊610,快照隔離中一交易開始。例如,參照第4圖,交易X1開始。
在方塊615,該交易或另一交易造成一具體化視域之改變。例如,參照第3B圖,交易X1插入一列至表格315且交易X2插入一列至表格321。該等列將影響具體化視域322(例如表格320之欄A等於表格321之欄C)。
在方塊620,該交易更新具體化視域。在方塊625,該具體化視域之更新隱藏不讓該交易看見,如前述。
在方塊630,交易查詢具體化視域。此處之查詢是指執行關於具體化視域之任何合法資料庫操作。某些範例性資料庫操作包括:自一或多其它表格中選出列或將具體化視域與一或多其它表格結合,以得到結果。
在方塊635,回傳結果,作為對該查詢之回應。如先前所述,若發生在交易開始之後的具體化視域之更新,其係取自由同時間發生之交易對其它涉及視域定義之表格所作的改變,且其已在取得現行交易之快照後被交付,則結果不包括取自此等更新的資料。若在現行交易開始之前即
已交付改變,則結果將包括該等資料。
在方塊640,交易完成(例如交付或中止)。注意到若交易中止,則具體化視域之更新會回復。
在方塊645,動作結束。
可結合動作中一或多者或可改變動作發生順序,本發明所屬技術領域中熟習技藝者可確認將不致背離本發明所主張標的之精神或範疇。例如,方塊620中更新具體化視域之動作包括方塊625中執行更新時隱藏該更新不讓交易看見之動作。
第7圖為一方塊圖,其代表一範例性裝置配置來依據本發明所主張標的進行運作。裝置705可包括一資料庫管理系統(DBMS)707、一資料儲存7330及一通訊機制735。DBMS707可包括一交易協調器710、一查詢引擎715及一具體化視域更新器720。
交易協調器710可提供交易支援,包括快照隔離。DBMS707可透過交易協調器710協調交易起始、交付及中止。
具體化視域更新器720依據針對該等視域所指定標準來更新具體化視域。當具體化視域所依據之表格之資料改變時,具體化視域更新器720可逐步更新該具體化視域。若需要指示一特定交易如前所述無法看見一列,則具體化視域更新器可在一具體化視域中所更新之列中放置額外資訊。
查詢引擎715可操作自表格及具體化視域取得資料。
當自具體化視域取得資料時,若包含在更新中之額外資料指示隱藏資料,則查詢引擎715可隱藏在交易中建立之更新不讓交易期間送出之查詢看見。如此一來可避免前述之不一致問題。
通訊機制735允許裝置705與其它裝置進行通訊以接收查詢、更新等,且例如提供資料作為查詢之回應。通訊機制640可為一網路介面或適配器170、數據機172或任何如配合第1圖所述之其它建立通訊之方法。
將認知到可實施第7圖所示之裝置705之其它變化,而不致背離本發明所主張標的之態樣之精神或範疇。亦將認知到裝置705可存在更多、更少或其它組件,而不致背離本發明所主張標的之態樣之精神或範疇。
由前文之詳細說明可知,已描述各種關於降低維持視域時的更新衝突之態樣。本發明所主張標的之態樣容許各種修改及替代構造時,同時也在圖示中示出某些例示性具體實施例且已在前文詳細描述。然而,應瞭解無意對本發明所主張標的之態樣限制在所揭露的特定形式內。相反的,希望能涵蓋本發明所主張標的之態樣之精神及範疇內所有修改、替代構造及等同物。
110‧‧‧電腦
120‧‧‧處理單元
121‧‧‧系統匯排流
130‧‧‧系統記憶體
131‧‧‧唯讀記憶體
133‧‧‧基本輸入/輸出系統
132‧‧‧隨機存取記憶體
134‧‧‧作業系統
135‧‧‧應用程式
136‧‧‧其它程式模組
137‧‧‧程式資料
140‧‧‧介面
141‧‧‧硬碟機
144‧‧‧作業系統
145‧‧‧應用程式
146‧‧‧其他程式模組
147‧‧‧程式資料
150‧‧‧介面
151‧‧‧磁碟機
152‧‧‧可移除非揮發性磁碟片
155‧‧‧光碟機
156‧‧‧可移除非揮發性光碟片
160‧‧‧使用者輸入介面
161‧‧‧指向裝置
162‧‧‧鍵盤
163‧‧‧麥克風
170‧‧‧網路介面/配接卡
171‧‧‧區域網路
172‧‧‧數據機
173‧‧‧廣域網路
180‧‧‧遠端電腦
185‧‧‧遠端應用程式
190‧‧‧視訊介面
191‧‧‧監視器
195‧‧‧輸出周邊介面
196‧‧‧印表機
197‧‧‧喇叭
705‧‧‧裝置
707‧‧‧資料庫管理系統(DBMS)
710‧‧‧交易協調器
715‧‧‧查詢引擎
720‧‧‧具體化視域更新器
730‧‧‧資料儲存
735‧‧‧通訊機制
前文所述及本發明所主張標的之其它態樣,皆係以例示方法進行說明且不限制於所附圖示,圖中相同元件符號係指相同元件,其中:
第1圖為一範例性通用電腦環境方塊圖,本發明所主張標的可實現於此電腦環境中;第2圖為依據本發明所主張標的之態樣的一般代表性範例方塊圖,其中實現快照隔離的一資料庫會產生一不一致;第3A-3B圖例示依據本發明所主張標的之態樣的另一一般代表性範例之表格,其中實現快照隔離的一資料庫會產生一不一致;第4圖為依據本發明所主張標的之態樣的一交易活動序列之範例,其可以導致此問題;第5圖例示依據本發明所主張標的之三種範例性資料結構,其可用於一資料庫中;第6圖為依據本發明所主張標的之一般性之範例性動作流程圖;及第7圖為一代表一範例性裝置之方塊圖,該裝置可配置以依據本發明所主張標的運作。
Claims (19)
- 一種具有電腦可執行指令之電腦可讀儲存媒體,當執行該等指令時可實施包含以下步驟:在一交易期間內,對一具體化視域(materialized view)進行一更新以因應發生在該交易之一快照時間之後的一資料修改,該交易具有的視域包含自該快照時間起已存在之資料,以及該交易在該快照時間之後曾對該等資料進行之任何改變,該更新發生在該交易完成之前;及在該交易完成之前並在不中止該交易之下,為了避免該交易獲得不一致的資料,從該交易排除該更新,使得在該交易期間內對該具體化視域之一查詢不回傳由該交易所進行之該更新且不回傳對該具體化視域中涉及之一表格所進行之改變而衍生的更新,而根據在該快照時間前已存在的資料來回傳一結果以回應該查詢,對該表格所進行之改變乃由在該交易之該快照時間後已經交付的一同時交易所進行。
- 如申請專利範圍第1項所述之電腦可讀儲存媒體,其中該具體化視域包括一資料庫物件,在該資料庫物件中已儲存一先前查詢之結果。
- 如申請專利範圍第2項所述之電腦可讀儲存媒體,其中 更新該資料庫物件係在關聯該查詢之資料改變之後。
- 如申請專利範圍第3項所述之電腦可讀儲存媒體,其中更新該資料庫物件係在另一交易交付資料予影響該具體化視域的一資料結構後,但在該交易完成前。
- 如申請專利範圍第2項所述之電腦可讀儲存媒體,其中該資料庫物件包括一表格。
- 如申請專利範圍第1項所述之電腦可讀儲存媒體,其中從該交易排除該更新之步驟包括用一旗標標示該更新,該旗標指示該更新對於該交易為隱藏(invisible)。
- 如申請專利範圍第1項所述之電腦可讀儲存媒體,其中從該交易排除該更新之步驟包括將該更新與一交易識別符建立聯結,該交易識別符非為被利用來取得在該交易期間內所進行之更新的交易識別符。
- 一種用於降低更新衝突的方法,該方法至少一部分由一電腦實施,該方法包括以下步驟:在一交易期間內查詢一具體化視域,在該交易期間內對該具體化視域欲進行一更新,該交易具有的視域包含自一快照時間起已存在之一資料庫,且該資料庫由該 交易在該快照時間之後造成的變化所修改,該快照時間對應於該交易開始之前之一時間;及回應於該查詢步驟,在該交易完成之前且在不中止該交易之下,為了避免該交易取得不一致的資料,自該交易排除該更新,因此回傳不包括關聯於該交易所進行之該更新之資訊的一結果。
- 如申請專利範圍第8項所述之方法,其中該具體化視域包括對一或更多表格之一查詢的結果,該結果被儲存以作為之後使用。
- 如申請專利範圍第9項所述之方法,其中隨著若再次執行該查詢而將影響該查詢之結果的資料被更新、被插入、或被刪除,該具體化視域會逐步被更新。
- 如申請專利範圍第8項所述之方法,其中自該交易排除該更新之步驟包括將該具體化視域中一列之資料自該結果中排除,該列包括指示該更新對該交易為隱藏(invisible)的額外資料。
- 如申請專利範圍第8項所述之方法,其中自該交易排除該更新之步驟包括將該具體化視域中一列之資料自該結果中排除,該列相關於指示該更新對該交易為隱藏 (invisible)的額外資料。
- 如申請專利範圍第8項所述之方法,其中自該交易排除該更新之步驟包括將該具體化視域中一列之資料自該結果中排除,該列在該交易期間內被更新、插入或刪除,該列與額外資料相關,該額外資料將該列與一交易識別符建立連結,該交易不使用該交易識別符以自該具體化視域取得資料。
- 如申請專利範圍第8項所述之方法,其中該查詢步驟包括傳送一查詢至一資料庫管理系統,該查詢命令該資料庫管理系統回傳與該具體化視域相關並符合該查詢所指定之條件的資料。
- 如申請專利範圍第14項所述之方法,其中該查詢命令該資料庫管理系統將一或更多其它表格與該具體化視域結合(join),以取得該結果。
- 如申請專利範圍第8項所述之方法,更包括決定該交易是否可藉由查閱與該更新相關之額外資訊而看見該更新,該額外資訊無法被該交易使用。
- 一種用於降低更新衝突之設備,包括: 一計算系統環境,該計算系統環境包含一處理單元,該處理單元耦合至一系統記憶體,該計算系統環境進一步包含:一交易協調器,該交易協調器係可操作以提供快照隔離(snapshot isolation)予交易,該快照隔離使每一交易具有之視域包含在該交易開始時已存在之資料;一具體化視域更新器,該具體化視域更新器係可操作以更新一具體化視域使該具體化視域包括一指示項,該指示項指示更新該具體化視域的該交易不被允許看見該更新,其中該指示項包含關聯於該交易的一識別符,該識別符指示該更新係由該交易所致;及一查詢引擎,該查詢引擎係可操作以依據該指示項自該具體化視域取得資料,該查詢引擎係進一步可操作以進行下列步驟:為了避免該交易獲得不一致的資料,根據指示該更新係由該交易所致的該識別符來從該交易排除該更新,使得在該交易期間內對該具體化視域之一查詢不回傳由該交易所進行之該更新。
- 如申請專利範圍第17項所述之設備,其中該指示項包括一旗標,該旗標係在與該具體化視域之一列相關的額 外資料中,該旗標指示該具體化視域之該列是否對該交易為可見(visible)。
- 如申請專利範圍第18項所述之設備,其中該識別符與該交易使用以自該具體化視域取得資料之識別符不同。
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US11/796,865 US9483525B2 (en) | 2007-04-30 | 2007-04-30 | Reducing update conflicts when maintaining views |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| TW200846954A TW200846954A (en) | 2008-12-01 |
| TWI461935B true TWI461935B (zh) | 2014-11-21 |
Family
ID=39888271
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| TW097111079A TWI461935B (zh) | 2007-04-30 | 2008-03-27 | 降低維持視域時的更新衝突 |
Country Status (3)
| Country | Link |
|---|---|
| US (3) | US9483525B2 (zh) |
| TW (1) | TWI461935B (zh) |
| WO (1) | WO2008137227A1 (zh) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| TWI693526B (zh) * | 2019-03-19 | 2020-05-11 | 彰化商業銀行股份有限公司 | 適用於自動櫃員機的資料庫資料結構異動更新系統及其方法 |
Families Citing this family (12)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US8762333B2 (en) * | 2009-07-08 | 2014-06-24 | Pivotal Software, Inc. | Apparatus and method for read optimized bulk data storage |
| US8396831B2 (en) * | 2009-12-18 | 2013-03-12 | Microsoft Corporation | Optimistic serializable snapshot isolation |
| US8356007B2 (en) | 2010-10-20 | 2013-01-15 | Microsoft Corporation | Distributed transaction management for database systems with multiversioning |
| US20120136839A1 (en) * | 2010-11-30 | 2012-05-31 | Peter Eberlein | User-Driven Conflict Resolution Of Concurrent Updates In Snapshot Isolation |
| JP5772458B2 (ja) * | 2011-09-29 | 2015-09-02 | 富士通株式会社 | データ管理プログラム、ノード、および分散データベースシステム |
| US9613104B2 (en) * | 2012-02-17 | 2017-04-04 | Netflix, Inc. | System and method for building a point-in-time snapshot of an eventually-consistent data store |
| US9424304B2 (en) * | 2012-12-20 | 2016-08-23 | LogicBlox, Inc. | Maintenance of active database queries |
| US10268639B2 (en) * | 2013-03-15 | 2019-04-23 | Inpixon | Joining large database tables |
| US9734183B2 (en) * | 2013-08-08 | 2017-08-15 | Hong Kong Baptist University | System and method for performing view updates in database systems |
| US12038909B2 (en) * | 2019-06-28 | 2024-07-16 | Dennis Flanagan | Systems and methods for scalable database technology |
| US11868347B1 (en) * | 2019-11-27 | 2024-01-09 | Amazon Technologies, Inc. | Rewriting queries to compensate for stale materialized views |
| US20240126728A1 (en) * | 2022-10-14 | 2024-04-18 | Oracle International Corporation | Natively supporting json duality view in a database management system |
Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6546402B1 (en) * | 2000-06-05 | 2003-04-08 | International Business Machines Corporation | System and method for asynchronous view maintenance |
| TWI258089B (en) * | 2004-12-23 | 2006-07-11 | Inst Information Industry | System, method and machine-readable storage medium for data synchronization |
| US20060219772A1 (en) * | 2005-04-01 | 2006-10-05 | Microsoft Corporation | Relaxed currency constraints |
Family Cites Families (32)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5133075A (en) | 1988-12-19 | 1992-07-21 | Hewlett-Packard Company | Method of monitoring changes in attribute values of object in an object-oriented database |
| US5396587A (en) * | 1990-04-11 | 1995-03-07 | 501 Lotus Development Corp. | Asynchronous, minimal update display system |
| US5870758A (en) | 1996-03-11 | 1999-02-09 | Oracle Corporation | Method and apparatus for providing isolation levels in a database system |
| US5999946A (en) | 1996-04-10 | 1999-12-07 | Harris Corporation | Databases in telecommunications |
| US6026390A (en) | 1996-05-29 | 2000-02-15 | At&T Corp | Cost-based maintenance of materialized views |
| US6006216A (en) | 1997-07-29 | 1999-12-21 | Lucent Technologies Inc. | Data architecture for fetch-intensive database applications |
| US6192377B1 (en) | 1998-05-13 | 2001-02-20 | Oracle Corporation | Method and apparatus for determing whether a transaction can use a version of a data item |
| US6205451B1 (en) * | 1998-05-22 | 2001-03-20 | Oracle Corporation | Method and apparatus for incremental refresh of summary tables in a database system |
| US6125360A (en) * | 1998-07-02 | 2000-09-26 | Oracle Corporation | Incremental maintenance of materialized views containing one-to-N lossless joins |
| US6353835B1 (en) | 1998-08-03 | 2002-03-05 | Lucent Technologies Inc. | Technique for effectively maintaining materialized views in a data warehouse |
| US6581205B1 (en) | 1998-12-17 | 2003-06-17 | International Business Machines Corporation | Intelligent compilation of materialized view maintenance for query processing systems |
| US6334128B1 (en) | 1998-12-28 | 2001-12-25 | Oracle Corporation | Method and apparatus for efficiently refreshing sets of summary tables and materialized views in a database management system |
| US6353828B1 (en) * | 1999-05-14 | 2002-03-05 | Oracle Corp. | Concurrency control for transactions that update base tables of a materialized view using different types of locks |
| US6484159B1 (en) | 1999-05-20 | 2002-11-19 | At&T Corp. | Method and system for incremental database maintenance |
| US6814088B2 (en) * | 1999-09-27 | 2004-11-09 | The Procter & Gamble Company | Aqueous compositions for treating a surface |
| US6671715B1 (en) | 2000-01-21 | 2003-12-30 | Microstrategy, Inc. | System and method for automatic, real-time delivery of personalized informational and transactional data to users via high throughput content delivery device |
| US6584476B1 (en) * | 2000-04-22 | 2003-06-24 | Oracle Corp. | System and method for enforcing referential constraints between versioned database tables |
| WO2002069172A1 (en) * | 2001-02-22 | 2002-09-06 | Didera, Inc. | Systems and methods for managing distributed database resources |
| US7092951B1 (en) | 2001-07-06 | 2006-08-15 | Ncr Corporation | Auxiliary relation for materialized view |
| US7158994B1 (en) | 2001-09-28 | 2007-01-02 | Oracle International Corporation | Object-oriented materialized views |
| US7181452B1 (en) | 2002-04-04 | 2007-02-20 | Ncr Corp. | Locking mechanism using predefined locks for aggregate materialized views in a database system |
| US20040064441A1 (en) | 2002-09-27 | 2004-04-01 | Tow Daniel S. | Systems and methods for providing structured query language optimization |
| US7143340B2 (en) * | 2003-06-27 | 2006-11-28 | Microsoft Corporation | Row sharing techniques for grid controls |
| US7243088B2 (en) | 2003-08-06 | 2007-07-10 | Oracle International Corporation | Database management system with efficient version control |
| US11392588B2 (en) * | 2003-09-04 | 2022-07-19 | Oracle International Corporation | Active queries filter extraction |
| US20050102326A1 (en) | 2003-10-22 | 2005-05-12 | Nitzan Peleg | Method and apparatus for performing conflict resolution in database logging |
| US7146386B2 (en) | 2004-03-29 | 2006-12-05 | Microsoft Corporation | System and method for a snapshot query during database recovery |
| US7769770B2 (en) | 2004-07-14 | 2010-08-03 | Microsoft Corporation | Secondary index and indexed view maintenance for updates to complex types |
| US7653665B1 (en) * | 2004-09-13 | 2010-01-26 | Microsoft Corporation | Systems and methods for avoiding database anomalies when maintaining constraints and indexes in presence of snapshot isolation |
| US7930297B2 (en) | 2004-12-03 | 2011-04-19 | Oracle International Corporation | Materialized view maintenance and change tracking |
| US8200700B2 (en) * | 2005-02-01 | 2012-06-12 | Newsilike Media Group, Inc | Systems and methods for use of structured and unstructured distributed data |
| EP1927078A2 (en) * | 2005-09-23 | 2008-06-04 | Millennium IT (USA) Inc. | Method of selectively displaying data |
-
2007
- 2007-04-30 US US11/796,865 patent/US9483525B2/en active Active
-
2008
- 2008-03-26 WO PCT/US2008/058223 patent/WO2008137227A1/en not_active Ceased
- 2008-03-27 TW TW097111079A patent/TWI461935B/zh not_active IP Right Cessation
-
2016
- 2016-09-02 US US15/255,327 patent/US9852174B2/en not_active Expired - Fee Related
-
2017
- 2017-12-22 US US15/853,677 patent/US11210283B2/en not_active Expired - Fee Related
Patent Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US6546402B1 (en) * | 2000-06-05 | 2003-04-08 | International Business Machines Corporation | System and method for asynchronous view maintenance |
| TWI258089B (en) * | 2004-12-23 | 2006-07-11 | Inst Information Industry | System, method and machine-readable storage medium for data synchronization |
| US20060219772A1 (en) * | 2005-04-01 | 2006-10-05 | Microsoft Corporation | Relaxed currency constraints |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| TWI693526B (zh) * | 2019-03-19 | 2020-05-11 | 彰化商業銀行股份有限公司 | 適用於自動櫃員機的資料庫資料結構異動更新系統及其方法 |
Also Published As
| Publication number | Publication date |
|---|---|
| US9483525B2 (en) | 2016-11-01 |
| WO2008137227A1 (en) | 2008-11-13 |
| US20180189346A1 (en) | 2018-07-05 |
| US9852174B2 (en) | 2017-12-26 |
| US11210283B2 (en) | 2021-12-28 |
| US20080270489A1 (en) | 2008-10-30 |
| TW200846954A (en) | 2008-12-01 |
| US20160371325A1 (en) | 2016-12-22 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| TWI461935B (zh) | 降低維持視域時的更新衝突 | |
| EP4254183A1 (en) | Transaction processing method and apparatus, computer device, and storage medium | |
| CA3121919C (en) | System and method for augmenting database applications with blockchain technology | |
| CN105630863B (zh) | 用于多版本并发提交状态的事务控制块 | |
| CN103744936B (zh) | 一种数据库中的多版本并发控制方法及数据库系统 | |
| US8832159B2 (en) | Systems and methods for asynchronous schema changes | |
| US8078582B2 (en) | Data change ordering in multi-log based replication | |
| US8788457B2 (en) | Ensuring that the archival data deleted in relational source table is already stored in relational target table | |
| CN109906448B (zh) | 用于促进可插拔数据库上的操作的方法、设备和介质 | |
| CN111143389A (zh) | 事务执行方法、装置、计算机设备及存储介质 | |
| EP3519986B1 (en) | Direct table association in in-memory databases | |
| US20120136839A1 (en) | User-Driven Conflict Resolution Of Concurrent Updates In Snapshot Isolation | |
| US8832022B2 (en) | Transaction processing device, transaction processing method and transaction processing program | |
| US8380663B2 (en) | Data integrity in a database environment through background synchronization | |
| CN108140054A (zh) | 用于使用sql补丁集或变更集的应用撤销和重做的技术 | |
| CN108959381B (zh) | 数据的管理方法及装置和电子设备 | |
| US12493607B2 (en) | Distributed transaction execution in distributed databases | |
| CN113836238A (zh) | 数据命令的批量处理方法及装置 | |
| CN110647535A (zh) | 一种将业务数据更新至Hive的方法、终端及存储介质 | |
| Idziorek et al. | Distributed Transactions at Scale in Amazon {DynamoDB} | |
| CN108140043B (zh) | 只附加分布式数据库的读写协议 | |
| EP3765972B1 (en) | Index management in a multi-process environment | |
| CN121002481A (zh) | 用于处理分布式事务的基于云的架构 | |
| JP4380692B2 (ja) | サマリーテーブルをリフレッシュするための装置、方法、及びプログラム | |
| US20240020286A1 (en) | Database management apparatus and database management method |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| MM4A | Annulment or lapse of patent due to non-payment of fees |