新四季網

用於同時更新資料庫的方法和裝置的製作方法

2023-08-13 02:16:11 2


專利名稱::用於同時更新資料庫的方法和裝置的製作方法
技術領域:
:本發明一般地涉及資料庫,具體涉及用於同時更新資料庫的方法、系統和裝置。
背景技術:
:通過利用鎖定機制己經在資料庫系統中實現了並發控制(concurrencycontrol)。這防止了相衝突的並發事務(transaction)引起資料庫破壞或者檢索到無效數據。使用許多方法來實現鎖定機制,包括二階段鎖定和多粒度鎖定,每種方法具有不同的阻止特性(blockingcharacteristics)。然而,這些方法都涉及當潛在地衝突的事務已鎖定了對資料庫的訪問時阻止某一事務,直到新事務可以獲得對資料庫的鎖定訪問時為止。用於並發控制的其他方法允許不鎖定資料庫,例如時間戳排序或提交排序(commitmentordering)。然而,這些方法涉及在檢測到衝突時重新開始事務。這實際上阻止了對事務的處理,直到潛在地衝突的事務已完成為止。在另一方法中,為了避免對事務的任何延遲,可以允許對資料庫的不受控制的並發訪問,冒著相衝突的事務引起資料庫破壞的相關風險。這種風險對於向特徵功能提供高可用性而言被認為是可接受的,其中審査機制被用於檢測和報告可被自動或手動解決的破壞。也可以使用鎖定機制和非排他性(non-exclusive)訪問的組合當從嵌入式系統管理應用(ESM)或其他外部應用發起事務時,應用鎖定機制。然而,呼叫處理特徵功能(例如,用戶改變轉移號碼設置)可以使用對資料庫的不受控制的並發訪問(不管資料庫是否為了系統配置目的而被鎖定)。因此,使用兩種不同的方法來訪問資料庫。ESM和其他外部應用(非高可訪問性實體)利用視圖層事務(涉及用於確保資料庫完整性的資料庫鎖定機制)來訪問資料庫。呼叫處理特徵功能(高可訪問性實體)使用表格層訪問來繞開視圖層並且直接更新資料庫表格記錄。然而,對回退(rollback)的支持在被引入到允許對資料庫的並發訪問的資料庫中時增大了資料庫破壞的風險。這是因為兩種潛在地衝突的事務可以重疊而不引起破壞,只要這兩種事務的組合在事務結束時被應用到資料庫即可。然而,如果潛在地衝突的事務之一執行回退,則其就將資料庫修改為第二事務不知道的先前狀況。例如,第一事務改變表格條目的第二欄位,且同時第二事務改變同一表格條目的第三欄位。這兩種改變都可以被應用而沒有衝突,然而,如果第一事務在第二事務完成之後調用回退,則對第三欄位的改變被用其原始值覆寫。如果對第三欄位的改變包括轉移號碼,則轉移號碼將丟失,而發起改變的實體卻並不知道。
發明內容本發明提供了一種同時更新資料庫的方法,該方法包括在資料庫中創建記錄的排他性拷貝,所述排他性拷貝供第一類的第一實體排他性地使用;將來自所述第一實體的對所述記錄的第一提議改變發布到所述排他性拷貝;判定所述排他性拷貝是否與所述記錄的非排他性拷貝相衝突,所述非排他性拷貝供第二類的多個第二實體非排他性地使用;如果所述排他性拷貝與所述非排他性拷貝不衝突,則將所述第一提議改變發布到所述記錄;如果所述排他性拷貝與所述非排他性拷貝衝突,則判定衝突是否可被解決;以及生成包括結果的日誌。參考以下附圖來描述實施例,在附圖中圖1示出了根據現有技術的用於更新資料庫的系統;圖2示出了根據一非限制性實施例的用於更新資料庫的系統;並且圖3示出了根據一非限制性實施例的用於更新資料庫的方法。具體實施例方式圖1示出了根據現有技術的用於更新資料庫110的系統100。資料庫110存儲記錄112,並且經由通信網絡124而與應用伺服器120和至少一個通信設備123-1、123-2...123-n(—般稱為通信設備123,並且總稱為通信設備123)通信。每個通信設備123-1、123-2…123-n可以分別與用戶125-1、125-2...125-n(—般稱為用戶125,並且總稱為用戶125)相關聯。在一些實施例中,用戶125中的至少一個可以是管理員。通信設備123可包括有線和/或無線通信設備、電話設備、計算設備、膝上型計算機、個人計算機、蜂窩電話、PDA等的任何希望的組合,其能夠經由通信網絡124與彼此通信並且與其他通信設備123及資料庫110通信。通信網絡124包括用於使能通信設備123、資料庫110和/或其他通信設備之間的通信的有線和/或無線通信網絡的任何希望的組合。通信網絡124還使能伺服器120和資料庫IIO之間的通信。通信網絡124可以包括但不限於模擬網絡(例如,PSTN)、基於分組的網絡(例如,網際網路)、無線網絡(例如,基於蜂窩的網絡、WiFi、WiMax)、LAN、WAN和WLAN。在一些實施例中,系統100可包括這樣的通信系統,其中應用伺服器120包括用於輔助去往和來自通信設備123的通信的至少一個應用121,並且記錄112包括與在通信設備123處可用的呼叫處理/特徵功能相關聯的設置(即,數據)。在一些實施例中,每個通信設備123以一一對應的關係對應於一個單獨的記錄112;然而,記錄112的數目不被認為是特別限制的。此外,在一些實施例中,系統IOO包括操作層,該操作層能夠作為通信設備123(和/或應用伺服器120)和記錄112(和/或記錄112的任何拷貝,如下所述)之間的接口,以使得記錄112的一個視圖被提供給通信設備123(和/或應用伺服器120),該視圖可以包括來自記錄112的數據,以及存儲在資料庫110的與該視圖有關的任何其他記錄。因此,在這些實施例中,對數據的操縱發生在層內(即,視圖內),並且記錄112被相應地更新。在這些實施例中,該層可以包括指向記錄112的指針和/或指向記錄112中的特定數據的(一個或多個)指針,和/或指向存儲在資料庫110的與該視圖有關的任何其他記錄內的特定數據的(一個或多個)指針。因此,可以了解,在以下討論中,儘管參考對記錄和記錄拷貝的操縱,但是在一些實施例中,這種操縱經由層而發生。表l包括記錄112的非限制性示例tableseeoriginaldocumentpage7在該非限制性示例中,存儲在記錄112中的數據包括以行和列布置的多個欄位,其中每一行對應於第一行中所標識出的通信設備123的不同設置,第一列中的第一欄位標識設置的名稱,並且第二列中的第二欄位包括設置的值。然而,記錄112的格式不是特別限制的,其他合適的格式都在本發明實施例的範圍內。在該示例中,第一行包括通信設備123-1的標識符,在該例中是通信設備123-1的電話號碼(613-555-1212)。第二行包括呼叫轉移的開啟/關閉設置("關閉"),且第三行包括在呼叫轉移設置為"開啟"的情況下呼叫被轉移到的號碼。其餘的行包括通信設備123-1處對快速撥號按鈕的設置(即,當在通信設備123-1處促動相應按鈕的情況下應當呼叫的號碼)。本領域技術人員可以想到其他設置,這些設置在本發明實施例的範圍內。例如,在一些實施例中,記錄112不是直接存儲諸如呼叫轉移號碼或快速撥號號碼之類的號碼,而是存儲對系統資源的引用(reference),例如數字串池(即,可分配的號碼的池)。如果記錄112包括與在通信設備123處可用的呼叫處理/特徵功能相關聯的設置/數據,則應用伺服器120處的應用121可被使能為根據給定標準而針對通信設備123之一來自動改變這些設置。在一非限制性示例中,應用121可被使能為根據基於一天中的時刻(timeofday)的標準來改變呼叫轉移設置(例如,在辦公時間之外將呼叫轉移到語音郵箱、應答服務、呼叫中心或者給定號碼)和/或根據基於存在性信息的標準來改變呼叫轉移設置(例如,基於用戶125的存在性將呼叫轉移到語音郵箱、應答服務、呼叫中心或給定號碼)。當滿足給定標準時,應用伺服器120試圖更新資料庫IIO,以使得記錄112中所存儲的設置被更新。在這樣做時,在資料庫110中創建記錄112的排他性拷貝150。所提議的對記錄112的改變(例如,轉移號碼的改變)被存儲在排他性拷貝150中。繼續表1的非限制性示例,表2包括當呼叫轉移號碼將被改變為613-555-1234時記錄112的排他性拷貝150的非限制性示例表2:排他性拷貝150的非限制性實施例通信設備123標識符613-555-1212(123-1)呼叫轉移開啟呼叫轉移號碼613-555-1234快速撥號1204-555-8765快速撥號1613-555-1515因此,包括呼叫轉移開啟/關閉設置的欄位將被改變為"開啟",並且包括呼叫轉移號碼的欄位將被改變為613-555-1234,這可以是語音郵箱的號碼或者下班以後應答服務。此外,包括第一快速撥號號碼的欄位將被改變為204-555-8765。在原始記錄112存儲對諸如數字串池之類的系統資源的引用的實施例中,排他性拷貝150也將存儲對系統資源的引用,並且當發生改變時,改變將包括更新引用。如果所提議的改變被提交,則記錄112的內容被替換為排他性拷貝150的內容。在一些實施例中,排他性拷貝150變為記錄112,並且表2替換表1,而在包括層的實施例中,通過指針來更新有關數據。在這樣做時,一般鎖定系統100以免產生潛在地衝突的另一排他性拷貝(例如,由另一應用和/或另一應用伺服器產生),以防止改變,直到所提議的排他性拷貝150中的改變被存儲在記錄112中為止。一般而言,應用伺服器120代表第一類實體,這類實體不要求對資料庫iio的高可用性訪問。8然而,在系統100包括要求對資料庫110的並發高可訪問性訪問的第二類實體(例如通信設備123)的情形中,該過程是有缺陷的。換言之,通信設備123—般能夠經由通信設備123處可用的按鈕、應用、GUI(圖形用戶界面)、菜單項等的任何合適的組合,對記錄112作出改變。這種改變一般可以是通過在一通信設備123處接收輸入數據(例如,通過用戶促動按鈕,和/或滿足諸如一天中的時刻和/或存在性之類的標準)來發起的。照此,通過通信設備123而發生的對記錄112的改變應當在最小等待時間的情況下發生,因為用戶125—般通過通信設備123來發起這種改變。這種等待時間是通過使得通信設備123能夠直接對記錄112作出改變而實現的。然而,如果對記錄112的改變是在排他性拷貝被創建之後且在排他性拷貝150被保存之前作出的,則這種改變可能丟失,因為記錄112的內容一般被排他性拷貝150的內容所替換。例如,在排他性拷貝150被創建之後,但在排他性拷貝150的內容替換記錄112的內容之前,一通信設備123可以在記錄112中存儲呼叫轉移號碼(例如,根據從用戶125接收到的輸入)。例如,在表2所呈現的排他性拷貝150被創建之後,該通信設備123可將呼叫轉移號碼改變為613-555-5678(例如,用戶125的蜂窩電話號碼)。然而,當排他性拷貝150的內容替換記錄112的內容時,已被通信設備123存儲在記錄112中的呼叫轉移號碼又被存儲在排他性拷貝150中的任何呼叫轉移號碼(如果存在的話)(例如,舊呼叫轉移號碼、由應用伺服器120確定的新呼叫轉移號碼)所替換。用戶125忘記了該過程,認為通過通信設備123所存儲的呼叫轉移號碼是有效的。因此,重要的呼叫可能被轉移到錯誤的號碼。在記錄112存儲對諸如數字串池之類的系統資源的引用的實施例中,如果引用被覆寫,則底層資源丟失該資源仍位於系統中,但未被連結。因此,資料庫110遭到了破壞。或者,在一些實施例中,對排他性拷貝150作出的改變的回退可以發生在記錄112的內容被排他性拷貝150的內容替換之後和對記錄112的改變隨後被通信設備123作出之後。在這種情況下,回退也將會引起通信設備123對記錄112的改變的丟失。為了能夠創建排他性拷貝150並更新資料庫110,在一些實施例中,資料庫IIO是計算裝置160的元件,該計算裝置160包括通信接口162,通信接口162能夠通過任何希望的無線或有線協議而與資料庫110和/或應用伺服器120和/或通信設備123通信。計算裝置160還包括處理單元164,處理單元164能夠創建排他性拷貝150並更新資料庫110。在其他實施例中,計算裝置160可以是與資料庫110分離的元件。現在參考圖2,圖2示出了根據一非限制性實施例的用於同時更新資料庫110的系統200。系統200基本類似於系統100,其中相似的元件用相似的標號示出。系統200包括與計算裝置160類似的計算裝置260,計算裝置260包括與通信接口162類似的通信接口262和與處理單元164類似的處理單元264。然而,在系統200中,當通信設備123試圖對記錄112作出改變時,記錄112的非排他性拷貝250被創建以供通信設備123的非排他性使用,使得每個通信設備123可將改變發布(post)到非排他性拷貝250。非排他性拷貝250的內容然後可以替換記錄112的內容以更新資料庫110。這種更新過程可以周期性地發生,並且/或者在預先配置的標準得到滿足時和/或在對非排他性拷貝250的改變發生時被觸發。繼續表1和表2的非限制性示例,表3包括當呼叫轉移號碼將被通信設備123改變為613-555-5678時記錄112的非排他性拷貝250的非限制性示例表3:非排他性拷貝250的非限制性實施例tableseeoriginaldocumentpage10因此,包括呼叫轉移開啟/關閉設置的欄位將被"開啟",並且包括呼叫轉移號碼的欄位將被改變為613-555-5678,這例如可以是用戶125的蜂窩電話號碼。在原始記錄112存儲對諸如數字串池之類的系統資源的引用的實施例中,非排他性拷貝250也將存儲對系統資源的引用,並且當發生改變時,改變將包括更新引用。在一些示例性的非限制性實施例中,資料庫更新包括與以下操作類似的一系列操作開始會話;讀取(一個或多個)記錄;對(一個或多個)記錄開始事務;修改(一個或多個)記錄;提交事務;結束會話。在這些實施例的一些中,僅在資料庫鎖定機制允許(並且相互依賴的記錄被鎖定訪問)的情況下開始事務操作才會成功。另外,在開始事務期間可以對任何現有的非排他性拷貝(與非排他性拷貝250類似)進行測試,並且在鎖定相互依賴的記錄的訪問之前,來自任何現有的非排他性拷貝的改變被保存到記錄112。因此,在這些實施例中,鎖定發生在排他性拷貝150被創建之前的開始事務期間,並且現有非排他性拷貝250中已發生的任何改變被保存到記錄112以避免衝突。事務期間的改變被應用於排他性拷貝150並且不應用於資料庫,直到提交事務操作被接收到為止。如果當提交事務操作被處理時存在非排他性拷貝250(即,非排他性拷貝250是在創建排他性拷貝150之後創建的),則衝突檢測被應用於排他性拷貝150和非排他性拷貝250之間,以判定對非排他性拷貝250的改變是否與對排他性拷貝150的改變相衝突。如果衝突,則可以實現衝突解決機制來解決衝突。否則,排他性拷貝150被丟棄並且提交事務操作失敗。衝突解決機制修改記錄112的內容以反映排他性拷貝150和非排他性拷貝250的組合改變。在一些實施例中,可以生成衝突和/或改變的日誌。在這些實施例的一些中,日誌可被發送到通信設備123中的至少一個,例如與管理員相關聯的通信設備123和/或發起了對非排他性拷貝250的衝突改變的通信設備123。此外,僅通過排他性拷貝150發生回退。換言之,如果對排他性拷貝150的改變被回退,則排他性拷貝150被丟棄。如果對排他性拷貝150的改變被提交,則結合衝突解決機制,記錄112的內容被排他性拷貝150的內容所替換。現在參考圖3,圖3示出了用於同時更新資料庫的方法300。為了輔助說明方法300,將假定方法300是利用系統200執行的。此外,以下對方法300的討論將會帶來對系統200及其各種部件的進一步理解。然而,將會了解,系統200和/或方法300可被變更,並且不必精確地像這裡所討論的那樣來彼此結合地工作,這些變更在本發明實施例的範圍內。在步驟310,第一類的第一實體發起資料庫110處的事務。在所示實施例中,第一實體包括應用伺服器120,然而可以了解,在其他實施例中,系統200可以包括第一類的其他實體。第一類的實體一般是滿足於對資料庫110的低可用性的實體,並且由第一類的實體發起的對資料庫110的改變的相對高的等待時間(例如,高於給定閾值的等待時間)對於這些實體的操作而言是足夠的。這種事務可以通過由應用伺服器120經由通信網絡124向資料庫110發送記錄更新命令275來發起,記錄更新命令275包括用於更新記錄112(例如表1)並因此更新資料庫110的數據。在特定的非限制性實施例中,記錄更新命令275包括一系列的資料庫操作,這些操作包括開始事務;修改(一個或多個)記錄;提交事務;結束事務。在一些實施例中,這一系列的資料庫操作可以包括多個修改(一個或多個)記錄命令,這些命令可以包括增加命令、刪除命令、讀取命令等等。這些操作可被獨立地或相結合地完成(例如,單個修改(一個或多個)事務記錄可替換開始事務;修改(一個或多個)記錄;提交事務等而被使用)。任何合適的變更都在本發明實施例的範圍內。對於正在被修改的每個記錄,在每個修改(一個或多個)記錄操作期間,如果先前未創建記錄的排他性拷貝,則創建記錄的排他性拷貝。在一些實施例中,當事務開始時,根據資料庫鎖定機制,針對事務中可能涉及/影響的每個現有的非排他性拷貝,測試狀態指示(以下描述)。如果任何所涉及/影響的非排他性拷貝正在被修改/被預留以供修改,則潛在的衝突被檢測到並且事務開始請求被拒絕(未能鎖定資料庫)。否則,在允許在步驟344中開始事務(以下更詳細地描述)之前,資料庫鎖定機制被應用,並且對其完成了改變的任何所涉及/影響的非排他性拷貝被應用於資料庫(經受以下所描述的衝突檢測處理)。在步驟315,記錄112的排他性拷貝150被創建(例如,排他性拷貝150最初包括表1的內容),排他性拷貝150供第一類的第一實體(例如,應用伺服器120)排他性地使用。排他性拷貝150—般受對開始事務操作期間所建立的相互依賴的記錄的相同表鎖定的保護。資料庫鎖定機制防止記錄112的多個排他性拷貝的創建,但不防止非排他性拷貝250的創建。在步驟320,來自第一實體的對記錄112的第一提議改變被發布到排他性拷貝150(例如,排他性拷貝150現在包括表2的內容),就像直接訪問資料庫110中的記錄112(這在一些實施例中是通過層來執行的)一樣。例如,記錄更新命令275中的數據可被發布到排他性拷貝150。在一些實施例中,第一提議改變的發布可被打上時間戳,以使得改變發生的時間可在以後確定。在步驟325,判定對排他性拷貝150的改變是將通過提交事務操作請求而被提交(即,存儲在記錄112中),還是通過取消事務操作請求而被回退(即,放棄)。在一些實施例中,可以通過超時過程而自動發生回退。例如,如果在給定的時間段期間未接收到提交命令,則自動發生回退。如果被回退,則在步驟330,排他性拷貝150被丟棄並且如果記錄112先前已被鎖定,則記錄112被解鎖。然而,如果排他性拷貝150將被提交,則在步驟340,判定是否存在非排他性拷貝250。例如,在步驟315創建排他性拷貝150之前、期間或者之後,可發生並行過程以創建非排他性拷貝250。對於創建非排他性拷貝250的非限制性實施例,主要參考步驟341-344。在步驟341,第二類的第二實體可發起事務。在所示實施例中,系統200包括第二類的多個第二實體,具體而言是通信設備123。然而,將會了解,在其他實施例中,系統200可以包括第二類的其他實體。第二類的實體一般是偏好對資料庫110的高可用性的實體,並且由第二類的實體所發起的對資料庫110的改變的相對低的等待時間(例如,低於給定閾值的等待時間)是這些實體的操作所偏好的。這種事務可以通過由通信設備123經由通信網絡124向資料庫110發送記錄更新命令276來發起,記錄更新命令276包括用於更新記錄112並因此更新資料庫110的數據。在一些實施例中,各個通信設備123-1、123-2...123-n可以分別發送記錄更新命令276-1、276-2...276-n(—般稱為記錄更新命令276並且總稱為記錄更新命令276)。在特定的非限制性實施例中,記錄更新命令276通過請求並獲得指向記錄112的指針來直接修改資料庫110的內容。在步驟342,通過拷貝記錄112而創建記錄112的非排他性拷貝250(例如,非排他性拷貝250最初包括表1的內容),非排他性拷貝250供第二類的多個第二實體(例如通信設備123)排他性地使用。此外,資料庫IIO能夠分別基於正試圖訪問資料庫IIO的外部設備(例如,通信設備123和/或應用伺服器120)是低可用性設備還是高可用性設備,來區分是創建記錄112的排他性拷貝還是非排他性拷貝。具體而言,資料庫110能夠基於外部設備在試圖如何訪問資料庫110的操作模式來區分高可用性和低可用性設備。例如,諸如應用伺服器120之類的低可用性設備試圖通過如上所述的開始事務命令來訪問資料庫110。而高可用性設備通過請求指向記錄112的直接指針(例如,繞過開始事務操作)來試圖訪問資料庫110。通過提供指向非排他性拷貝250的指針以供通信設備123—方使用,可使非排他性拷貝250對通信設備123而言可用。本領域技術人員將會認識到用於使非排他性拷貝250對通信設備123而言可用的其他過程,這些過程在本發明實施例的範圍內。此外,非排他性拷貝250的創建可以不伴隨有對記錄112的鎖定。在步驟343,來自第二實體的對記錄112的第二提議改變被發布到非排他性拷貝250(例如,非排他性拷貝250現在包括表3的內容),就像直接訪問資料庫110中的記錄112—樣。例如,記錄更新命令276中的數據可被發布到非排他性拷貝250。在一些實施例中,第二提議改變的發布可被打上時間戳,以使得改變發生的時間可在以後確定。在一些實施例中,系統200和/或通信設備123的呼叫處理/特徵功能更新與資料庫中的非排他性拷貝250適當關聯或者與資料庫中的記錄112相關聯的狀態指示。這些狀態指示用於標識-非排他性拷貝250何時被修改和/或被預留以供修改;-對非排他性拷貝250的改變何時完成;-何時由於同時的排他性和非排他性訪問而檢測到衝突;以及-可選地,何時由於同時的非排他性訪問而檢測到衝突。在步驟344,除非發生如下所述的衝突解決過程,否則第二提議改變被發布到記錄112(例如,非排他性拷貝250的內容然後可以在步驟344替換記錄112的內容gp,表1的內容被表3的內容所替換)。步驟344可以周期性地發生,並且/或者在接收到觸發(例如,來自一個或多個通信設備123)時和/或每當發生任何改變時發生。現在返回步驟340,對存在非排他性拷貝250的判定指示出第二類的至少一個實體在第一實體試圖對記錄112作出改變的同時試圖對記錄112作出改變,並且提供在這兩個過程之間存在衝突的指示。可以通過向資料庫IIO査詢與排他性拷貝150相關聯的記錄112的拷貝的存在和/或通過測試與記錄112的非排他性拷貝250相關聯的狀態指示來進行這種判定。如果不存在非排他性拷貝250(即,本質上沒有衝突),則在步驟345,第一提議改變被發布到記錄112(例如,記錄112的內容可被排他性拷貝150的內容替換g卩,表1的內容被表2的內容所替換)。排他性拷貝150然後可被丟棄。此外,如果記錄112先前已被鎖定,則記錄112被解鎖。然而,如果存在非排他性拷貝250,則在步驟350,判定排他性拷貝150是否與非排他性拷貝250相衝突。在其他實施例中,排他性拷貝150和非排他性拷貝250可被處理(例如由處理單元164),以確定它們之間的差別。如果存在差別,則存在衝突的可能。一般而言,如果與排他性拷貝150和非排他性拷貝250相關聯的實體各自試圖改變記錄112中的給定欄位(例如呼叫轉移號碼),則發生衝突。在一些實施例中,如果排他性拷貝150的一個或多個欄位不同於非排他性拷貝250的相應欄位,則可以確定存在衝突。例如,如果專用於存儲呼叫轉移號碼的欄位在排他性拷貝150和非排他性拷貝250中是不同的,則可能存在衝突。15然而,在其他實施例中,只有與對排他性拷貝150和非排他性拷貝250中的每一個的改變相關聯的欄位被比較以確定差別。例如,比較表1、表2和表3,在一個實施例中,用於存儲第一快速撥號號碼的欄位在排他性拷貝150和非排他性拷貝250中可能是不同的。然而,非排他性拷貝250中的第一快速撥號號碼可以與記錄112中的第一快速撥號號碼是相同的,表明通信設備123之前沒有在試圖改變呼叫轉移號碼。在該示例中,僅應用伺服器120在試圖改變第一快速撥號號碼並且不存在衝突。或者,這種差別可被看作衝突,但與用於解決衝突的標準相關聯(即,在一個拷貝中被改變而在另一拷貝中未被改變的欄位將在記錄112中被改變)。然而,再次比較表l、表2和表3,如果非排他性拷貝250、排他性拷貝150和記錄112中的呼叫轉移號碼都是不同的,則應用伺服器120和通信設備123都在試圖將呼叫轉移號碼改變為不同的號碼,並且存在衝突。例如,如果排他性拷貝150包括表2的內容(即,應用伺服器120在試圖將呼叫轉移號碼改變為613-555-1234)並且非排他性拷貝250包括表3的內容(即,通信設備123在試圖將呼叫轉移號碼改變為613-555-5678),則存在衝突。在一些實施例中,也可以通過將差別與預先配置的給定標準相比較來確定衝突。如果沒有衝突,則在步驟345,第一提議改變被發布到記錄112(例如,記錄112的內容可在步驟345被排他性拷貝150的內容所替換;或者,記錄112的內容可被非排他性拷貝250的內容所替換,因為應用伺服器120和通信設備123中的每一個都在試圖對記錄112作出相同的改變)。然而,如果存在至少一個衝突,則在步驟355判定(一個或多個)衝突是否可被解決。例如,系統200可設有用於解決衝突的預定標準。一種預定標準可以是總是遵從非排他性拷貝250中的改變(即,通過通信設備123發起的改變總是優先於通過管理伺服器120發起的改變)。另一種預定標準可以是遵從最後發生的改變,例如在改變被打上時間戳的實施例中。在一些實施例中,這種預定標準可以是依給定欄位/特徵而定的。在其他實施例中,這種預定標準可以是對時間敏感的。在其他實施例中,這種預定標準可被系統200的管理員推翻例如,用戶125可以是一個組織的僱員,並且該組織可能希望對系統200中的呼叫控制特徵擁有最終發言權。如果(一個或多個)衝突可被解決(即,存在用於解決(一個或多個)衝突的標準),則在步驟360,衝突被解決,該衝突引起第三提議改變,這些改變可以包括第一數據和第二數據的混合。例如,如果應用伺服器120在試圖改變呼叫轉移號碼和快速撥號號碼兩者,並且一通信設備123在試圖僅改變呼叫轉移號碼,則第三數據可以包括通信設備123的呼叫轉移號碼和應用伺服器120的快速撥號號碼。應用伺服器120的呼叫轉移號碼被丟棄。繼續表1、表2和表3的非限制性示例,表4包括第三提議改變的非限制性示例,即在表2和表2之間的衝突已被解決的情況下表2和表3的混合表4:第三提議改變的非限制性實施例通信設備123標識符613-555-1212(123-1)呼叫轉移開啟呼叫轉移號碼613-555-5678快速撥號1204-555-8765快速撥號1613-555-1515因此,包括呼叫轉移開啟/關閉設置的欄位將被"開啟",並且包括呼叫轉移號碼的欄位將被改變為613-555-5678(與表3—樣),從而解決了表2和表3之間的衝突。然而,包括第一快速撥號號碼的欄位包括204-555-8765(與表2—樣),因為不存在衝突(或者因為用於解決衝突的標準已被應用)。在步驟365,多個第三提議改變被發布到記錄112(例如,表1的內容被表4的內容所替換)。在一些實施例中,方法隨後在步驟380結束,而在其他實施例中,在步驟370生成衝突和解決的日誌,並且可選地,在步驟375將衝突和解決的日誌發送給系統100的管理員和/或通信設備123的用戶。返回步驟355,如果衝突無法被解決,則在一些實施例中,在步驟370可以生成衝突的日誌,並且在步驟375可以可選地將日誌例如發送到發起了引起衝突的改變的管理員和/或通信設備123。該日誌可用於為衝突解決確定進一步的標準。否則,在步驟380,方法300結束。在一些實施例中,呼叫處理/特徵功能繼續創建並參考非排他性拷貝(直接從資料庫110中的記錄112,其在事務進行期間是未受影響的)。呼叫處理/特徵功能可選地在非排他性拷貝250上(和/或利用資料庫中的記錄112)檢査/設置指示,以使改變串行化和/或檢測先前會涉及對資料庫表的同時訪問的衝突(並防止潛在的但是非常不可能的資料庫破壞)。在其他實施例中,一周期性的任務對其改變完成的任何非排他性拷貝250進行檢査。其然後在向資料庫110應用改變之前應用資料庫鎖定機制(經受上面所述的衝突檢測處理)。這確保了非排他性改變被應用於資料庫110中的記錄112(而不要求涉及受影響的記錄的事務)。在其他實施例中,當對非排他性拷貝250的改變指示出由於同時訪問而檢測到的衝突時,在向資料庫110應用這些改變之前執行另外的確認。這種確認依所涉及的記錄112而定(根據數據的特性),並且當非排他性拷貝250在被創建時,這種確認可以通過記錄112的原始拷貝的創建而得以補充。該原始拷貝保持記錄112的欄位值以供與非排他性拷貝250和隨後更新的記錄112(其由於同時的事務改變而改變)進行比較。具有無法被解決或者可能危及資料庫完整性的衝突的非排他性拷貝250被丟棄並且描述日誌被生成。在一些實施例中,非排他性拷貝250可與記錄112—起存儲,或存儲在單獨的表/結構中。在一些實施例中,存儲器管理方案可被應用於非排他性拷貝250和排他性拷貝150的創建/管理/釋放(例如,對RAM使用率的優化、性能、簡化或者其組合)。雖然這裡所描述的一些實施例特定於支持呼叫處理/特徵功能,但是方18法300可被更一般地應用於以下問題在多個數據改變被同時應用,其中具有相衝突的改變的風險的情況下,確保數據完整性(在實現方式中甚至沒有資料庫)。例如,方法300可被應用於任何數據存儲庫,其中鎖定機制是相關功能不希望的/不考慮的。本領域技術人員將會認識到,在一些實施例中,可以利用預編程的硬體或固件元件(例如,專用集成電路(ASIC)、電可擦除可編程只讀存儲器(EEPROM)等)或者其他有關部件來實現資料庫110、應用伺服器120、通信設備123和計算裝置160的功能。在其他實施例中,可以利用下述計算裝置來實現資料庫110、應用伺服器120、通信設備123和計算裝置160的功能該計算裝置可以訪問存儲用於計算裝置操作的計算機可讀程序代碼的代碼存儲器(未示出)。計算機可讀程序代碼可被存儲在固定的、有形的和可由這些部件直接讀取的介質(例如,可移動盤、CD-RON^ROM、固定盤、USB驅動器)上,或者計算機可讀程序代碼可被遠程存儲但可通過傳輸介質經由數據機或者連接到網絡(包括但不限於網際網路)的其他接口設備而發送到這些部件。傳輸介質可以是非無線介質(例如,光學或模擬通信線路)或者無線介質(例如,微波、紅外、自由空間的光學或其他傳輸方案)或者其組合。本領域技術人員將會認識到,有許多其他可用於實現這些實施例的替換實現方式和修改,並且以上的實現方式和示例僅僅是對一個或多個實施例的說明。因此,範圍僅由所附權利要求來限定。19權利要求1.一種同時更新資料庫的方法,該方法包括在資料庫中創建記錄的排他性拷貝,所述排他性拷貝供第一類的第一實體排他性地使用;將來自所述第一實體的對所述記錄的第一提議改變發布到所述排他性拷貝;判定所述排他性拷貝是否與所述記錄的非排他性拷貝相衝突,所述非排他性拷貝供第二類的多個第二實體非排他性地使用;如果所述排他性拷貝與所述非排他性拷貝不衝突,則將所述第一提議改變發布到所述記錄;如果所述排他性拷貝與所述非排他性拷貝衝突,則判定衝突是否可被解決;以及生成包括結果的日誌。2.如權利要求1所述的方法,還包括創建所述非排他性拷貝。3.如權利要求1所述的方法,還包括將來自所述多個第二實體的對所述記錄的第二提議改變發布到所述非排他性拷貝。4.如權利要求3所述的方法,其中,所述發布第二提議改變的步驟包括按從所述多個第二實體接收所述第二提議改變的順序來發布所述第二提議改變。5.如權利要求3所述的方法,還包括將所述第二提議改變發布到所述記錄。6.如權利要求1所述的方法,還包括判定所述第一提議改變將被提交到所述記錄還是將被回退;如果所述第一提議改變將被回退,則丟棄所述第一提議改變;否則,如果所述排他性拷貝與所述記錄的所述非排他性拷貝衝突,則進行所述判定。7.如權利要求1所述的方法,還包括判定是否存在所述非排他性拷貝;以及,如果判定結果為否,則將來自所述排他性拷貝的所述改變發布到所述記錄。8.如權利要求1所述的方法,還包括解決引起第三提議改變的所述衝突,並且將所述第三提議改變發布到所述記錄。9.如權利要求1所述的方法,其中,所述第一實體和所述資料庫中的記錄之間的事務是通過視圖層發生的,並且所述多個第二實體和所述資料庫中的所述記錄之間的事務是通過所述視圖層發生的。10.如權利要求1所述的方法,其中,所述第一類包括低可用性實體,並且所述第二類包括高可用性實體。全文摘要提供了用於同時更新資料庫的方法和裝置。在資料庫中創建記錄的排他性拷貝,該排他性拷貝供第一類的第一實體排他性地使用。來自第一實體的第一提議改變被發布到該排他性拷貝。判定排他性拷貝是否與記錄的非排他性拷貝相衝突,該非排他性拷貝供第二類的多個第二實體非排他性地使用。如果排他性拷貝與非排他性拷貝不衝突,則第一提議改變被發布到記錄。因此,高可用性設備可以與低可用性配置應用並行地同時修改資料庫,其中衝突得到解決。文檔編號G06F17/30GK101634990SQ200910005699公開日2010年1月27日申請日期2009年2月19日優先權日2008年7月25日發明者保羅·赫伯申請人:米特爾網絡公司

同类文章

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

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