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

有效讀出副本的制作方法

文檔序號(hào):9568661閱讀:273來源:國(guó)知局
有效讀出副本的制作方法
【專利說明】有效讀出副本
[0001]發(fā)明背景
[0002]軟件堆棧的各種組件的分布在一些情況下可以提供(或支持)容錯(cuò)(例如,通過復(fù)制)、更高的持久性以及更廉價(jià)的解決方案(例如,通過使用許多更小、更廉價(jià)的組件,而非略大、略昂貴的組件)。然而,數(shù)據(jù)庫歷來是軟件堆棧的最難進(jìn)行分布的組件之一。例如,可能難以分布數(shù)據(jù)庫而同時(shí)仍然確保預(yù)期要提供的所謂的ACID特性(例如,原子性、一致性、隔咼性和持久性)。
[0003]雖然大多數(shù)的現(xiàn)有的關(guān)系數(shù)據(jù)庫未被分布,但是一些現(xiàn)有的數(shù)據(jù)庫使用兩個(gè)公共模型中的一個(gè)“縮放”(如與通過僅僅采用較大整體系統(tǒng)“擴(kuò)大”相反)無共享”模型以及“共享盤”模型。一般來說,在“無共享”模型中,接收到的查詢被分解成數(shù)據(jù)庫片(每個(gè)數(shù)據(jù)庫片包括該查詢的組件),這些片發(fā)送至不同計(jì)算節(jié)點(diǎn)以供查詢處理,并且結(jié)果在它們返回前被收集和聚集。一般來說,在“共享盤”模型中,群集中的每個(gè)計(jì)算節(jié)點(diǎn)有權(quán)訪問相同下層數(shù)據(jù)。在采用此模型的系統(tǒng)中,必須非常仔細(xì)管理高速緩存的相干性。在這兩個(gè)模型中,大整體數(shù)據(jù)庫復(fù)制在多個(gè)節(jié)點(diǎn)(包括獨(dú)立式數(shù)據(jù)庫實(shí)例的所有功能)上,并且“膠粘”邏輯被添加來將它們縫合在一起。例如,在“無共享”模型中,膠粘邏輯可以提供調(diào)度器的細(xì)分查詢、將查詢發(fā)送至多個(gè)計(jì)算節(jié)點(diǎn)并隨后組合結(jié)果的功能。在“共享盤”模型中,膠粘邏輯可以用來將多個(gè)節(jié)點(diǎn)的高速緩存融在一起(例如,管理高速緩存層上的相干性)。這些“無共享”和“共享盤”數(shù)據(jù)庫系統(tǒng)可能部署起來耗費(fèi)成本、維持起來復(fù)雜,并且可能過度派發(fā)許多的數(shù)據(jù)庫用例。
[0004]第三模型是用于縮放讀出處理的讀出復(fù)制模型。根據(jù)典型讀出復(fù)制模型,當(dāng)針對(duì)數(shù)據(jù)庫的結(jié)構(gòu)做出改變時(shí),SQL記錄可以創(chuàng)建在邏輯復(fù)制日志中,隨后,邏輯復(fù)制日志可傳播至所有副本。每個(gè)副本隨后將會(huì)在它們自己版本的數(shù)據(jù)庫上本地運(yùn)行這些SQL語句。由于日志異步發(fā)送,因此讀出副本在一定程度上滯后于主數(shù)據(jù)庫而運(yùn)行,并且如果讀出副本需要被升級(jí)成主要讀出副本,那么數(shù)據(jù)存在一定程度損失。
【附圖說明】
[0005]圖1是示出根據(jù)一個(gè)實(shí)施方案的數(shù)據(jù)庫軟件堆棧的各種組件的框圖。
[0006]圖2是示出根據(jù)一些實(shí)施方案的服務(wù)系統(tǒng)架構(gòu)的框圖,所述服務(wù)系統(tǒng)架構(gòu)可配置成實(shí)施被配置成使用所公開的讀出副本的基于web服務(wù)的數(shù)據(jù)庫服務(wù)。
[0007]圖3是示出根據(jù)一個(gè)實(shí)施方案的被配置成使用所公開的讀出副本的數(shù)據(jù)庫系統(tǒng)的各種組件的框圖。
[0008]圖4是示出根據(jù)一個(gè)實(shí)施方案的被配置成使用所公開的讀出副本的分布式數(shù)據(jù)庫優(yōu)化存儲(chǔ)系統(tǒng)的框圖。
[0009]圖5是示出根據(jù)一個(gè)實(shí)施方案的被配置成使用所公開的讀出副本的數(shù)據(jù)庫系統(tǒng)中的單獨(dú)分布式數(shù)據(jù)庫優(yōu)化存儲(chǔ)系統(tǒng)的使用的框圖。
[0010]圖6是示出用于基于web服務(wù)的數(shù)據(jù)庫服務(wù)的讀出副本中的高速緩存無效的方法的一個(gè)實(shí)施方案的流程圖。
[0011]圖7是示出用于使用基于web服務(wù)的數(shù)據(jù)庫服務(wù)中的所公開的讀出副本執(zhí)行讀出的方法的一個(gè)實(shí)施方案的流程圖。
[0012]圖8是示出用于更新基于web服務(wù)的數(shù)據(jù)庫服務(wù)中的讀出副本中的高速緩存的方法的一個(gè)實(shí)施方案的流程圖。
[0013]圖9是示出用于將讀出副本轉(zhuǎn)換成基于web服務(wù)的數(shù)據(jù)庫服務(wù)中的主要節(jié)點(diǎn)的方法的一個(gè)實(shí)施方案的流程圖。
[0014]圖10是示出根據(jù)各種實(shí)施方案的被配置成實(shí)施有效讀出副本的計(jì)算機(jī)系統(tǒng)的框圖。
[0015]雖然在本文中,借助舉例針對(duì)若干實(shí)施方案和說明附圖描述了實(shí)施方案,但是本領(lǐng)域的技術(shù)人員將認(rèn)識(shí)到,實(shí)施方案不限于所描述的實(shí)施方案或附圖。應(yīng)當(dāng)理解,附圖及其詳細(xì)描述不意圖將實(shí)施方案限制于所公開的特定形式,相反,預(yù)期涵蓋落在如隨附權(quán)利要求書限定的精神和范圍內(nèi)的所有修改、等效物和替代形式。本文所用標(biāo)題僅僅出于組織結(jié)構(gòu)目的,并非意在用來限制說明書或權(quán)利要求書的范圍。如本申請(qǐng)全文所使用的,詞語“可/可以”在允許意義(即意指有可能)上使用,而非限于強(qiáng)制意義(即意指必須)。詞語“包括(include/including/includes) ”指示開放性的關(guān)系,并且因此意指包括但不限于。類似地,詞語“具有(have/having/has) ”同樣指示開放性的關(guān)系,并且因此意指具有但不限于。如本文中所使用的術(shù)語“第一”、“第二”、“第三”等等用作名詞前的標(biāo)記,并且不意味著任何類型次序(例如,空間、時(shí)間、邏輯等等),除非這種次序另外明確指出。
[0016]各種組件可描述為“被配置成”執(zhí)行一個(gè)或多個(gè)任務(wù)。在這樣的上下文中,“被配置成”是大體意指“具有”在操作期間執(zhí)行一個(gè)或多個(gè)任務(wù)的“結(jié)構(gòu)”的寬泛表述。因此,組件可配置成執(zhí)行任務(wù),即使在組件當(dāng)前并未執(zhí)行這個(gè)任務(wù)(例如,一計(jì)算機(jī)系統(tǒng)可配置成執(zhí)行操作,即使在操作當(dāng)前未被執(zhí)行時(shí)也是如此)。在一些上下文中,“被配置成”可是大體意指“具有”在操作期間執(zhí)行一個(gè)或多個(gè)任務(wù)的“電路”的結(jié)構(gòu)的寬泛表述。因此,組件可配置成執(zhí)行任務(wù),即使在組件當(dāng)前未在運(yùn)行時(shí)也是如此。一般來說,形成對(duì)應(yīng)“被配置成”的結(jié)構(gòu)的電路系統(tǒng)可以包括硬件電路。
[0017]為了方便描述,各種組件可描述為執(zhí)行一個(gè)或多個(gè)任務(wù)。此類描述應(yīng)解釋為包括短語“被配置成”。陳述被配置成執(zhí)行一個(gè)或多個(gè)任務(wù)的組件明確并不意圖調(diào)用35u.S.C.§ 112第六段作為該組件的解釋。
[0018]如本文所使用,“基于”這個(gè)術(shù)語用于描述影響確定的一個(gè)或多個(gè)因素。這個(gè)術(shù)語并不排除可影響確定的另外因素。也就是說,確定可僅基于那些因素、或至少部分基于那些因素??紤]短語“基于B確定A”,雖然B可為影響A的確定的因素,但是這個(gè)短語并不排除還基于C來確定A。在其他情況下,A可僅基于B確定。
[0019]本公開的范圍包括本文(明確或暗示地)所公開的任何特征或特征的組合或其任何概括,無論它是否緩解本文所提出的問題的任何或全部。因此,新權(quán)利要求書可在本申請(qǐng)的起訴(或申請(qǐng)要求其優(yōu)先權(quán))期間被表述為任何此類特征組合。具體來說,參考隨附的權(quán)利要求書,來自從屬權(quán)利要求中的特征可與獨(dú)立權(quán)利要求中的那些組合,并且來自相應(yīng)獨(dú)立權(quán)利要求中的特征可以任何合適方式組合并且不僅組合在隨附的權(quán)利要求書中列舉的特定組合中。
【具體實(shí)施方式】
[0020]公開了讀出副本的各實(shí)施方案。各個(gè)本實(shí)施方案可以包括數(shù)據(jù)庫服務(wù)的主要節(jié)點(diǎn),該數(shù)據(jù)庫服務(wù)從數(shù)據(jù)庫服務(wù)的客戶端接收指定要對(duì)數(shù)據(jù)庫服務(wù)存儲(chǔ)的記錄做出的修改的寫入請(qǐng)求。各個(gè)本實(shí)施方案還可包括發(fā)送重做日志記錄,所述重做日志記錄表示要對(duì)存儲(chǔ)記錄的版本的分布式存儲(chǔ)服務(wù)的服務(wù)器節(jié)點(diǎn)做出的修改。各個(gè)本實(shí)施方案可還包括向一個(gè)或多個(gè)讀出副本發(fā)送一個(gè)或多個(gè)讀出副本的相應(yīng)高速緩存中存儲(chǔ)的數(shù)據(jù)記錄的任何高速緩存版本過時(shí)的指示(例如,通知、實(shí)際讀出日志記錄等等)。為了后續(xù)讀出由讀出副本接收的那個(gè)數(shù)據(jù)記錄,讀出副本可以從分布式存儲(chǔ)服務(wù)而非高速緩存檢索該數(shù)據(jù)記錄的當(dāng)前版本。在一些實(shí)施方案中,讀出副本可配置成轉(zhuǎn)換(例如,故障轉(zhuǎn)移)成主要節(jié)點(diǎn)(例如,在主要節(jié)點(diǎn)故障后)而不會(huì)損失數(shù)據(jù)。
[0021]本說明書首先描述包括所公開的讀出副本的示例基于web服務(wù)的數(shù)據(jù)庫服務(wù)。包括在示例基于web服務(wù)的數(shù)據(jù)庫服務(wù)的描述中的是示例基于web服務(wù)的數(shù)據(jù)庫服務(wù)的各個(gè)方面,如數(shù)據(jù)庫引擎、讀出副本以及單獨(dú)分布式數(shù)據(jù)庫存儲(chǔ)服務(wù)。本說明書接著描述用于維持和使用讀出副本(包括將讀出副本轉(zhuǎn)換成主要節(jié)點(diǎn))的方法的各實(shí)施方案的流程圖。接著,本說明書描述可實(shí)施所公開的技術(shù)的示例系統(tǒng)。在整個(gè)本說明書中提供各種實(shí)例。
[0022]在一些實(shí)施方案中,本文所描述的系統(tǒng)實(shí)施web服務(wù),web服務(wù)使客戶端(例如,訂戶)能夠在云計(jì)算環(huán)境操作數(shù)據(jù)存儲(chǔ)系統(tǒng)。在一些實(shí)施方案中,數(shù)據(jù)存儲(chǔ)系統(tǒng)可為高度可伸縮且可擴(kuò)展的企業(yè)級(jí)數(shù)據(jù)庫系統(tǒng)。在一些實(shí)施方案中,查詢可涉及分布在多個(gè)物理資源上的數(shù)據(jù)庫存儲(chǔ)裝置,并且該數(shù)據(jù)庫系統(tǒng)可以基于需要來擴(kuò)大或縮小。在不同實(shí)施方案中,該數(shù)據(jù)庫系統(tǒng)可有效地用于各種類型和/或組織的數(shù)據(jù)庫模式。在一些實(shí)施方案中,客戶端/訂戶可以多種方式(例如,經(jīng)由SQL接口可交互地)向數(shù)據(jù)庫系統(tǒng)提交查詢。在其他實(shí)施方案中,外部應(yīng)用以及程序可以使用開放式數(shù)據(jù)庫連接(ODBC)和/或Java數(shù)據(jù)庫連接(JDBC)驅(qū)動(dòng)器接口向數(shù)據(jù)庫系統(tǒng)提交查詢。
[0023]更具體地,在一些實(shí)施方案中,本文所述系統(tǒng)可實(shí)施面向服務(wù)的數(shù)據(jù)庫架構(gòu),其中單數(shù)據(jù)庫系統(tǒng)的各種功能組件是固有地分布的。例如,比起將多個(gè)完整且整體數(shù)據(jù)庫實(shí)例(各自可以包括外來功能,如應(yīng)用服務(wù)器、搜索功能、或超過提供數(shù)據(jù)庫的核心功能需要的其他功能)捆綁在一起,這些系統(tǒng)可將數(shù)據(jù)庫的基本操作(例如,查詢處理、事務(wù)管理、高速緩存以及存儲(chǔ))組織成可單獨(dú)且獨(dú)立地伸縮的層。例如,在一些實(shí)施方案中,本文所描述的系統(tǒng)中的每個(gè)數(shù)據(jù)庫實(shí)例可包括數(shù)據(jù)庫層(其可包括單個(gè)主要節(jié)點(diǎn)以及客戶端側(cè)存儲(chǔ)系統(tǒng)驅(qū)動(dòng)器)以及單獨(dú)、分布式存儲(chǔ)系統(tǒng)(其可包括多個(gè)存儲(chǔ)節(jié)點(diǎn),這些存儲(chǔ)節(jié)點(diǎn)共同執(zhí)行傳統(tǒng)在現(xiàn)有系統(tǒng)的數(shù)據(jù)庫層中執(zhí)行的操作中的一些)。
[0024]如本文中更詳細(xì)地描述,在一些實(shí)施方案中,數(shù)據(jù)庫的最低級(jí)的操作(例如,備份、還原、快照、恢復(fù)和/或各種空間管理操作)中的一些可以從數(shù)據(jù)庫引擎卸下至存儲(chǔ)層并分布在多個(gè)節(jié)點(diǎn)和存儲(chǔ)設(shè)備上。例如,在一些實(shí)施方案中,比起數(shù)據(jù)庫引擎向數(shù)據(jù)庫表(或其數(shù)據(jù)頁面)應(yīng)用改變并隨后將修改過的數(shù)據(jù)頁面發(fā)送至存儲(chǔ)層,將改變應(yīng)用至所存儲(chǔ)的數(shù)據(jù)庫表(和其數(shù)據(jù)頁面)可為存儲(chǔ)層本身的職責(zé)。在此類實(shí)施方案中,可將重做日志記錄而非修改過的數(shù)據(jù)頁面發(fā)送至存儲(chǔ)層,此后,可以在一定程度上延遲并以分布方式(例如,通過后臺(tái)進(jìn)程)執(zhí)行重做處理(例如,重做日志記錄應(yīng)用)。在一些實(shí)施方案中,崩潰恢復(fù)(例如,從所存儲(chǔ)的重做日志記錄來重建數(shù)據(jù)頁面)還可由存儲(chǔ)層執(zhí)行,并且還可由分布式(并且在一些情況下延遲)后臺(tái)進(jìn)程執(zhí)行。
[0025]在一些實(shí)施方案中,由于重做日志以及未修改的數(shù)據(jù)頁面發(fā)送至存儲(chǔ)層,因此數(shù)據(jù)庫層與存儲(chǔ)層之間可以存在比現(xiàn)有的數(shù)據(jù)庫系統(tǒng)少得多的網(wǎng)絡(luò)流量。在一些實(shí)施方案中,每個(gè)重做日志可為指定其改變的對(duì)應(yīng)數(shù)據(jù)頁面的大小的大約十分之一。應(yīng)當(dāng)注意,從數(shù)據(jù)庫層和分布式存儲(chǔ)系統(tǒng)發(fā)送的請(qǐng)求可以是異步的,并且多個(gè)此類請(qǐng)求可以同時(shí)進(jìn)行。此夕卜,從數(shù)據(jù)庫層的主要節(jié)點(diǎn)發(fā)送至數(shù)據(jù)庫層的讀出副本的通信(例如,高速緩存無效請(qǐng)求)同樣可以是異步的。
[0026]如先前所指出,在典型大數(shù)據(jù)庫系統(tǒng)中,整個(gè)數(shù)據(jù)集合需要在該數(shù)據(jù)庫系統(tǒng)可在系統(tǒng)故障后重啟之前還原。在這些數(shù)據(jù)庫系統(tǒng)中,在崩潰后,系統(tǒng)必須確定所有數(shù)據(jù)頁面刷新至盤所已知的最后的點(diǎn)(例如,檢查點(diǎn))并且必須重放從該點(diǎn)向前的任何改變?nèi)罩尽@?,在?shù)據(jù)庫可用于處理來自客戶端進(jìn)程的傳入查詢前,系統(tǒng)進(jìn)程必須在所有數(shù)據(jù)頁面中進(jìn)行讀出,這些數(shù)據(jù)頁面在確定的檢查點(diǎn)后改變并且應(yīng)用尚未應(yīng)用至那些數(shù)據(jù)頁面的每個(gè)適用改變?nèi)罩居涗洝?br>[0027]在一些實(shí)施方案中,本文所述數(shù)據(jù)庫系統(tǒng)會(huì)能夠在該數(shù)據(jù)庫崩潰后幾乎立即進(jìn)行數(shù)據(jù)庫引擎的故障后的重啟(例如,使數(shù)據(jù)庫可提供來接受并服務(wù)于查詢),而非必須等待整個(gè)數(shù)據(jù)集合還原。相反,可以接受并服務(wù)于查詢,同時(shí)崩潰恢復(fù)由一個(gè)或多個(gè)后臺(tái)線程延遲執(zhí)行。例如,在崩潰后,多個(gè)后臺(tái)線程可以在不同存儲(chǔ)節(jié)點(diǎn)上并行操作,以從對(duì)應(yīng)重做日志重建數(shù)據(jù)頁面。同時(shí),如果傳入查詢目標(biāo)在于尚未重建的數(shù)據(jù)頁面,那么該存儲(chǔ)層可配置成從適當(dāng)重做日志中即時(shí)重新創(chuàng)建這個(gè)數(shù)據(jù)頁面。
[0028]—般來說,在給定一份數(shù)據(jù)后,數(shù)據(jù)庫的主要要求在于其可最終返回那份數(shù)據(jù)。為此,數(shù)據(jù)庫可包括若干不同組件(或?qū)?,每個(gè)組件執(zhí)行不同功能。例如,傳統(tǒng)的數(shù)據(jù)可被視為具有三層:用于執(zhí)行查詢解析、優(yōu)化以及執(zhí)行的第一層;用于提供事務(wù)性、恢復(fù)以及持久性的第二層;以及提供在本地附盤或網(wǎng)絡(luò)附屬存儲(chǔ)裝置上的存儲(chǔ)的第三層。如在上文指出,先前對(duì)縮放傳統(tǒng)的數(shù)據(jù)庫的嘗試通常涉及復(fù)制數(shù)據(jù)庫的所有三層并且在多個(gè)機(jī)器上分布那些復(fù)制的數(shù)據(jù)庫實(shí)例。
[0029]在一些實(shí)施方案中,本文所述系統(tǒng)可以與傳統(tǒng)的數(shù)據(jù)庫不同的方式劃分?jǐn)?shù)據(jù)庫系統(tǒng)的功能,并且可僅在多個(gè)機(jī)器上分布功能組件的子集合(而非完整的數(shù)據(jù)庫實(shí)例),以便實(shí)施縮放。例如,在一些實(shí)施方案中,面向客戶端的層可配置成接收指定哪些數(shù)據(jù)要存儲(chǔ)或檢索而非如何存儲(chǔ)或檢索數(shù)據(jù)的請(qǐng)求。該層可以執(zhí)行請(qǐng)求解析和/或優(yōu)化(例如,SQL解析和優(yōu)化),同時(shí)另一個(gè)層可以負(fù)責(zé)查詢執(zhí)行。在一些實(shí)施方案中,第三層可負(fù)責(zé)提供結(jié)果的事務(wù)性和一致性。例如,該層可配置成強(qiáng)制執(zhí)行所謂的ACID特性中的一些,具體來說,所述ACID特性即為目標(biāo)在于數(shù)據(jù)庫的事務(wù)的原子性、維持?jǐn)?shù)據(jù)庫內(nèi)的一致性并且確保目標(biāo)在于數(shù)據(jù)庫的事務(wù)之間的隔離性。在一些實(shí)施方案中,隨后,第四層可負(fù)責(zé)在存在各種類型故障情況下提供所存儲(chǔ)的數(shù)據(jù)的持久性。例如,該層可以負(fù)責(zé)改變記錄、從數(shù)據(jù)庫崩潰恢復(fù)、管理對(duì)下層存儲(chǔ)卷的訪問和/或下層存儲(chǔ)卷中的空間管理。
[0030]應(yīng)當(dāng)注意,圖1至圖5中示出且描述的存儲(chǔ)服務(wù)僅為實(shí)例。耦接至數(shù)據(jù)庫引擎和讀出副本的其他存儲(chǔ)服務(wù)還可用于各實(shí)施方案。
[0031]圖1是示出根據(jù)一個(gè)實(shí)施方案的數(shù)據(jù)庫軟件堆棧的各種組件的框圖。如這個(gè)實(shí)例中所示,數(shù)據(jù)庫實(shí)例可包括多個(gè)功能組件(或?qū)?,每個(gè)功能組件提供數(shù)據(jù)庫實(shí)例的功能的一部分。在這個(gè)實(shí)例中,數(shù)據(jù)庫實(shí)例100包括查詢解析和查詢優(yōu)化層(示為110)、查詢執(zhí)行層(示為120)、事務(wù)性和一致性管理層(示為130)以及持久性和空間管理層(示為140)。如上指出,在一些現(xiàn)有的數(shù)據(jù)庫系統(tǒng)中,擴(kuò)展數(shù)據(jù)庫實(shí)例可涉及將整個(gè)數(shù)據(jù)庫實(shí)例復(fù)制一或多次(包括圖1所示的所有層),并隨后添加膠粘邏輯以將它們縫合在一起。在一些實(shí)施方案中,本文所述系統(tǒng)可替代地將持久性和空間管理層140的功能從數(shù)據(jù)庫層卸下至單獨(dú)的存儲(chǔ)層,并且可將這個(gè)功能分布在存儲(chǔ)層的多個(gè)存儲(chǔ)節(jié)點(diǎn)上。
[0032]在一些實(shí)施方案中,本文所述數(shù)據(jù)庫系統(tǒng)可保持圖1中示出的數(shù)據(jù)庫實(shí)例的上半部分的結(jié)構(gòu)的大部分,但可以將備份、還原、快照、恢復(fù)和/或各種空間管理操作的至少部分的職責(zé)重新分布至存儲(chǔ)層。當(dāng)與先前方法以提供可縮放數(shù)據(jù)庫相比時(shí),以此方式重新分布功能并在數(shù)據(jù)庫層與存儲(chǔ)層之間緊密耦合日志處理可以改進(jìn)性能、增加可提供性并且減少成本。例如,網(wǎng)絡(luò)以及輸入/輸出帶寬要求可被減少,因此重做日志記錄(它們的大小比實(shí)際數(shù)據(jù)頁面要小得多)僅可在節(jié)點(diǎn)上派發(fā)或保存在寫入操作的延遲路徑內(nèi)。另外,數(shù)據(jù)頁面生成可以在每個(gè)存儲(chǔ)節(jié)點(diǎn)上在后臺(tái)中獨(dú)立完成(在前臺(tái)處理允許時(shí)),而不阻止傳入寫入操作。在一些實(shí)施方案中,使用日志結(jié)構(gòu)化的、非重寫的存儲(chǔ)裝置可以例如通過僅使用元數(shù)據(jù)操縱而非數(shù)據(jù)頁面的移動(dòng)或復(fù)制,允許備份、還原、快照、時(shí)間點(diǎn)恢復(fù)以及卷增長(zhǎng)操作更有效地執(zhí)行。在一些實(shí)施方案中,存儲(chǔ)層還可以負(fù)責(zé)使得代表客戶端存儲(chǔ)的數(shù)據(jù)(和/或與該數(shù)據(jù)關(guān)聯(lián)的元數(shù)據(jù),如重做日志記錄)復(fù)制在多個(gè)存儲(chǔ)節(jié)點(diǎn)上。例如,數(shù)據(jù)(和/或元數(shù)據(jù))可被本地復(fù)制(例如,在存儲(chǔ)節(jié)點(diǎn)集合在其自己的物理上不同的獨(dú)立架構(gòu)上執(zhí)行的單個(gè)“可用性區(qū)”內(nèi))和/或復(fù)制在單個(gè)區(qū)域或不同區(qū)域中的可用性區(qū)上。
[0033]在各種實(shí)施方案中,本文所述數(shù)據(jù)庫系統(tǒng)可支持用于各種數(shù)據(jù)庫操作的標(biāo)準(zhǔn)或自定義應(yīng)用編程接口(API)。例如,API可以支持用于創(chuàng)建數(shù)據(jù)庫、創(chuàng)建表、更改表、創(chuàng)建用戶、丟棄用戶、將一個(gè)或多個(gè)行插入表中、復(fù)制值、從表選擇數(shù)據(jù)(例如,對(duì)表進(jìn)行查詢)、取消或異常中止查詢的操作和/或其他操作。
[0034]在一些實(shí)施方案中,數(shù)據(jù)庫實(shí)例的數(shù)據(jù)庫層可包括主要節(jié)點(diǎn)服務(wù)器(在本文中還可稱為數(shù)據(jù)庫引擎頭節(jié)點(diǎn)服務(wù)器),該主要節(jié)點(diǎn)服務(wù)器從各客戶端程序(例如,應(yīng)用)和/或訂戶(用戶)處接收讀出和/或?qū)懭胝?qǐng)求,隨后解析這些請(qǐng)求并且發(fā)展執(zhí)行計(jì)劃以便實(shí)施關(guān)聯(lián)的數(shù)據(jù)庫操作。例如,數(shù)據(jù)庫引擎頭節(jié)點(diǎn)可以發(fā)展獲得復(fù)雜查詢和耦接的結(jié)果所必要的一系列的步驟。在一些實(shí)施方案中,數(shù)據(jù)庫引擎頭節(jié)點(diǎn)可以管理數(shù)據(jù)庫系統(tǒng)的數(shù)據(jù)庫層與客戶端/訂戶之間的通信以及數(shù)據(jù)庫層與單獨(dú)分布式數(shù)據(jù)庫優(yōu)化存儲(chǔ)系統(tǒng)之間的通
?目Ο
[0035]在一些實(shí)施方案中,數(shù)據(jù)庫引擎頭節(jié)點(diǎn)可以負(fù)責(zé)通過JDBC或ODBC接口從終端客戶端處接收SQL請(qǐng)求并且本地執(zhí)行SQL處理和事務(wù)管理(其可包括鎖定)。然而,比起本地生成數(shù)據(jù)頁面,數(shù)據(jù)庫引擎頭節(jié)點(diǎn)(或其各種組件)可以生成重做日志記錄,并且可以將它們派發(fā)至單獨(dú)的分布式存儲(chǔ)系統(tǒng)的適當(dāng)節(jié)點(diǎn)。在一些實(shí)施方案中,用于分布式存儲(chǔ)系統(tǒng)的客戶端側(cè)驅(qū)動(dòng)器可托管在數(shù)據(jù)庫引擎頭節(jié)點(diǎn)上,并且可負(fù)責(zé)將重做日志記錄路由至存儲(chǔ)那些重做日志記錄涉及的片段(或其數(shù)據(jù)頁面)的存儲(chǔ)系統(tǒng)節(jié)點(diǎn)(或多個(gè)節(jié)點(diǎn))。例如,在一些實(shí)施方案中,每個(gè)片段可被鏡像(或以其他方式變得有持久性)在形成保護(hù)組的多個(gè)存儲(chǔ)系統(tǒng)節(jié)點(diǎn)上。在此類實(shí)施方案中,當(dāng)接收到客戶端請(qǐng)求時(shí),客戶端側(cè)驅(qū)動(dòng)器可跟蹤存儲(chǔ)有每個(gè)片段的節(jié)點(diǎn)并且可將重做日志路由至存儲(chǔ)有片段的所有節(jié)點(diǎn)(例如,異步且并行地,基本同時(shí))。一旦客戶端側(cè)驅(qū)動(dòng)器從保護(hù)組的存儲(chǔ)節(jié)點(diǎn)的寫入定額(quorum)接收確認(rèn)(其可指示重做日志記錄已寫入至存儲(chǔ)節(jié)點(diǎn)),其可將所請(qǐng)求改變的確認(rèn)發(fā)送至數(shù)據(jù)庫層(例如,至數(shù)據(jù)庫引擎頭節(jié)點(diǎn))。例如,在數(shù)據(jù)通過使用保護(hù)組而變得持久的實(shí)施方案中,數(shù)據(jù)庫引擎頭節(jié)點(diǎn)無法提交事務(wù),直到并且除非客戶端側(cè)驅(qū)動(dòng)器從足夠存儲(chǔ)節(jié)點(diǎn)實(shí)例接收回復(fù)以便構(gòu)成寫入定額。類似地,對(duì)于涉及特定片段的讀出請(qǐng)求,客戶端側(cè)驅(qū)動(dòng)器可以向存儲(chǔ)有片段的所有節(jié)點(diǎn)路由讀出請(qǐng)求(例如,異步且并行,基本同時(shí))。一旦客戶端側(cè)驅(qū)動(dòng)器從保護(hù)組的存儲(chǔ)節(jié)點(diǎn)的讀出定額接收所請(qǐng)求的數(shù)據(jù),它可將所請(qǐng)求的數(shù)據(jù)返回至數(shù)據(jù)庫層(例如,至數(shù)據(jù)庫引擎頭節(jié)點(diǎn))。
[0036]在一些實(shí)施方案中,數(shù)據(jù)庫層(或者更具體地,數(shù)據(jù)庫引擎頭節(jié)點(diǎn))可以包括暫時(shí)保存最近訪問的數(shù)據(jù)頁面的高速緩存。在此類實(shí)施方案中,如果除了要將對(duì)應(yīng)重做日志記錄派發(fā)至存儲(chǔ)層之外,接收目標(biāo)是這種高速緩存中保存的數(shù)據(jù)頁面的寫入請(qǐng)求,那么該數(shù)據(jù)庫引擎可對(duì)其高速緩存中保存的數(shù)據(jù)頁面的副本應(yīng)用改變。然而,不像其他數(shù)據(jù)庫系統(tǒng)中那樣,這個(gè)高速緩存中保存的數(shù)據(jù)頁面可能無法刷新至存儲(chǔ)層,并且其可隨時(shí)棄用
當(dāng)前第1頁1 2 3 4 5 6 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
无锡市| 平利县| 渝中区| 芮城县| 如东县| 静宁县| 当阳市| 兴隆县| 敦化市| 贵阳市| 二连浩特市| 内乡县| 抚顺市| 湾仔区| 敦化市| 融水| 黎平县| 临高县| 东山县| 达孜县| 邻水| 河曲县| 新巴尔虎左旗| 江阴市| 河津市| 杭锦后旗| 桐庐县| 林甸县| 桂林市| 河南省| 调兵山市| 砚山县| 石家庄市| 新河县| 神木县| 江都市| 尤溪县| 哈尔滨市| 新建县| 伊金霍洛旗| 营口市|