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

在線數(shù)據(jù)庫的分區(qū)的制作方法

文檔序號:6437952閱讀:315來源:國知局

專利名稱::在線數(shù)據(jù)庫的分區(qū)的制作方法
技術(shù)領(lǐng)域
:本發(fā)明涉及計算機領(lǐng)域,尤其涉及在線數(shù)據(jù)庫的分區(qū)。相關(guān)申請的交叉引用本申請要求于2010年10月沘提交的、題為“PARTITIONINGANDRE-PARTITIONINGONLINEDATABASES(在線數(shù)據(jù)庫的分區(qū)和再分區(qū))”的第61/407,579號美國臨時專利申請的權(quán)益,該申請整體包含于此。
背景技術(shù)
:1.背景和相關(guān)技術(shù)計算機系統(tǒng)和相關(guān)技術(shù)影響社會的許多方面。的確,計算機系統(tǒng)處理信息的能力已轉(zhuǎn)變了人們生活和工作的方式。計算機系統(tǒng)現(xiàn)在通常執(zhí)行在計算機系統(tǒng)出現(xiàn)以前手動執(zhí)行的許多任務(wù)(例如,文字處理、日程安排和會計等)。最近,計算機系統(tǒng)彼此耦合并耦合到其他電子設(shè)備以形成計算機系統(tǒng)和其他電子設(shè)備可以在其上傳輸電子數(shù)據(jù)的有線和無線計算機網(wǎng)絡(luò)。因此,許多計算任務(wù)的執(zhí)行跨多個不同的計算機系統(tǒng)和/或多個不同的計算環(huán)境分布。在一些計算環(huán)境中,數(shù)據(jù)庫用來管理數(shù)據(jù)集。許多數(shù)據(jù)集的尺寸是相對小的。這些較小的數(shù)據(jù)集可以使用單個計算機系統(tǒng)的資源來存儲的。然而,其他數(shù)據(jù)集較大。為了存儲較大的數(shù)據(jù)集,數(shù)據(jù)集被分成多個數(shù)據(jù)庫分區(qū),不同的分區(qū)于是被存儲在不同的計算機系統(tǒng)處。例如,社交網(wǎng)絡(luò)站點可以具有數(shù)億用戶。這些社交網(wǎng)絡(luò)站點可以將關(guān)于其用戶的用戶相關(guān)數(shù)據(jù)存儲在跨許多計算機系統(tǒng)分布的分區(qū)數(shù)據(jù)庫中。在一些環(huán)境中,使用碎片化來對數(shù)據(jù)庫進行分區(qū)。碎片化是一種跨多個數(shù)據(jù)庫、按行對一個或多個表格進行分隔(分區(qū))的水平分區(qū)形式。水平分區(qū)通過在方案的單個實例(或同一個邏輯服務(wù)器)上使用多個較小的索引尺寸來減小索引尺寸。通過跨多個服務(wù)器(邏輯的或物理的)分隔(分區(qū))一個或多個表格來進一步碎片化。這樣,碎片化能夠?qū)⑤^大的數(shù)據(jù)庫在多個機器上分布,改進了性能。然而,碎片化難以實現(xiàn)。碎片化一般需要有經(jīng)驗的開發(fā)者或數(shù)據(jù)庫管理員來手工編碼。已經(jīng)開發(fā)了一些機制來至少部分地使碎片化自動化。然而,這些機制一般在應(yīng)用層實現(xiàn)和/或使用(與數(shù)據(jù)庫層相對)。由此,這些機制要求復(fù)雜的應(yīng)用協(xié)調(diào)來根據(jù)期望進行工作。而且,隨著時間的推移,數(shù)據(jù)庫或數(shù)據(jù)庫分區(qū)中的數(shù)據(jù)量和/或數(shù)據(jù)排列會發(fā)生變化。由此,數(shù)據(jù)庫可能需要被重新分區(qū),以便更均勻地分配計算機系統(tǒng)資源的使用、優(yōu)化資源、等等。重新分區(qū)可以包括添加新分區(qū)、移除現(xiàn)有的分區(qū)、以及在分區(qū)間傳輸數(shù)據(jù)。不幸的是,重新分區(qū)一般需要在重新分區(qū)過程期間離線地獲得所有受影響的分區(qū)。由此,在重新分區(qū)期間,用戶可能在(可能延長的)某些時間段不能訪問數(shù)據(jù)
發(fā)明內(nèi)容本發(fā)明涉及用于對在線數(shù)據(jù)庫進行分區(qū)的方法、系統(tǒng)和計算機程序產(chǎn)品。在一些實施例中,數(shù)據(jù)庫分區(qū)被分成多個數(shù)據(jù)庫分區(qū)。接收到分區(qū)分隔指示。分區(qū)分隔指示指明了如何將數(shù)據(jù)庫分區(qū)至少分成第一部分和第二部分以便分隔數(shù)據(jù)庫分區(qū)中存儲的數(shù)據(jù)行。執(zhí)行分隔操作以便根據(jù)分區(qū)分隔指示來分隔數(shù)據(jù)庫分區(qū),而數(shù)據(jù)庫分區(qū)同時保持在線。分隔包括建立第一新數(shù)據(jù)庫分區(qū)以存儲和所指定的聯(lián)合鍵值的子集的第一部分相對應(yīng)的數(shù)據(jù)行;以及建立第二新數(shù)據(jù)庫分區(qū)以存儲和所指定的聯(lián)合鍵值的子集的第二部分相對應(yīng)的數(shù)據(jù)行。從數(shù)據(jù)庫分區(qū)到第一和第二新數(shù)據(jù)庫分區(qū)的每一個建立復(fù)制流和更新流中的一個或多個。對于來自數(shù)據(jù)庫分區(qū)的一個或多個數(shù)據(jù)行的每一個,對數(shù)據(jù)行進行過濾以便標(biāo)識第一新數(shù)據(jù)庫分區(qū)和第二新數(shù)據(jù)庫分區(qū)之一作為數(shù)據(jù)行的適當(dāng)目的地。根據(jù)過濾結(jié)果,一個或多個數(shù)據(jù)行中的每一個以及對它們的更新從該數(shù)據(jù)庫分區(qū)被轉(zhuǎn)移至該適當(dāng)目的地數(shù)據(jù)庫。在其它實施例中,各數(shù)據(jù)庫分區(qū)被合并。接收到分區(qū)合并指示。分區(qū)合并指示表明了如何將存儲在多個數(shù)據(jù)庫分區(qū)中的數(shù)據(jù)行合并在一起。執(zhí)行合并操作以便根據(jù)分區(qū)合并指示將數(shù)據(jù)行合并在一起,而同時多個數(shù)據(jù)庫分區(qū)保持在線。合并包括建立新數(shù)據(jù)庫分區(qū)以存儲數(shù)據(jù)行。從多個數(shù)據(jù)庫分區(qū)的每一個到新數(shù)據(jù)庫分區(qū)建立復(fù)制流和更新流中的一個或多個。每個數(shù)據(jù)行以及對它們的更新通過合適的流從多個數(shù)據(jù)庫分區(qū)被轉(zhuǎn)移至新數(shù)據(jù)庫分區(qū)。在進一步的實施例中,從分布式數(shù)據(jù)庫系統(tǒng)處丟棄多個數(shù)據(jù)行。接收到分區(qū)丟棄指示。分區(qū)丟棄指示表明了如何丟棄跨多個數(shù)據(jù)庫分區(qū)存儲的一個或多個數(shù)據(jù)行。執(zhí)行合并操作以便根據(jù)分區(qū)丟棄指示來丟棄數(shù)據(jù)行,而同時多個數(shù)據(jù)庫分區(qū)保持在線。丟棄包括對于要丟棄一個或多個數(shù)據(jù)行的每一個數(shù)據(jù)庫分區(qū),訪問要從數(shù)據(jù)庫分區(qū)丟棄的數(shù)據(jù)行的標(biāo)識符。擴展其他數(shù)據(jù)庫分區(qū)的責(zé)任,以配置其他數(shù)據(jù)庫分區(qū)來存儲要被丟棄的數(shù)據(jù)行。從數(shù)據(jù)庫分區(qū)中移除數(shù)據(jù)行。提供本
發(fā)明內(nèi)容以便以簡化的形式介紹將在以下的詳細描述中進一步描述的一些概念。本
發(fā)明內(nèi)容并非旨在標(biāo)識所要求保護的主題的關(guān)鍵特征或必要特征,也不旨在用于幫助確定所要求保護的主題的范圍。本發(fā)明的附加特征和優(yōu)點將在以下描述中敘述,且其一部分根據(jù)本描述將是顯而易見的,或可通過對本發(fā)明的實踐來獲知。本發(fā)明的特征和優(yōu)點可通過在所附權(quán)利要求書中特別指出的工具和組合來實現(xiàn)和獲得。本發(fā)明的這些和其他特征將通過以下描述和所附權(quán)利要求書變得更加顯而易見,或可通過對下文中所述的本發(fā)明的實踐來領(lǐng)會。為了描述可獲得本發(fā)明的上述和其他優(yōu)點和特征的方式,將通過參考附圖中示出的本發(fā)明的具體實施例來呈現(xiàn)以上簡要描述的本發(fā)明的更具體描述。可以理解,這些附圖僅描述本發(fā)明的典型實施例,從而不被認為是對其范圍的限制,本發(fā)明將通過使用附圖用附加特征和細節(jié)來描述和說明,在附圖中圖IA和IB示出便于分隔數(shù)據(jù)庫分區(qū)的示例計算機體系結(jié)構(gòu)。圖2A示出用于分隔數(shù)據(jù)庫分區(qū)的示例方法的流程圖。圖2B示出用于分隔數(shù)據(jù)庫分區(qū)的示例方法的流程圖。圖3A和;3B示出便于合并數(shù)據(jù)庫分區(qū)的示例計算機體系結(jié)構(gòu)。圖4A示出用于合并數(shù)據(jù)庫分區(qū)的示例方法的流程圖。圖4B示出用于合并數(shù)據(jù)庫分區(qū)的示例方法的流程圖。圖5A和5B示出便于從分布式數(shù)據(jù)庫丟棄行的示例計算機體系結(jié)構(gòu)。圖6示出用于從分布式數(shù)據(jù)庫丟棄行的示例方法的流程圖。具體實施例方式本發(fā)明涉及用于對在線數(shù)據(jù)庫進行分區(qū)的方法、系統(tǒng)和計算機程序產(chǎn)品。在一些實施例中,數(shù)據(jù)庫分區(qū)被分成多個數(shù)據(jù)庫分區(qū)。接收到分區(qū)分隔指示。分區(qū)分隔指示指明了如何將數(shù)據(jù)庫分區(qū)至少分成第一部分和第二部分以便分隔數(shù)據(jù)庫分區(qū)中存儲的數(shù)據(jù)行。執(zhí)行分隔操作以便根據(jù)分區(qū)分隔指示來分隔數(shù)據(jù)庫分區(qū),而數(shù)據(jù)庫分區(qū)同時保持在線。分隔包括建立第一新數(shù)據(jù)庫分區(qū)以存儲和所指定的聯(lián)合鍵值的子集的第一部分相對應(yīng)的數(shù)據(jù)行;以及建立第二新數(shù)據(jù)庫分區(qū)以存儲和所指定的聯(lián)合鍵值的子集的第二部分相對應(yīng)的數(shù)據(jù)行。建立從數(shù)據(jù)庫分區(qū)到第一和第二新數(shù)據(jù)庫分區(qū)的每一個的復(fù)制流和更新流中的一個或多個。對于來自數(shù)據(jù)庫分區(qū)的一個或多個數(shù)據(jù)行的每一個,對數(shù)據(jù)行進行過濾以便標(biāo)識第一新數(shù)據(jù)庫分區(qū)和第二新數(shù)據(jù)庫分區(qū)之一作為數(shù)據(jù)行的適當(dāng)目的地。根據(jù)過濾結(jié)果,一個或多個數(shù)據(jù)行中的每一個以及對它們的更新通過適當(dāng)?shù)牧鲝脑摂?shù)據(jù)庫分區(qū)被轉(zhuǎn)移至該適當(dāng)目的地數(shù)據(jù)庫。在其他實施例中,各數(shù)據(jù)庫分區(qū)被合并。接收到分區(qū)合并指示。分區(qū)合并指示表明了如何將存儲在多個數(shù)據(jù)庫分區(qū)中的數(shù)據(jù)行合并在一起。執(zhí)行合并操作以便根據(jù)分區(qū)合并指示將數(shù)據(jù)行合并在一起,而同時多個數(shù)據(jù)庫分區(qū)保持在線。合并包括建立新數(shù)據(jù)庫分區(qū)以存儲數(shù)據(jù)行。從多個數(shù)據(jù)庫分區(qū)的每一個到新數(shù)據(jù)庫分區(qū)建立復(fù)制流和更新流中的一個或多個。每個數(shù)據(jù)行以及對它們的更新通過合適的流從多個數(shù)據(jù)庫分區(qū)被轉(zhuǎn)移至新數(shù)據(jù)庫分區(qū)。在進一步的實施例中,從分布式數(shù)據(jù)庫系統(tǒng)處丟棄多個數(shù)據(jù)行。接收到分區(qū)丟棄指示。分區(qū)丟棄指示表明了如何丟棄跨多個數(shù)據(jù)庫分區(qū)存儲的一個或多個數(shù)據(jù)行。執(zhí)行丟棄操作以便根據(jù)分區(qū)丟棄指示來丟棄數(shù)據(jù)行,而同時多個數(shù)據(jù)庫分區(qū)保持在線。丟棄包括對于要丟棄一個或多個數(shù)據(jù)行的每一個數(shù)據(jù)庫分區(qū),訪問要從數(shù)據(jù)庫分區(qū)丟棄的數(shù)據(jù)行的標(biāo)識符。擴展其他數(shù)據(jù)庫分區(qū)的責(zé)任,以配置其他數(shù)據(jù)庫分區(qū)來存儲要被丟棄的數(shù)據(jù)行。從數(shù)據(jù)庫分區(qū)中移除數(shù)據(jù)行。本發(fā)明的各實施例可包括或利用專用或通用計算機,該專用或通用計算機包括諸如例如一個或多個處理器和系統(tǒng)存儲器等計算機硬件,如以下更詳細討論的。本發(fā)明范圍內(nèi)的各實施例還包括用于攜帶或存儲計算機可執(zhí)行指令和/或數(shù)據(jù)結(jié)構(gòu)的物理介質(zhì)和其他計算機可讀介質(zhì)。這些計算機可讀介質(zhì)可以是通用或?qū)S糜嬎銠C系統(tǒng)能夠訪問的任何可用介質(zhì)。存儲計算機可執(zhí)行指令的計算機可讀介質(zhì)是計算機存儲介質(zhì)(設(shè)備)。攜帶計算機可執(zhí)行指令的計算機可讀介質(zhì)是傳輸介質(zhì)。由此,作為示例而非限制,本發(fā)明的各實施例可包括至少兩種完全不同類型的計算機可讀介質(zhì)計算機存儲介質(zhì)(設(shè)備)和傳輸介質(zhì)。計算機存儲介質(zhì)(設(shè)備)包括RAM、ROM、EEPROM、CD-ROM或其他光盤存儲、磁盤存儲或其他磁存儲設(shè)備、或可用于存儲計算機可執(zhí)行指令或數(shù)據(jù)結(jié)構(gòu)形式的且可由通用或?qū)S糜嬎銠C訪問的所需程序代碼裝置的任何其他介質(zhì)。“網(wǎng)絡(luò)”被定義為允許在計算機系統(tǒng)和/或模塊和/或其他電子設(shè)備之間傳輸電子數(shù)據(jù)的一個或多個數(shù)據(jù)鏈路。當(dāng)信息通過網(wǎng)絡(luò)或另一個通信連接(硬連線、無線、或者硬連線或無線的組合)傳輸或提供給計算機時,該計算機將該連接適當(dāng)?shù)匾暈閭鬏斀橘|(zhì)。傳輸介質(zhì)可包括可用于攜帶計算機可執(zhí)行指令或數(shù)據(jù)結(jié)構(gòu)形式的且可由通用或?qū)S糜嬎銠C訪問的所需程序代碼裝置的網(wǎng)絡(luò)和/或數(shù)據(jù)鏈路。上述的組合也應(yīng)被包括在計算機可讀介質(zhì)的范圍內(nèi)。此外,在到達各種計算機系統(tǒng)組件之后,計算機可執(zhí)行指令或數(shù)據(jù)結(jié)構(gòu)形式的程序代碼裝置可從傳輸介質(zhì)自動傳輸?shù)接嬎銠C存儲介質(zhì)(設(shè)備)(或反之亦然)。例如,通過網(wǎng)絡(luò)或數(shù)據(jù)鏈接接收到的計算機可執(zhí)行指令或數(shù)據(jù)結(jié)構(gòu)可被緩存在網(wǎng)絡(luò)接口模塊(例如,“NIC”)內(nèi)的RAM中,然后最終被傳輸?shù)接嬎銠C系統(tǒng)RAM和/或計算機系統(tǒng)處的較不易失性的計算機存儲介質(zhì)(設(shè)備)。因而,應(yīng)當(dāng)理解,計算機存儲介質(zhì)(設(shè)備)可被包括在還利用(甚至主要利用)傳輸介質(zhì)的計算機系統(tǒng)組件中。計算機可執(zhí)行指令例如包括,當(dāng)在處理器處執(zhí)行時使通用計算機、專用計算機、或?qū)S锰幚碓O(shè)備執(zhí)行某一功能或某組功能的指令和數(shù)據(jù)。計算機可執(zhí)行指令可以是例如二進制代碼、諸如匯編語言之類的中間格式指令、或甚至源代碼。盡管用結(jié)構(gòu)特征和/或方法動作專用的語言描述了本主題,但可以理解,所附權(quán)利要求書中定義的主題不必限于上述特征或動作。相反,上述特征和動作是作為實現(xiàn)權(quán)利要求的示例形式而公開的。本領(lǐng)域的技術(shù)人員將理解,本發(fā)明可以在具有許多類型的計算機系統(tǒng)配置的網(wǎng)絡(luò)計算環(huán)境中實踐,這些計算機系統(tǒng)配置包括個人計算機、臺式計算機、膝上型計算機、消息處理器、手持式設(shè)備、多處理器系統(tǒng)、基于微處理器的或可編程消費電子設(shè)備、網(wǎng)絡(luò)PC、小型計算機、大型計算機、移動電話、PDA、尋呼機、路由器、交換機等等。本發(fā)明也可在其中通過網(wǎng)絡(luò)鏈接(或者通過硬連線數(shù)據(jù)鏈路、無線數(shù)據(jù)鏈路,或者通過硬連線和無線數(shù)據(jù)鏈路的組合)的本地和遠程計算機系統(tǒng)兩者都執(zhí)行任務(wù)的分布式系統(tǒng)環(huán)境中實施。在分布式系統(tǒng)環(huán)境中,程序模塊可位于本地和遠程存儲器存儲設(shè)備中。本發(fā)明的各實施例包括數(shù)據(jù)庫聯(lián)合的使用。數(shù)據(jù)庫聯(lián)合是聯(lián)合方案所定義的一個或多個聯(lián)合成員(分區(qū))的集合。所述聯(lián)合方案定義下述一個或多個項(多個)聯(lián)合鍵、他們的(多個)數(shù)據(jù)類型以及分布類型(范圍、散列...)。每個聯(lián)合可以具有其自身的聯(lián)合方案。因此,聯(lián)合的每個成員可以包含一個或多個聯(lián)合單元(即,共享同一公用密鑰的數(shù)據(jù))。聯(lián)合成員在應(yīng)用模型中可見,并且通過他們的聯(lián)合鍵范圍來標(biāo)識。可以在任意數(shù)據(jù)庫中創(chuàng)建聯(lián)合。在一個數(shù)據(jù)庫中可以存在許多聯(lián)合,每個聯(lián)合表示一個分開的表格集合,例如“所有的消費者數(shù)據(jù)”或“所有訂單數(shù)據(jù)”,并且,每個聯(lián)合成員可以含有完整數(shù)據(jù)集的子集。(然而,對于單個聯(lián)合成員來說,也可能含有整個表格集合。)在較低級別的粒度,原子單元是對于聯(lián)合鍵具有公用值的一個或多個表格的行集合。原子單元不能被進一步細分。一個或多個原子單元可以被組合成一個聯(lián)合成員來簡化管理。除了包含來自分區(qū)的或聯(lián)合的表格的行之外,聯(lián)合成員還可以包含其行是完整包含在所述成員內(nèi)的常規(guī)(非聯(lián)合的)表格。非聯(lián)合的表格可以包含結(jié)合分區(qū)數(shù)據(jù)被檢索的參考數(shù)據(jù)(例如產(chǎn)品信息(參考數(shù)據(jù))和產(chǎn)品銷售(由銷售日期聯(lián)合的))。聯(lián)合成員可以是彼此物理分開的(例如在不同的機器上運行)。這樣,在一個聯(lián)合成員中的數(shù)據(jù)還可以與在其他聯(lián)合成員處的數(shù)據(jù)物理上分開。用于一個聯(lián)合成員中的聯(lián)合的和非聯(lián)合的表格的方案可以與其他聯(lián)合成員中的表格的方案不相同。方案的分歧可以是臨時的,例如將新的方案版本跨聯(lián)合中的成員子集安置鋪開(roll-out),并直到聯(lián)合成員最終聚合在同一方案上。聯(lián)合可以包括根數(shù)據(jù)庫,它表示了聯(lián)合的應(yīng)用邊界。根數(shù)據(jù)庫對于連接到聯(lián)合的應(yīng)用是“硬襯墊(landingpad)的”或是邏輯端點。根數(shù)據(jù)庫可以包含一個或多個命名的聯(lián)合,每個聯(lián)合具有其自身的定義聯(lián)合鍵的聯(lián)合方案。根數(shù)據(jù)庫還可以包含全局數(shù)據(jù),包括應(yīng)用定義的(配置)數(shù)據(jù)、用戶和密碼以及角色。根數(shù)據(jù)庫還可以包含聯(lián)合成員的版本信息或提供分布式查詢處理能力。聯(lián)合還可以定義用于數(shù)據(jù)分布的分布策略以及數(shù)據(jù)類型。聯(lián)合便于數(shù)據(jù)在各物理數(shù)據(jù)庫間的在線復(fù)制,以及新類型的云、web和多承租人解決方案的更有效的開發(fā)。例如,本發(fā)明的各實施例還包括使用分隔、合并和丟棄操作中的一個或多個,以便在無停機時間的情況下縮放數(shù)據(jù)。例如,分隔操作可用于將數(shù)據(jù)擴展至另外的成員。另一方面,合并操作可用于將數(shù)據(jù)縮減至較少的成員。在一些實施例中,發(fā)布聯(lián)合創(chuàng)建命令以創(chuàng)建數(shù)據(jù)庫聯(lián)合。聯(lián)合創(chuàng)建命令可以具有下列格式CREATEFEDERATIONfederationname{<federation_distribution_scheme>}〈federationdistribution_scheme>::=(〈federation—distribution〉”.η)〈federation—distribution〉::=distribution—name〈data—type〉RANGE|HASH|ROUNDROBIN<data_type>::=[type—name.]type_name自變量federation_name它是聯(lián)合的名稱。聯(lián)合名稱在SQLAzure服務(wù)器內(nèi)必須是唯一的,并且符合標(biāo)識符規(guī)則且具有sysname類型。type_name它指定了聯(lián)合鍵類型的類型名稱。在版本1中,僅支持單列??梢允嵌M位、唯一標(biāo)識符或二進制變量(η)之一。其中N可高達900。distribution_name指定了聯(lián)合鍵的名稱。該名稱是引用聯(lián)合鍵的標(biāo)識符,并且在諸如(createtable.·federated0ν(··)(創(chuàng)建表格···啟用聯(lián)合(··))或usefederation(使用聯(lián)合)等)這樣的聯(lián)合相關(guān)語句需要引用聯(lián)合鍵時被引用。distributioruname必須符合標(biāo)識符規(guī)則并且是sysname類型。rangeIhashIroundrobin指定了分區(qū)類型。當(dāng)創(chuàng)建聯(lián)合時,也可以創(chuàng)建覆蓋所指定的數(shù)據(jù)類型的完全范圍的第一分區(qū)。該聯(lián)合成員作為常規(guī)數(shù)據(jù)庫可見。通過范圍分布,rangejow和rangejiigh可以表示聯(lián)合成員的邊界值。在單個聯(lián)合成員的情況下,rangejow表示聯(lián)合鍵數(shù)據(jù)類型的域的最小值,range_high是聯(lián)合鍵數(shù)據(jù)類型的域的最大值。聯(lián)合鍵數(shù)據(jù)類型用于指定所允許的值的域。對于覆蓋該域的最小值的聯(lián)合成員,rangejow被設(shè)為在聯(lián)合鍵數(shù)據(jù)類型中允許的最小值。對于覆蓋該域的最大值的聯(lián)合成員,range_high被設(shè)為在聯(lián)合鍵數(shù)據(jù)類型中允許的最大值。Range_low值可包括在該范圍內(nèi)。例如,如果聯(lián)合成員具有值為100的range_low,則值100在聯(lián)合成員中。另一方面,RangeJiigh可以在范圍之外。例如,如果聯(lián)合成員具有值為200的range_high,則值200不包括在聯(lián)合成員中。對于包含范圍最大值的聯(lián)合成員,range_high值可以包括在范圍內(nèi)。通常,數(shù)據(jù)庫聯(lián)合可以通過改變聯(lián)合來重新分布(重新分區(qū))它們的數(shù)據(jù)。數(shù)據(jù)的重新分布通過各種不同的操作而發(fā)生。例如,可以發(fā)布一改變聯(lián)合命令,使分隔、合并或丟棄操作發(fā)生。在一些實施例中,改變聯(lián)合命令具有以下格式ALTERFEDERATIONfederationname{SPLITAT(distribution—name=boundaryvalue,..n)IDROPAT([LOW|HIGH]distributionname=boundaryvalue,..n)IMERGEAT([LOW|HIGH]distributionname=boundaryvalue,..n)}[;]自變量boundary—value該值指定了用于重新分區(qū)操作的分開點。邊界值應(yīng)當(dāng)是關(guān)于聯(lián)合的聯(lián)合鍵所指定的數(shù)據(jù)類型的有效值。在分隔的情況下,對于作為分隔操作的一部分創(chuàng)建的新的聯(lián)合成員集合,該值成為range_low禾口range_high。SPLITAT(distribution_name=boundary_value)將聯(lián)合成員中的數(shù)據(jù)移至2個新的目的地聯(lián)合成員中。具有小于boundary—value的聯(lián)合鍵實例的聯(lián)合表格中的所有行被復(fù)制到新目的地聯(lián)合成員之一。聯(lián)合表格中的大于等于boundary—value的實例被復(fù)制到其它新目的地聯(lián)合成員。圖IA和IB示出便于分隔數(shù)據(jù)庫分區(qū)的示例計算機體系結(jié)構(gòu)100。參考圖1A,計算機體系結(jié)構(gòu)100包括分區(qū)模塊101和數(shù)據(jù)庫聯(lián)合102。所描繪的組件中的每一個都通過諸如例如局域網(wǎng)(“LAN”)、廣域網(wǎng)(“WAN”)或甚至因特網(wǎng)之類的網(wǎng)絡(luò)彼此連接(或者是網(wǎng)絡(luò)的一部分)。因此,所描繪的組件中的每一個以及任何其他連接的計算機系統(tǒng)及其組件都可以創(chuàng)建消息相關(guān)數(shù)據(jù)并通過網(wǎng)絡(luò)交換消息相關(guān)數(shù)據(jù)(例如,網(wǎng)際協(xié)議(“IP”)數(shù)據(jù)報和利用IP數(shù)據(jù)報的其他更高層協(xié)議,諸如傳輸控制協(xié)議(“TCP”)、超文本傳輸協(xié)議(“HTTP”)、簡單郵件傳輸協(xié)議(“SMTP”)等)。如圖所示,數(shù)據(jù)庫聯(lián)合102包括分區(qū)103A、10;3B和103C。一些表格可以聯(lián)合,使得這些表格跨分區(qū)103A、10;3B和103C分布。例如,聯(lián)合表格104A、104B和104C各自可以是同一表格的分布式部分。跨聯(lián)合表格104A、104B和104分布的每一數(shù)據(jù)行可由(例如,聯(lián)合)鍵值來標(biāo)識。每個分區(qū)103A、10;3B和103C可以負責(zé)鍵值的一個子集。在一些實施例中,每個分區(qū)103A、10;3B和103C負責(zé)連續(xù)的鍵值范圍。然而,可以使用用于分配鍵值子集職責(zé)的其他機制,并且鍵值子集內(nèi)的鍵值無需是連續(xù)的。其他表格不被聯(lián)合。例如,分區(qū)103A、10;3B和103C分別包含非聯(lián)合的表格106、107和108。非聯(lián)合的表格可以存儲參考數(shù)據(jù)或其他類型的非聯(lián)合數(shù)據(jù)。圖2A示出用于分隔數(shù)據(jù)庫分區(qū)的示例方法200的流程圖。方法200將參考計算機體系結(jié)構(gòu)100的組件和數(shù)據(jù)來描述。方法200包括以下動作接收表明如何將所指定的聯(lián)合鍵值的子集至少分成第一部分和第二部分的分區(qū)分隔指示以便分隔存儲在數(shù)據(jù)庫分區(qū)中的數(shù)據(jù)行(動作201)。例如,分區(qū)模塊101可以接收分區(qū)分隔指示109。分區(qū)分隔指示109包括鍵值部分181(鍵值子集183的一個子集)和鍵值部分182(鍵值子集183的另一個子集)。鍵值部分181和182共同指明如何分割鍵值子集183以便分隔存儲在分區(qū)103A內(nèi)的數(shù)據(jù)行。方法200包括,根據(jù)分區(qū)分隔指示并且在數(shù)據(jù)庫分區(qū)保持在線的同時,執(zhí)行分隔操作以便分隔數(shù)據(jù)庫分區(qū)的動作(動作202)。例如,分區(qū)模塊101可以執(zhí)行分隔操作112以便根據(jù)分區(qū)分隔指示109來分隔分區(qū)數(shù)據(jù)庫分區(qū)103A。分區(qū)103A可以在分隔操作112的執(zhí)行期間保持在線。動作202可以包括建立第一新數(shù)據(jù)庫分區(qū)以存儲和所指定的聯(lián)合鍵值的子集的第一部分相對應(yīng)的數(shù)據(jù)行的動作(動作203)。例如,數(shù)據(jù)庫聯(lián)合101可以建立分區(qū)103A1以存儲和鍵值部分181相對應(yīng)的數(shù)據(jù)行。動作202可以包括建立第二新數(shù)據(jù)庫分區(qū)以存儲和所指定的聯(lián)合鍵值的子集的第二部分相對應(yīng)的數(shù)據(jù)行的動作(動作204)。例如,數(shù)據(jù)庫聯(lián)合101可以建立分區(qū)103A2以存儲和鍵值部分182相對應(yīng)的數(shù)據(jù)行。動作202可以包括建立從數(shù)據(jù)庫分區(qū)到第一和第二新數(shù)據(jù)庫分區(qū)的每一個的動作(動作205)。例如,數(shù)據(jù)庫聯(lián)合101可以建立從分區(qū)103A到分區(qū)103A1的復(fù)制流191。類似地,數(shù)據(jù)庫聯(lián)合101可以建立從分區(qū)103A到分區(qū)103A2的復(fù)制流192。動作202也可以包括在分區(qū)103A處配置過濾器113。過濾器113可用于基于和數(shù)據(jù)行相對應(yīng)的聯(lián)合鍵值為聯(lián)合表格104A中的每個數(shù)據(jù)行確定目的地分區(qū)。數(shù)據(jù)行可以被過濾用于復(fù)制到分區(qū)103A1或103A2,或者被過濾以保持在分區(qū)103A。例如,過濾器113可以被配置成選擇具有在鍵值部分181中的聯(lián)合鍵值的數(shù)據(jù)行供復(fù)制到分區(qū)103A1。過濾器113可以被配置成選擇具有在鍵值部分182中的聯(lián)合鍵值的數(shù)據(jù)行供復(fù)制到分區(qū)103A2。過濾器113可以被配置成選擇具有在鍵值部分181和182之外的聯(lián)合鍵值的數(shù)據(jù)行以保留在分區(qū)103A?,F(xiàn)在轉(zhuǎn)至圖1B,聯(lián)合表格104A包括行114A-114D。對于來自數(shù)據(jù)庫分區(qū)的一個或多個數(shù)據(jù)行的每一個,動作202可以包括以下動作過濾該數(shù)據(jù)行以便將第一新數(shù)據(jù)庫分區(qū)和第二新數(shù)據(jù)庫分區(qū)之一標(biāo)識為該數(shù)據(jù)行的合適的目的地數(shù)據(jù)庫分區(qū),所述過濾基于在所指定的聯(lián)合鍵值的子集的第一部分或第二部分中的數(shù)據(jù)行的聯(lián)合鍵值(動作206)。動作202可以包括根據(jù)過濾結(jié)果,通過合適的復(fù)制流將一個或多個數(shù)據(jù)行的每一個從數(shù)據(jù)庫分區(qū)復(fù)制到合適的目的地數(shù)據(jù)庫的動作(動作207)。例如,對于每一個行114A_114D(以及聯(lián)合表格104A中的其他行),過濾器113可以將分區(qū)103A1和103A2之一標(biāo)識為該行的合適目的地。過濾器113可以基于鍵值部分181或鍵值部分182中的鍵列178中的聯(lián)合鍵值來進行過濾。每個經(jīng)過濾的行可以分別通過復(fù)制流191或192被復(fù)制到分區(qū)103A1或分區(qū)103A2。例如,過濾器113可以基于鍵值部分181中包括的聯(lián)合鍵值116A和116C,將分區(qū)104A1標(biāo)識為行114A和114C的合適目的地。行114A和114C可以通過復(fù)制流191被復(fù)制到分區(qū)103A1,并且被存儲在聯(lián)合表格104A1中。類似地,過濾器113可以基于鍵值部分182中包括的聯(lián)合鍵值116B和116D,將分區(qū)104A2標(biāo)識為行114B和114D的合適目的地。行114B和114D可以通過復(fù)制流192被復(fù)制到分區(qū)103A2,并且被存儲在聯(lián)合表格104A2中。在完成分隔操作112的執(zhí)行之前,可以更新分區(qū)103A的一個或多個行內(nèi)的值。數(shù)據(jù)庫聯(lián)合102可以使用更新流來補償更新。圖2B示出用于分隔數(shù)據(jù)庫分區(qū)的示例方法250的流程圖。方法250將參考計算機體系結(jié)構(gòu)100的組件和數(shù)據(jù)來描述。方法250可以包括建立從數(shù)據(jù)庫分區(qū)到第一和第二新數(shù)據(jù)庫分區(qū)的每一個的更新流的動作(動作251)。例如,可以建立從分區(qū)103A到分區(qū)103A1的更新流193??梢越姆謪^(qū)103A到分區(qū)103A2的更新流194。方法250包括在完成分隔命令之前、接收對數(shù)據(jù)庫分區(qū)中的一數(shù)據(jù)行的傳入更新的動作(動作252)。例如,分區(qū)103A可以在分隔操作112完成之前接收更新197。更新197改變行114C中的值和行114B中的值。方法250包括以下動作過濾對數(shù)據(jù)行的更新以便將第一新數(shù)據(jù)庫分區(qū)和第二新數(shù)據(jù)庫分區(qū)之一標(biāo)識為用于該數(shù)據(jù)行的更新的合適目的地數(shù)據(jù)庫分區(qū),所述過濾基于在所指定的聯(lián)合鍵值的子集的第一部分或第二部分中的數(shù)據(jù)行的聯(lián)合鍵值。方法250包括根據(jù)過濾結(jié)果、通過合適的更新流將對數(shù)據(jù)行的更新從數(shù)據(jù)庫分區(qū)復(fù)制到合適的目的地數(shù)據(jù)庫分區(qū)的動作(動作254)。例如,過濾器113可以基于鍵值部分181中包括的聯(lián)合鍵值116C,將分區(qū)104A1標(biāo)識為對行114C的更新的合適目的地。對行114C的更新可以通過更新流193被復(fù)制到分區(qū)103A1,并且被存儲在聯(lián)合表格104A1中。對行114C的更新可以覆寫從118C到118N的列數(shù)據(jù)1中的值。類似地,過濾器113可以基于鍵值部分182中包括的聯(lián)合鍵值116B,將分區(qū)104A2標(biāo)識為對行114B的更新的合適目的地。對行114D的更新可以通過更新流194被復(fù)制到分區(qū)103A2,并且被存儲在聯(lián)合表格104A2中。對行114B的更新可以覆寫從117B到117Z的列數(shù)據(jù)中的值。因而,聯(lián)合表格104A中的數(shù)據(jù)行可以基于聯(lián)合鍵值在聯(lián)合表格104A1和104A2之間分隔(一些行可能保持在聯(lián)合表格104A處)。更新流可用于將接收到的更新傳播至聯(lián)合表格104A1和104A2直到分隔操作112完成。非聯(lián)合表格106可以完整地被復(fù)制到分區(qū)103A1和103A2的每一個。在一些實施例中,分隔操作具有類似于以下的格式ALTERFEDERATIONfederationnameSPLIT[AT(distribution一name=boundery_value,..n)]}SPLITAT(boundary_value)將聯(lián)合成員中的數(shù)據(jù)移到兩個新目的地聯(lián)合成員中。在聯(lián)合表格中具有小于boundary—value的聯(lián)合鍵實例的聯(lián)合表格中的行被復(fù)制到新目的地聯(lián)合成員之一。在聯(lián)合表格中具有大于等于boundary—value的聯(lián)合鍵實例的聯(lián)合表格中的行被復(fù)制到另一個新目的地聯(lián)合成員。當(dāng)SPLIT正在執(zhí)行時,所有常規(guī)的(即,非聯(lián)合的)對象方案和系統(tǒng)元數(shù)據(jù)從正在經(jīng)歷SPLIT操作的源聯(lián)合成員復(fù)制到目的地聯(lián)合成員。該列表包括以下的一個或多個用戶、角色、對象許可、sprocs、視圖、聯(lián)合表格或參考表格、索引及更多。所有的聯(lián)合表格方案可以從正在經(jīng)歷SPLIT操作的源聯(lián)合成員被復(fù)制到目的地聯(lián)合成員。聯(lián)合表格中的用戶數(shù)據(jù)可以基于相應(yīng)的目的地聯(lián)合成員的邊界值被移動至目的地聯(lián)合成員。其他對象中的用戶數(shù)據(jù)可以被克隆并被移動至目的地聯(lián)合成員。當(dāng)SPLIT完成時,新目的地聯(lián)合成員包含來自源聯(lián)合成員的所有最新的數(shù)據(jù)。源聯(lián)合成員可以被保持或丟棄。圖3A和;3B示出便于合并數(shù)據(jù)庫分區(qū)的示例計算機體系結(jié)構(gòu)100。參考圖3A,計算機體系結(jié)構(gòu)300包括分區(qū)模塊301和數(shù)據(jù)庫聯(lián)合302。所描繪的組件中的每一個都通過諸如例如局域網(wǎng)(“LAN”)、廣域網(wǎng)(“WAN”)或甚至因特網(wǎng)之類的網(wǎng)絡(luò)彼此連接(或者是網(wǎng)絡(luò)的一部分)。因此,所描繪的組件中的每一個以及任何其他連接的計算機系統(tǒng)及其組件都可以創(chuàng)建消息相關(guān)數(shù)據(jù)并通過網(wǎng)絡(luò)交換消息相關(guān)數(shù)據(jù)(例如,網(wǎng)際協(xié)議(“IP”)數(shù)據(jù)報和利用IP數(shù)據(jù)報的其他更高層協(xié)議,諸如傳輸控制協(xié)議(“TCP”)、超文本傳輸協(xié)議(“HTTP”)、簡單郵件傳輸協(xié)議(“SMTP”)等)。如圖所示,數(shù)據(jù)庫聯(lián)合302包括分區(qū)303A、3(X3B和303C。一些表格可以聯(lián)合,使得這些表格跨分區(qū)303A、30和303C分布。例如,聯(lián)合表格304A、304B和304C各自可以是同一表格的分布式部分??缏?lián)合表格304A、304B和304分布的每一數(shù)據(jù)行可由(例如,聯(lián)合)鍵值來標(biāo)識。每個分區(qū)303A、30;3B和303C可以負責(zé)鍵值的一個子集。在一些實施例中,每個分區(qū)303A、3(X3B和303C負責(zé)連續(xù)的鍵值范圍。然而,可以使用用于分配鍵值子集職責(zé)的其他機制,并且鍵值子集內(nèi)的鍵值無需是連續(xù)的。其他表格不被聯(lián)合。例如,分區(qū)303A、30;3B和303C分別包含非聯(lián)合的表格306、307和308。非聯(lián)合的表格可以存儲參考數(shù)據(jù)或其他類型的非聯(lián)合數(shù)據(jù)。圖4A示出用于合并數(shù)據(jù)庫分區(qū)的示例方法400的流程圖。方法400將參考計算機體系結(jié)構(gòu)300的組件和數(shù)據(jù)來描述。方法400包括以下動作接收表明如何組合多個所指定的聯(lián)合鍵值的子集的分區(qū)合并指示,以便將存儲在多個數(shù)據(jù)庫分區(qū)中的數(shù)據(jù)行合并在一起(動作401)。例如,分區(qū)模塊301可以接收分區(qū)合并指示309。分區(qū)合并指示309包括鍵值子集381和鍵值子集382。分區(qū)合并指示309可以表明如何組合鍵值子集381和鍵值子集382,以便將分區(qū)303A、303B和303C中存儲的數(shù)據(jù)行合并在一起。方法400包括以下動作,根據(jù)分區(qū)合并指示并且在多個數(shù)據(jù)庫分區(qū)保持在線的同時,執(zhí)行合并操作來將多個數(shù)據(jù)庫分區(qū)合并在一起(動作402)。例如,分區(qū)模塊301可以根據(jù)分區(qū)合并指示309執(zhí)行合并算子312,以便將來自分區(qū)30的數(shù)據(jù)行與來自分區(qū)303C的數(shù)據(jù)行合并。分區(qū)30和303C可以在合并操作312的執(zhí)行期間保持在線。方法400可以包括建立新數(shù)據(jù)庫分區(qū)以存儲和多個所指定的聯(lián)合鍵值的子集相對應(yīng)的數(shù)據(jù)行的動作(動作40;3)。例如,數(shù)據(jù)庫聯(lián)合可以建立分區(qū)303D以便存儲和(聯(lián)合表格304D中的)鍵值子集381和382相對應(yīng)的數(shù)據(jù)行。方法400包括建立從多個數(shù)據(jù)庫分區(qū)的每一個到新數(shù)據(jù)庫分區(qū)的復(fù)制流的動作(動作404)。例如,數(shù)據(jù)庫聯(lián)合301可以建立從分區(qū)3(X3B到分區(qū)303D的復(fù)制流391。類似地,數(shù)據(jù)庫聯(lián)合301可以建立從分區(qū)303C到分區(qū)303D的復(fù)制流392?,F(xiàn)在轉(zhuǎn)至圖;3B,聯(lián)合表格304B包括行314A-314B。類似地,聯(lián)合表格304C包括行314C和314D。鍵列378存儲數(shù)據(jù)行的聯(lián)合鍵值。例如,行314A、314B、314C和314D分別對應(yīng)于鍵值316A、316B、316C和316D。鍵值316A和316B可以被包括在鍵值子集381中。類似地,鍵值316C和316D可以被包括在鍵值子集382中。方法400包括通過合適的復(fù)制流將一個或多個數(shù)據(jù)行從多個數(shù)據(jù)庫分區(qū)轉(zhuǎn)移到新數(shù)據(jù)庫分區(qū)的動作(動作405)。例如,行314A和314B可以通過復(fù)制流391從分區(qū)3(Χ3Β復(fù)制到分區(qū)303D。類似地,行314C和314D可以通過復(fù)制流392從分區(qū)303C復(fù)制到303D。因而,行314A-314D被合并到聯(lián)合表格304D中。在完成合并操作312的執(zhí)行之前,可以更新分區(qū)30和/或303D的一個或多個行內(nèi)的值。數(shù)據(jù)庫聯(lián)合302可以使用更新流來補償更新。圖4B示出用于合并數(shù)據(jù)庫分區(qū)的示例方法450的流程圖。方法450將參考計算機體系結(jié)構(gòu)300的組件和數(shù)據(jù)來描述。方法450包括建立從多個數(shù)據(jù)庫分區(qū)的每一個到新數(shù)據(jù)庫分區(qū)的更新流的動作(動作451)。例如,數(shù)據(jù)庫聯(lián)合301可以建立從分區(qū)3(X3B到分區(qū)303D的更新流393。類似地,數(shù)據(jù)庫聯(lián)合301可以建立從分區(qū)303C到分區(qū)303D的更新流394。方法450包括接收對存儲在多個數(shù)據(jù)庫分區(qū)之一中的一數(shù)據(jù)行的傳入更新的動作(動作452)。例如,分區(qū)3(X3B可以在合并操作312完成之前接收更新397。更新397改變行314A中的值。類似地,分區(qū)303C可以在合并操作312完成之前接收更新398。更新398改變行314D中的值。方法450包括通過合適的更新流來轉(zhuǎn)移對新數(shù)據(jù)庫分區(qū)中的相應(yīng)數(shù)據(jù)行的更新的動作(動作45;3)。例如,分區(qū)3(X3B可以通過更新流393將對行314A的更新復(fù)制到分區(qū)303D。對行314A的更新可以覆寫從317A到317P的列數(shù)據(jù)中的值。類似地,分區(qū)303C可以通過更新流394將對行314D的更新復(fù)制到分區(qū)303D。對行314D的更新可以覆寫從318P到318T的列數(shù)據(jù)1中的值。因而,聯(lián)合表格304B和304C中的數(shù)據(jù)行可以基于聯(lián)合鍵值被合并到聯(lián)合表格304D中(一些行可能保持在聯(lián)合表格304B和304C處)。更新流可用于將接收到的更新傳播至聯(lián)合表格304D直到合并操作312完成。非聯(lián)合表格307和308可以完整地被復(fù)制到分區(qū)303D。在一些實施例中,合并操作具有類似于以下的格式ALTERFEDERATIONfederation_name{|MERGE[AT([LOW|HIGH]distribution_name=boundary_value_range,..n)}MERGEAT(boundary_value_range)將跨兩個或更多聯(lián)合成員分布的boundary—value(邊界值)范圍內(nèi)的數(shù)據(jù)移動到單個新目的地聯(lián)合成員中?;谂渲?,可以在合并中包括或者從合并中排除具有處在b0undary_value_range邊緣的聯(lián)合鍵實例的聯(lián)合表格中的行。當(dāng)MERGE操作正在執(zhí)行時,所有常規(guī)的(S卩,非聯(lián)合的)對象方案和系統(tǒng)元數(shù)據(jù)從正在經(jīng)歷MERGE操作的源聯(lián)合成員復(fù)制到目的地聯(lián)合成員。該列表包括以下的一個或多個用戶、角色、對象許可、sprocs、視圖、聯(lián)合表格或參考表格、索引及更多。所有的聯(lián)合表格方案可以從正在經(jīng)歷MERGE操作的源聯(lián)合成員被復(fù)制到目的地聯(lián)合成員。聯(lián)合表格中的用戶數(shù)據(jù)可以基于相應(yīng)的目的地聯(lián)合成員的邊界值被移動至目的地聯(lián)合成員。其他對象中的用戶數(shù)據(jù)可以被克隆并被移動至目的地聯(lián)合成員。當(dāng)MERGE完成時,新目的地聯(lián)合成員包含來自源聯(lián)合成員的所有最新的數(shù)據(jù)。源聯(lián)合成員可以被保持或丟棄。圖5A和5B示出便于從分布式數(shù)據(jù)庫丟棄行的示例計算機體系結(jié)構(gòu)500。參考圖5A,計算機體系結(jié)構(gòu)500包括分區(qū)模塊501和數(shù)據(jù)庫聯(lián)合502。所描繪的組件中的每一個都通過諸如例如局域網(wǎng)(“LAN”)、廣域網(wǎng)(“WAN”)或甚至因特網(wǎng)之類的網(wǎng)絡(luò)彼此連接(或者是網(wǎng)絡(luò)的一部分)。因此,所描繪的組件中的每一個以及任何其他連接的計算機系統(tǒng)及其組件都可以創(chuàng)建消息相關(guān)數(shù)據(jù)并通過網(wǎng)絡(luò)交換消息相關(guān)數(shù)據(jù)(例如,網(wǎng)際協(xié)議(“IP”)數(shù)據(jù)報和利用IP數(shù)據(jù)報的其他更高層協(xié)議,諸如傳輸控制協(xié)議(“TCP”)、超文本傳輸協(xié)議(“HTTP”)、簡單郵件傳輸協(xié)議(“SMTP”)等)。如圖所示,數(shù)據(jù)庫聯(lián)合502包括分區(qū)503A、50;3B和503C。聯(lián)合表格504A、504B和504C各自可以是同一表格的分布式部分??缏?lián)合表格504A、504B和504分布的每一數(shù)據(jù)行可由(例如,聯(lián)合)鍵值來標(biāo)識。每個分區(qū)503A、5(X3B和503C可以負責(zé)鍵值的一個子集。在一些實施例中,每個分區(qū)503A、50和503C負責(zé)連續(xù)的鍵值范圍。然而,可以使用用于分配鍵值子集職責(zé)的其他機制,并且鍵值子集內(nèi)的鍵值無需是連續(xù)的。聯(lián)合表格504A存儲和鍵值504A1和504A2相對應(yīng)的數(shù)據(jù)行。聯(lián)合表格504B存儲和鍵值504B1、504B2和504B3相對應(yīng)的數(shù)據(jù)行。圖6示出用于從分布式數(shù)據(jù)庫丟棄行的示例方法600的流程圖。方法600將參考計算機體系結(jié)構(gòu)500的組件和數(shù)據(jù)來描述。方法600包括以下動作接收表明如何處理多個所指定的聯(lián)合鍵值的子集中的一個或多個中的至少一些的分區(qū)丟棄指示,以便丟棄存儲在多個數(shù)據(jù)庫分區(qū)中的相應(yīng)數(shù)據(jù)行(動作601)。例如,分區(qū)模塊501可以接收分區(qū)丟棄指示509。分區(qū)丟棄指示509可以表明如何處理鍵值581以丟棄存儲在聯(lián)合表格504A和504B中的相應(yīng)數(shù)據(jù)行。鍵值581包括鍵值504A2.504B1和504B3。方法600包括以下動作根據(jù)分區(qū)丟棄指示并且在多個數(shù)據(jù)庫分區(qū)保持在線的同時、執(zhí)行丟棄操作以丟棄相應(yīng)的數(shù)據(jù)行(動作60。例如,分區(qū)模塊501可以根據(jù)分區(qū)丟棄指示509來執(zhí)行丟棄操作512,以丟棄相應(yīng)的行。分區(qū)503A、50;3B和503C可以在丟棄操作512的執(zhí)行期間保持在線?,F(xiàn)在轉(zhuǎn)至圖5B,聯(lián)合表格504A包括行514A-514C、514T和514P。類似地,聯(lián)合表格504C包括行514D-514I和514S。鍵列378存儲數(shù)據(jù)行的聯(lián)合鍵值。例如,行514A-514C、514T和514P分別對應(yīng)于鍵值516A-516C、516T和516P。類似地,行514D-514I和514S分別對應(yīng)于鍵值516D-516I和516S。鍵值516C和516T被包括在鍵值504A2。類似地,鍵值516D被包括在鍵值504B1。同樣,鍵值516G-516I被包括在鍵值504B3。動作602包括,對于要丟棄相應(yīng)數(shù)據(jù)行的每個數(shù)據(jù)庫分區(qū),訪問要從數(shù)據(jù)庫分區(qū)被丟棄的數(shù)據(jù)行的聯(lián)合鍵值的動作(動作603)。例如,數(shù)據(jù)庫聯(lián)合502可以分別訪問要從分區(qū)503A丟棄的行514C和514T的聯(lián)合鍵值516C和516T。類似地,數(shù)據(jù)庫聯(lián)合502可以分別訪問要從分區(qū)50丟棄的行514D、514G、514H和5141的聯(lián)合鍵值516D、516G、516H和5161。動作602包括,對于要丟棄相應(yīng)數(shù)據(jù)行的每個數(shù)據(jù)庫分區(qū),擴展其他數(shù)據(jù)庫分區(qū)的所指定的聯(lián)合鍵值的子集,以配置其他數(shù)據(jù)庫分區(qū)來存儲和所訪問的聯(lián)合鍵值相對應(yīng)的數(shù)據(jù)行(動作604)。例如,數(shù)據(jù)庫聯(lián)合502可以擴展分區(qū)503C的聯(lián)合值的子集,以配置聯(lián)合表格504C來存儲行514C、514T、514D、514G、514H和5141。行514C、514T、514D、514G、514H和5141的列數(shù)據(jù)和數(shù)據(jù)1中的值可以留空。動作602包括,對于要丟棄相應(yīng)數(shù)據(jù)行的每個數(shù)據(jù)庫分區(qū),從數(shù)據(jù)庫分區(qū)移除相應(yīng)的數(shù)據(jù)行的動作(動作60幻。例如,數(shù)據(jù)庫聯(lián)合502可以從聯(lián)合表格504A移除行514C和514T。類似地,數(shù)據(jù)庫聯(lián)合502可以從聯(lián)合表格504B移除行514D、514G、514H和5141。在一些實施例中,丟棄操作具有類似于以下的格式ALTERFEDERATIONfederationnameDROP[AT([LOW|HIGH}distributionname二boundary_value,..n)]}丟棄操作可用于將行移至新分區(qū)并且從以前的分區(qū)聯(lián)合中丟棄行。DROPAT丟棄行,并且擴展相鄰的聯(lián)合成員范圍以覆蓋丟棄所創(chuàng)建的間隙。丟棄操作可以既影響被丟棄的聯(lián)合成員,又影響被擴展以覆蓋間隙的相鄰聯(lián)合成員。邊界值可以對應(yīng)于聯(lián)合中的現(xiàn)有范圍值。更具體地,DROPAT(LOWdistribution_name=boundary_value)將一個聯(lián)合成員丟棄至覆蓋邊界值的較低值集合的數(shù)據(jù)庫,并且將該聯(lián)合成員擴展到邊界值的右邊。例如,對于覆蓋0,100(dbl)和100,200(_和200,300(db3)的聯(lián)合成員列表1.發(fā)出ALTERFEDERATIONfedlDROPAT(LOWcustomer_id=200)2.丟棄db2和100,200之間的所有數(shù)據(jù)。3.保持的聯(lián)合成員集合為0,100(dbl)和100,300(db4)4.db4基本包含新范圍以及來自聯(lián)合成員db3的所有數(shù)據(jù)和方案。另一方面,DROPAT(HIGHdistribution_name=boundary_value)Mf聯(lián)合成員丟棄到邊界值的HIGH,并將聯(lián)合成員擴展至邊界值的較低側(cè)。例如,對于覆蓋0,100(dbl)和100,200(_和200,300(db3)的聯(lián)合成員列表1.發(fā)出ALTERFEDERATIONfedlDROPAT(LOWcustomer_id=200)2.丟棄db2和200,300之間的所有數(shù)據(jù)。3.保持的聯(lián)合成員集合為0,100(dbl)和100,300(db4)4.db4基本包含新范圍以及來自聯(lián)合成員db2的所有數(shù)據(jù)和方案。根據(jù)LOW或HIGH選項,可以丟棄相應(yīng)的聯(lián)合成員,并且擴展剩余的聯(lián)合成員以覆蓋全范圍。當(dāng)DROP操作完成時,剩余的聯(lián)合成員覆蓋全范圍而沒有邊界值。剩余的聯(lián)合成員可以被重新命名。聯(lián)合也可以使用丟棄聯(lián)合操作被完全丟棄。可以發(fā)出丟棄聯(lián)合命令,使丟棄聯(lián)合操作發(fā)生。丟棄聯(lián)合命令可以具有下列格式DROPFEDERATIONfederation_name丟棄聯(lián)合清除了關(guān)于聯(lián)合的元數(shù)據(jù)、邏輯對象,并且丟棄其聯(lián)合成員。如前所述,聯(lián)合可以在任何常規(guī)數(shù)據(jù)庫中創(chuàng)建。包含聯(lián)合的數(shù)據(jù)庫也稱為聯(lián)合根。聯(lián)合根可以維持用于聯(lián)合的元數(shù)據(jù)。聯(lián)合根也可用于存儲中央化的信息、應(yīng)用配置信息或全局參考數(shù)據(jù)。聯(lián)合成員可以被視為聯(lián)合的部分數(shù)據(jù)的容器。聯(lián)合成員數(shù)據(jù)可以通過物理數(shù)據(jù)庫來備份。一個聯(lián)合中的所有聯(lián)合成員的集合表示了表格集合的完整數(shù)據(jù)集,諸如“所有消費者”和“所有定單”。然而,每個聯(lián)合成員包含完整數(shù)據(jù)集(它可以或者可以不跨成員均勻地分布)的一個子集。在聯(lián)合成員中可以支持諸如DDL、DML操作和常規(guī)數(shù)據(jù)庫的查詢能力這樣的編程表面操作。本發(fā)明可被具體化為其他具體形式而不背離其精神或本質(zhì)特征。所描述的實施例在所有方面都應(yīng)被認為僅是說明性而非限制性的。因此,本發(fā)明的范圍由所附權(quán)利要求書而非前述描述指示。落入權(quán)利要求書的等效方案的含義和范圍內(nèi)的所有改變被權(quán)利要求書的范圍所涵蓋。1權(quán)利要求1.在包括一個或多個處理器和系統(tǒng)存儲器的計算機系統(tǒng)處的一種用于將數(shù)據(jù)庫分區(qū)(103A)分隔成多個數(shù)據(jù)庫分區(qū)(103A1、103A》的方法,所述計算機系統(tǒng)包括在聯(lián)合數(shù)據(jù)庫系統(tǒng)中,所述聯(lián)合數(shù)據(jù)庫系統(tǒng)被配置成存儲多個數(shù)據(jù)行以及定義如何基于聯(lián)合鍵值跨一個或多個數(shù)據(jù)庫分區(qū)分布數(shù)據(jù)行的分區(qū)標(biāo)準(zhǔn),所述多個數(shù)據(jù)行跨聯(lián)合數(shù)據(jù)庫系統(tǒng)的一個或多個數(shù)據(jù)庫分區(qū)(103A、10;3B、103C)分布,每個數(shù)據(jù)行對應(yīng)于用于標(biāo)識數(shù)據(jù)行的一個聯(lián)合鍵值,所述聯(lián)合鍵值選自聯(lián)合數(shù)據(jù)庫系統(tǒng)的一組聯(lián)合鍵值,所述計算機系統(tǒng)包括一個或多個數(shù)據(jù)庫分區(qū)中的一個數(shù)據(jù)庫分區(qū),所述分區(qū)標(biāo)準(zhǔn)定義了所述數(shù)據(jù)庫分區(qū)要存儲和所指定的聯(lián)合鍵值集合中的子集相對應(yīng)的數(shù)據(jù)行,所述方法包括以下動作接收表明如何將所指定的聯(lián)合鍵值的子集至少分成第一部分(181)和第二部分(182)的分區(qū)分隔指示(109)以便分隔存儲在數(shù)據(jù)庫分區(qū)(103A)中的數(shù)據(jù)行的動作;根據(jù)分區(qū)分隔指示(109)并且在數(shù)據(jù)庫分區(qū)(103A)保持在線的同時,執(zhí)行分隔操作(112)以便分隔數(shù)據(jù)庫分區(qū)(103A)的動作,該動作包括;建立第一新數(shù)據(jù)庫分區(qū)(103A1)以存儲和所指定的聯(lián)合鍵值的子集的第一部分(181)相對應(yīng)的數(shù)據(jù)行的動作;建立第二新數(shù)據(jù)庫分區(qū)(103A》以存儲和所指定的聯(lián)合鍵值的子集的第二部分(182)相對應(yīng)的數(shù)據(jù)行的動作;建立從數(shù)據(jù)庫分區(qū)(103A)到第一和第二新數(shù)據(jù)庫分區(qū)(103A1、103A》的每一個的復(fù)制流(191、192)的動作;以及對于來自數(shù)據(jù)庫分區(qū)的數(shù)據(jù)的一個或多個數(shù)據(jù)行(114A-114D)的每一個,過濾所述數(shù)據(jù)行以便將第一新數(shù)據(jù)庫分區(qū)和第二新數(shù)據(jù)庫分區(qū)之一標(biāo)識為該數(shù)據(jù)行的合適的目的地數(shù)據(jù)庫分區(qū)的動作,所述過濾基于在所指定的聯(lián)合鍵值的子集的第一部分或第二部分中的數(shù)據(jù)行的聯(lián)合鍵值;以及根據(jù)過濾結(jié)果、通過合適的復(fù)制流將一個或多個數(shù)據(jù)行(114A-114D)的每一個從數(shù)據(jù)庫分區(qū)(103A)復(fù)制到合適的目的地數(shù)據(jù)庫的動作。2.如權(quán)利要求1所述的方法,其特征在于,還包括建立從數(shù)據(jù)庫分區(qū)到第一和第二新數(shù)據(jù)庫分區(qū)的每一個的更新流的動作;在完成分隔命令之前、接收對數(shù)據(jù)庫分區(qū)中的一數(shù)據(jù)行的傳入更新的動作;過濾對數(shù)據(jù)行的更新以便將第一新數(shù)據(jù)庫分區(qū)和第二新數(shù)據(jù)庫分區(qū)之一標(biāo)識為用于該數(shù)據(jù)行的更新的合適目的地數(shù)據(jù)庫分區(qū),所述過濾基于在所指定的聯(lián)合鍵值的子集的第一部分或第二部分中的數(shù)據(jù)行的聯(lián)合鍵值;以及根據(jù)過濾結(jié)果、通過合適的更新流將對數(shù)據(jù)行的更新從數(shù)據(jù)庫分區(qū)復(fù)制到合適的目的地數(shù)據(jù)庫的動作。3.如權(quán)利要求1所述的方法,其特征在于,所述建立從數(shù)據(jù)庫分區(qū)到第一和第二新數(shù)據(jù)庫分區(qū)中的每一個的復(fù)制流的動作包括建立到第一新數(shù)據(jù)庫分區(qū)的第一復(fù)制流的動作;以及建立到第二新數(shù)據(jù)庫分區(qū)的第二復(fù)制流的動作。4.如權(quán)利要求3所述的方法,其特征在于,所述將一個或多個數(shù)據(jù)行的每一個從數(shù)據(jù)庫分區(qū)復(fù)制到合適的目的地數(shù)據(jù)庫的動作包括通過第一復(fù)制流將數(shù)據(jù)行復(fù)制到第一新數(shù)據(jù)庫分區(qū)的動作,所述數(shù)據(jù)行具有在聯(lián)合鍵值的子集的第一部分中的聯(lián)合鍵值。5.如權(quán)利要求1所述的方法,其特征在于,接收表明如何將所指定的聯(lián)合鍵值的子集至少分成第一部分和第二部分的分區(qū)分隔數(shù)據(jù)的動作包括接收分區(qū)分隔數(shù)據(jù),所述分區(qū)分隔數(shù)據(jù)表明如何將所指定的聯(lián)合鍵值的子集分成第一部分、第二部分以及一個或多個附加部分。6.如權(quán)利要求5所述的方法,其特征在于,所述根據(jù)分區(qū)分隔指示并且在數(shù)據(jù)庫分區(qū)保持在線的同時、執(zhí)行分隔命令來分隔數(shù)據(jù)庫分區(qū)還包括建立和所指定的聯(lián)合鍵值的子集的一個或多個附加部分相對應(yīng)的一個或多個附加新數(shù)據(jù)庫分區(qū)的動作;以及建立從數(shù)據(jù)庫分區(qū)到一個或多個附加數(shù)據(jù)庫分區(qū)的每一個的復(fù)制流的動作。7.如權(quán)利要求6所述的方法,其特征在于,還包括對于來自數(shù)據(jù)庫分區(qū)的一個或多個其他數(shù)據(jù)行的每一個,過濾所述數(shù)據(jù)行以便將一個或多個附加新數(shù)據(jù)庫分區(qū)之一標(biāo)識為該數(shù)據(jù)行的合適的目的地數(shù)據(jù)庫分區(qū)的動作,所述過濾基于在所指定的聯(lián)合鍵值的子集的一個或多個附加部分之一中的數(shù)據(jù)行的聯(lián)合鍵值;根據(jù)過濾結(jié)果、通過合適的復(fù)制流將一個或多個其他數(shù)據(jù)行的每一個從數(shù)據(jù)庫分區(qū)復(fù)制到合適的目的地數(shù)據(jù)庫的動作。8.如權(quán)利要求1所述的方法,其特征在于,所述接收表明如何分割所指定的聯(lián)合鍵值的子集的分區(qū)分隔指示的動作包括接收表明在哪里分割聯(lián)合鍵值范圍的分割聯(lián)合鍵值,所述聯(lián)合鍵值的范圍包括在較低聯(lián)合鍵值和較高聯(lián)合鍵值之間的聯(lián)合鍵值。9.在包括一個或多個處理器和系統(tǒng)存儲器的計算機系統(tǒng)處的一種用于合并數(shù)據(jù)庫分區(qū)(30;3B,303C)的方法,所述計算機系統(tǒng)包括在聯(lián)合數(shù)據(jù)庫系統(tǒng)中,所述聯(lián)合數(shù)據(jù)庫系統(tǒng)被配置成存儲多個數(shù)據(jù)行以及定義如何基于聯(lián)合鍵值跨一個或多個數(shù)據(jù)庫分區(qū)分布數(shù)據(jù)行的分區(qū)標(biāo)準(zhǔn),所述多個數(shù)據(jù)行跨聯(lián)合數(shù)據(jù)庫系統(tǒng)的多個數(shù)據(jù)庫分區(qū)(303A、30;3B、303C)分布,每個數(shù)據(jù)行對應(yīng)于用于標(biāo)識數(shù)據(jù)行的一個聯(lián)合鍵值,所述聯(lián)合鍵值選自聯(lián)合數(shù)據(jù)庫系統(tǒng)的一組聯(lián)合鍵值,所述分區(qū)標(biāo)準(zhǔn)包括定義多個數(shù)據(jù)庫分區(qū)的每一個要存儲和聯(lián)合鍵值集合的一個不同的所指定的子集相對應(yīng)的數(shù)據(jù)行,所述方法包括接收表明如何組合多個所指定的聯(lián)合鍵值的子集的分區(qū)合并指示(309),以便將存儲在多個數(shù)據(jù)庫分區(qū)(303B、303C)中的數(shù)據(jù)行合并在一起;按照分區(qū)合并指示(312)并且在多個數(shù)據(jù)庫分區(qū)保持在線的同時,執(zhí)行合并操作以便將多個數(shù)據(jù)庫分區(qū)(30;3B,303C)合并在一起的動作,該動作包括建立新數(shù)據(jù)庫分區(qū)(303D)以存儲和多個所指定的聯(lián)合鍵值的子集相對應(yīng)的數(shù)據(jù)行的動作;建立從多個數(shù)據(jù)庫分區(qū)(30;3B,303C)的每一個到新數(shù)據(jù)庫分區(qū)(303D)的復(fù)制流(391,392)的動作;以及通過合適的復(fù)制流(391,39將一個或多個數(shù)據(jù)行(314A-314D)從多個數(shù)據(jù)庫分區(qū)(303B,303C)轉(zhuǎn)移到新數(shù)據(jù)庫分區(qū)(303D)的動作。10.如權(quán)利要求9所述的方法,其特征在于,還包括建立從多個數(shù)據(jù)庫分區(qū)的每一個到新數(shù)據(jù)庫分區(qū)的更新流的動作;接收對存儲在多個數(shù)據(jù)庫分區(qū)之一中的一數(shù)據(jù)行的傳入更新的動作;以及通過合適的更新流來轉(zhuǎn)移對新數(shù)據(jù)庫分區(qū)中的相應(yīng)數(shù)據(jù)行的更新的動作。11.如權(quán)利要求10所述的方法,其特征在于,所述接收表明如何組合多個所指定的聯(lián)合鍵值的子集的分區(qū)合并指示的動作包括接收要被組合成聯(lián)合鍵值組合范圍中的多個不同范圍的聯(lián)合鍵值的指示,所述多個不同范圍的聯(lián)合鍵值的每一個對應(yīng)于多個數(shù)據(jù)庫分區(qū)之一。12.在包括一個或多個處理器和系統(tǒng)存儲器的分布式數(shù)據(jù)庫系統(tǒng)處的一種用于從分布式數(shù)據(jù)庫系統(tǒng)丟棄數(shù)據(jù)行的方法,所述分布式數(shù)據(jù)庫還包括在聯(lián)合中的多個數(shù)據(jù)庫分區(qū),所述多個數(shù)據(jù)庫分區(qū)包括第一數(shù)據(jù)庫分區(qū)(503A)和第二數(shù)據(jù)庫分區(qū)(50),所述聯(lián)合被配置成存儲多個數(shù)據(jù)行,每個數(shù)據(jù)行由聯(lián)合鍵值標(biāo)識,使得聯(lián)合存儲了聯(lián)合鍵值集合的數(shù)據(jù),所述多個數(shù)據(jù)庫分區(qū)中的每個被配置成存儲具有在所指定的聯(lián)合鍵值集合的子集中的聯(lián)合鍵值的任何數(shù)據(jù)行,所述方法包括接收表明如何處理多個所指定的聯(lián)合鍵值的子集中的一個或多個中的至少一些的分區(qū)丟棄指示(509),以便丟棄存儲在多個數(shù)據(jù)庫分區(qū)(503A,50;3B)中的相應(yīng)數(shù)據(jù)行的動作;根據(jù)分區(qū)丟棄指示(509)并且在多個數(shù)據(jù)庫分區(qū)(503A,503B)保持在線的同時,執(zhí)行丟棄操作(512)以便丟棄相應(yīng)數(shù)據(jù)行的動作,包括對于要丟棄相應(yīng)數(shù)據(jù)行的每一個數(shù)據(jù)庫執(zhí)行以下動作訪問要從數(shù)據(jù)庫分區(qū)被丟棄的數(shù)據(jù)行的聯(lián)合鍵值(504A2,504B1,504B;3)的動作;擴展其他數(shù)據(jù)庫分區(qū)(503C)的所指定的聯(lián)合鍵值的子集以配置其他數(shù)據(jù)庫分區(qū)來存儲對應(yīng)于所訪問的聯(lián)合鍵值的數(shù)據(jù)行的動作;以及從數(shù)據(jù)庫分區(qū)中移除相應(yīng)的數(shù)據(jù)行的動作。13.如權(quán)利要求12所述的方法,其特征在于,接收表明如何處理多個所指定的聯(lián)合鍵值的子集中的一個或多個中的至少一些以丟棄存儲在所述多個數(shù)據(jù)庫分區(qū)中的對應(yīng)的數(shù)據(jù)行的分區(qū)丟棄指示的動作包括接收表明要丟棄相應(yīng)的數(shù)據(jù)行的一個或多個聯(lián)合鍵值范圍。14.如權(quán)利要求13所述的方法,其特征在于,所述訪問要從數(shù)據(jù)庫分區(qū)被丟棄的數(shù)據(jù)行的聯(lián)合鍵值的動作包括訪問來自一個或多個聯(lián)合鍵值范圍的聯(lián)合鍵值的動作。15.如權(quán)利要求14所述的方法,其特征在于,所述擴展其他數(shù)據(jù)庫分區(qū)的所指定的聯(lián)合鍵值的子集的動作包括擴展其他數(shù)據(jù)庫分區(qū)的聯(lián)合鍵值范圍的動作。全文摘要本發(fā)明涉及在線數(shù)據(jù)庫的分區(qū)。本發(fā)明涉及用于對在線數(shù)據(jù)庫進行分區(qū)的方法、系統(tǒng)和計算機程序產(chǎn)品。諸如SPLIT、MERGE和DROP這樣的在線數(shù)據(jù)庫操作用來改變聯(lián)合數(shù)據(jù)庫中的分區(qū)布局。SPLIT操作跨多個其他分區(qū)來分隔一個分區(qū)處的行。MERGE操作將多個分區(qū)處的行移至一個分區(qū)中。DROP操作將數(shù)據(jù)行的職責(zé)從一個分區(qū)轉(zhuǎn)移至另一個分區(qū),然后從該一個分區(qū)中丟棄行。文檔編號G06F17/30GK102521234SQ20111035594公開日2012年6月27日申請日期2011年10月27日優(yōu)先權(quán)日2010年10月28日發(fā)明者A·卡爾漢,A·金博爾,C·比伊扣格魯,I·切里,J·D·克拉克,J·哈默,L·諾維克,M·T·弗里德曼,S·O·沃蒂萊寧,T·塔留斯,T·彼得羅相申請人:微軟公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1