亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

用于數(shù)據(jù)模型中實體的自動維護與修復的系統(tǒng)和方法

文檔序號:6632826閱讀:288來源:國知局
專利名稱:用于數(shù)據(jù)模型中實體的自動維護與修復的系統(tǒng)和方法
技術(shù)領(lǐng)域
本發(fā)明一般涉及文件系統(tǒng)管理,并且尤其涉及確保對于一種數(shù)據(jù)模型的數(shù)據(jù)可靠性和一致性的自動化的文件系統(tǒng)維護與修復。本發(fā)明的各個方面屬于在一種數(shù)據(jù)實體級別上響應(yīng)于并且校正邏輯數(shù)據(jù)誤差,而不丟失其它向下級別(子)數(shù)據(jù)實體。尤其是,本發(fā)明的各個方面特別屬于在一個基于項目(item)的硬件/軟件接口系統(tǒng)中邏輯型數(shù)據(jù)的維護。
背景雖然客戶端數(shù)據(jù)庫平臺(即家庭和商業(yè)臺式計算機)使用一種比服務(wù)器平臺上質(zhì)量低得多的硬件,即使服務(wù)器類別硬件(控制器、驅(qū)動器、磁盤等等)也可以導致“物理”上的數(shù)據(jù)損壞,以至讀出操作不返回數(shù)據(jù)庫應(yīng)用程序?qū)懭霐?shù)據(jù)存儲器中的內(nèi)容。當然,對于各種理由的具有客戶端數(shù)據(jù)庫平臺(相對于服務(wù)器數(shù)據(jù)庫平臺)這顯然是一個更加豐富問題,所述理由包括但不局限于在寫操作當中由于意外的電源斷電(其依次導致?lián)p害的頁面和潛在的數(shù)據(jù)庫損壞)而導致的任意地斷電的客戶端機器增加的可能性,然而對于服務(wù)器數(shù)據(jù)庫系統(tǒng)更加普遍的是利用非中斷電源以緩和斷電問題。媒體衰退是另一個“物理”數(shù)據(jù)損壞的來源,其中物理存儲器媒體超時就會幾乎磨損。然而涉及可靠性的另一個來源是來自“邏輯”損壞的檢測和恢復,其由偶然的(例如程序錯誤)或致命的(例如病毒)的軟件錯誤所引起。
傳統(tǒng)地數(shù)據(jù)庫(以及數(shù)據(jù)庫文件系統(tǒng))的維護與修復已經(jīng)落到數(shù)據(jù)庫管理者等等具有良好開發(fā)技能以及具有數(shù)據(jù)庫系統(tǒng)高深知識者的身上,或者至少落到熟悉并且經(jīng)常使用數(shù)據(jù)庫系統(tǒng)的個人以及相對熟練數(shù)據(jù)庫技術(shù)的許多人身上。另外一個方面,操作系統(tǒng)以及應(yīng)用程序的普通消費者和業(yè)務(wù)最終用戶很少利用數(shù)據(jù)庫,并且對于數(shù)據(jù)庫維護以及修復問題的處理基本上未受過好的培訓。
雖然過去不相干的這兩組之間的技能水平大不相同,然而硬件/軟件接口系統(tǒng)的數(shù)據(jù)庫實施的文件系統(tǒng)創(chuàng)建了一種方案,其中這些較少經(jīng)驗的最終用戶將面對他們基本上不能解決的數(shù)據(jù)庫維護和修復問題。因此一個業(yè)務(wù)/消費者數(shù)據(jù)庫實施的操作系統(tǒng)文件系統(tǒng)、或簡稱“數(shù)據(jù)庫文件系統(tǒng)”(DBFS)必須能夠檢測出損壞并且恢復它的數(shù)據(jù)庫到一種相互影響的一致狀態(tài),在不可恢復的數(shù)據(jù)丟失的情況下,DBFS則必須保證在該級別原子變化單元中的邏輯型數(shù)據(jù)和維護的數(shù)據(jù)的一致性(即,在對于一個基于項目DBFS中的“項目”級別)。此外,對于遲鈍提交模式(lazy commit mode)下所缺省的DBFSs運行,恰好在不正常的關(guān)閉前所提交的事務(wù)持久性是不被保證的并且必須被說明和校正。
此外,雖然業(yè)務(wù)/消費者最終用戶將大大地受益于自動化DBFS的維護和恢復,但是數(shù)據(jù)庫管理者以及那些數(shù)據(jù)庫技能大師同樣受益于解決一般的數(shù)據(jù)庫維護與修復的方案。在本領(lǐng)域?qū)τ跀?shù)據(jù)庫管理員來說使用數(shù)據(jù)庫工具(例如SQLServer 2000提供的數(shù)據(jù)庫協(xié)調(diào)顧問)是常事,但是這些工具不直接處理可靠性,相反而是提供一個管理數(shù)據(jù)庫備份的裝置,并且不以幾乎自動化的方式,而是需要包含實在的數(shù)據(jù)庫管理員,尤其當數(shù)據(jù)庫備份不可靠或出現(xiàn)其它修復問題。因此處理數(shù)據(jù)庫可靠性的自動化解決辦法將同樣有益于數(shù)據(jù)庫管理員及其他熟練的數(shù)據(jù)庫用戶。
DBFS的數(shù)據(jù)可靠性系統(tǒng)(DRS)包括一個主機(framework)以及一組用于自動地執(zhí)行數(shù)據(jù)庫管理(DBA)任務(wù)的策略并且?guī)缀醪簧婕盎虿恢苯由婕白罱K用戶(以及因此基本上對于所述最終用戶是透明的)。對于若干實施例,DRS主機實施用于向DRS插入誤差以及事件報告、策略以及誤差/事件處理算法的機制。尤其是,對于這些實施例DRS是一個負責后臺DBFS維護以及修復的后臺線程,以及因此在高級別上DRS保護并且維護DBFS的總體完好。對于某些實施例,DRS包括對于物理數(shù)據(jù)損壞的以下特征(1)對于所有頁面類型,在一個頁面級別上響應(yīng)并且校正數(shù)據(jù)損壞;以及(2)試圖對于索引頁面損壞(簇和非簇)、數(shù)據(jù)頁面損壞以及日志文件中的頁面損壞的第二級別恢復(重構(gòu)或重新存儲)。因此,對于某些實施例,DRS包括以下功能(i)處理修復/恢復數(shù)據(jù)損壞情況;(ii)改善本系統(tǒng)的可靠性以及有效性;以及(iii)必要時為熟練的第三方保持一個DRS誤差/事件歷史表以調(diào)試數(shù)據(jù)庫或存儲器引擎問題。
雖然實施例可以處理物理數(shù)據(jù)損壞(即校正存儲在物理存儲器媒體上的數(shù)據(jù)庫中的損壞數(shù)據(jù)),但是一個穩(wěn)固的DRS同時將處理實體(例如項目、擴展和/或關(guān)系)的邏輯型數(shù)據(jù)損壞,其一般保存在數(shù)據(jù)存儲器中,以便保證所述數(shù)據(jù)存儲器中所有這些實體都是一致的并且符合數(shù)據(jù)模型規(guī)則。
概述本發(fā)明各種實施例涉及一種DBFS的數(shù)據(jù)可靠性系統(tǒng)(DRS),所述DBFS包括一種保存在一種數(shù)據(jù)庫(物理數(shù)據(jù))中的文件系統(tǒng)(邏輯型數(shù)據(jù))或換言之,包括表示一種文件系統(tǒng)(邏輯型數(shù)據(jù))的數(shù)據(jù)庫(物理數(shù)據(jù))。DRS可以包括一個主機(framework)以及一組用于自動地執(zhí)行數(shù)據(jù)庫管理(DBA)任務(wù)的策略并且?guī)缀醪簧婕盎虿恢苯由婕白罱K用戶(以及因此基本上對于所述最終用戶是透明的)。DRS主機實施用于向DRS插入誤差以及事件報告、策略以及誤差/事件處理算法的機制。尤其是,對于這些實施例DRS是一個負責后臺DBFS維護以及修復的后臺線程,以及因此在高級別上DRS保護并且維護DBFS的總體完好。
對于本發(fā)明各種實施例,DRS包括以下特征·物理數(shù)據(jù)校正對于所有頁面類型,在頁面級別上響應(yīng)并且校正物理數(shù)據(jù)損壞,其中可以包括試圖改造或修復索引頁面損壞(簇和非簇)、數(shù)據(jù)頁面損壞以及日志文件中的頁面損壞的操作。
·邏輯數(shù)據(jù)校正在一個基于項目的操作系統(tǒng)中響應(yīng)以及校正“實體”的邏輯型數(shù)據(jù)損壞,例如項目、擴展和/或關(guān)系(一個基于項目的操作系統(tǒng)是一個基于項目的硬件/軟件接口系統(tǒng)的一個實例)。
對于第二個核心,本發(fā)明的幾個實施例特別涉及一種邏輯一致性檢驗器(LCC),其分析以及校正典型地保存在數(shù)據(jù)存儲器中的實體(例如項目、擴展和/或關(guān)系)的邏輯“損壞”,以便保證所述數(shù)據(jù)存儲器中的所有這些實體都是一致的并且符合數(shù)據(jù)模型規(guī)則。對于某些實施例LCC可以是自治的,而對于其它實施例它也可以耦合到一個物理一致性檢驗器(PCC),其用于檢測并且校正物理數(shù)據(jù)損壞,和/或?qū)τ诹硗馄渌鼘嵤├齃CC可以包含DRS的一個組件。
附圖簡述當結(jié)合附圖來閱讀時,更能理解上述概述以及以下優(yōu)選實施例的詳細說明。為了說明本發(fā)明,附圖示出本發(fā)明示例性設(shè)計;然而本發(fā)明不局限于公開的這些具體方法和工具。在這些附圖中附

圖1是表示本發(fā)明的一些方面可以被包括在其中的一個計算機系統(tǒng)的方框圖;附圖2是說明表示本發(fā)明若干實施例的數(shù)據(jù)庫文件系統(tǒng)(DBFS)中的數(shù)據(jù)可靠性系統(tǒng)(DRS)的結(jié)構(gòu)的框圖;附圖3是說明對于本發(fā)明某些實施例,邏輯上確定損壞實體的方法的處理流程圖;附圖4是一個處理流程圖,其說明對于本發(fā)明某些實施例的用于解決實體中的邏輯錯誤的LCC的三股(three-prong)方法。
附圖5A和5B是說明對于本發(fā)明某些實施例的涉及項目實體的替換方法的方框圖;以及附圖6A和6B是說明對于本發(fā)明某些實施例的涉及關(guān)系實體的替換方法的方框圖。
詳細說明本主題以滿足法定要求的特性加以描述。然而,說明書本身不想限制本專利的范圍。更確切的說,發(fā)明人已經(jīng)想到所要求的主題可以以其它的方式來實施,即,通過包括和本文的描述相似的不同的步驟或步驟的組合,或結(jié)合其它現(xiàn)有的或者將來的技術(shù)。此外,盡管術(shù)語“步驟”這里可以用來暗示所使用的方法的不同單元,但是該術(shù)語不應(yīng)該被解釋為暗示這里公開的各個步驟當中或之間任意的具體的順序,除非以及除了當明確地描述單個步驟的順序的時候。
上述概述提供本發(fā)明特征的一個概述。本發(fā)明一個實施例的詳細說明如下。對于如下所述各個實施例,本發(fā)明的特征被描述為單獨在MICROSOFT SQLSERVER數(shù)據(jù)庫系統(tǒng)(有時相當于這里簡寫的“SQL”)中實施或結(jié)合入下一代個人電腦操作系統(tǒng)(通常稱為“Windows Longhom”或簡稱“Longhom”)的MICROSOFT WinFS文件系統(tǒng)。如上所述,SQL SERVER包括MICROSOFT.NET公共語言運行時間(CLR)以允許管理的代碼寫入并且執(zhí)行以在SQL SERVER數(shù)據(jù)庫的數(shù)據(jù)存儲器上操作。雖然如下所述實施例在這種環(huán)境中操作,可以理解的是本發(fā)明并不局限于SQL SERVER產(chǎn)品的實施。相反地,本發(fā)明可以以支持執(zhí)行面向?qū)ο蟮木幊檀a以在數(shù)據(jù)庫存儲器上操作的任何數(shù)據(jù)庫系統(tǒng)來實施,諸如面向?qū)ο蟮臄?shù)據(jù)庫系統(tǒng)以及具有目標關(guān)系擴展的關(guān)系數(shù)據(jù)庫系統(tǒng)。因此,很清楚本發(fā)明不局限于如下所述具體的實施例,而是試圖覆蓋如附加權(quán)利要求定義的本發(fā)明的精神以及范圍內(nèi)所有的修改。
計算機環(huán)境本發(fā)明的大量實施例可以在一個計算機上執(zhí)行。附圖1及以下的討論用來提供一個本發(fā)明可以實施的一個合適的計算環(huán)境的簡短的一般說明。盡管不需要,但是本發(fā)明可以在計算機可執(zhí)行指令的一般環(huán)境中描述,諸如通過一個計算機執(zhí)行的程序模塊,所述計算機例如一個客戶工作站或一個服務(wù)器。一般地程序模塊包括執(zhí)行具體的任務(wù)或?qū)嵤┚唧w的抽象數(shù)據(jù)類型的例程、程序、目標、組件、數(shù)據(jù)結(jié)構(gòu)等等。此外,本領(lǐng)域的技術(shù)人員將會理解本發(fā)明可以由其他的計算機系統(tǒng)配置來實施,包括手持裝置、多處理器系統(tǒng)、基于微處理器或者可編程的消費者電子設(shè)備、網(wǎng)絡(luò)PC、小型計算機、大型計算機等等。本發(fā)明還可以在分布式計算環(huán)境中實施,其中所述任務(wù)由通過通信網(wǎng)絡(luò)連接的遠程處理裝置執(zhí)行。在一個分布計算環(huán)境中,程序模塊可以位于本地以及遠程存儲器存儲設(shè)備上。
如附圖1所示,一個示例性通用計算機系統(tǒng)包括一個傳統(tǒng)的個人電腦20等等,包括處理裝置21、系統(tǒng)存儲器22以及系統(tǒng)總線23,所述系統(tǒng)總線23用于將包括系統(tǒng)存儲器的各個系統(tǒng)組成部分耦合到處理部件21。系統(tǒng)總線23可以是任何幾種類型的總線結(jié)構(gòu),包括存儲器總線或存儲控制器、外圍總線以及使用任何總線體系結(jié)構(gòu)的本地總線。系統(tǒng)存儲器包括只讀存儲器(ROM)24以及隨機存取存儲器(RAM)25。基本輸入/輸出系統(tǒng)26(BIOS)保存在ROM 24中,其包括有助于在個人電腦20的組件之間傳遞信息的基本例程,例如在啟動期間。個人電腦20更進一步的包括用于從/向一個未示出的硬盤讀取以及寫入的硬盤驅(qū)動器27、用于從/向一個可移動的磁盤29讀取/寫入的磁盤驅(qū)動器28,以及用于從/向一個可移動的光盤31例如CD ROM或其它光學介質(zhì)讀取/寫入的光盤驅(qū)動器30。硬盤驅(qū)動器27、磁盤驅(qū)動器28以及光盤驅(qū)動器30分別通過一個硬盤驅(qū)動器接口32、磁盤驅(qū)動器接口33以及一個光驅(qū)接口34連接到系統(tǒng)總線23。驅(qū)動器以及它們相關(guān)的計算機可讀取媒體提供計算機可讀指令、數(shù)據(jù)結(jié)構(gòu)、程序模塊及其它個人電腦20的數(shù)據(jù)的非易失性存儲器。盡管這里描述的示例性環(huán)境使用了一個硬盤、一個可移動的磁盤29以及一個可移除的光盤31,本領(lǐng)域的技術(shù)人員應(yīng)該理解本示例性操作環(huán)境中還可以使用由一個計算機訪問、可以存儲數(shù)據(jù)的其他的類型的計算機可讀媒體,例如磁帶盒、快擦寫存儲卡、數(shù)字視頻磁盤、Bemoulli盒式磁盤[帶]、隨機存取存儲器(RAMs)、只讀存儲器(ROMs)等等。
大量程序模塊可以存儲在硬盤、磁盤29、光盤31、ROM24或RAM25上,包括操作系統(tǒng)35、一或多個應(yīng)用程序36、其它程序模塊37以及程序數(shù)據(jù)38。用戶可以通過輸入裝置例如鍵盤40以及指示器42向個人電腦20鍵入命令以及信息。其它的輸入裝置(未顯示)可以包括麥克風、操縱桿、游戲襯墊、衛(wèi)星磁盤、掃描儀等等。這些及其它輸入裝置經(jīng)常通過耦合到系統(tǒng)總線的串行端口接口46連接到處理部件21,但是還可以通過其它接口連接,例如并行端口、游戲端口或通用串行總線(USB)。監(jiān)視器47或其它類型顯示設(shè)備同樣經(jīng)過一個接口連接到系統(tǒng)總線23,所述接口例如一個視頻適配器48。除了監(jiān)視器47,個人電腦一般包括其它外圍輸出設(shè)備(未顯示),例如揚聲器以及打印機。附圖1的示例性系統(tǒng)同樣包括一個主機適配器55、小型計算機系統(tǒng)接口(SCSI)總線56以及一個連接到SCSI總線56的外部存儲器裝置62。
個人計算機20可以通過使用與一個或多個遠程計算機(例如一個遠程計算機49)的邏輯連接而在運行在一個網(wǎng)絡(luò)環(huán)境中。遠程計算機49可以是另一個個人計算機、一個服務(wù)器、一個路由器、一個網(wǎng)絡(luò)PC、一個節(jié)點裝置或其它公用網(wǎng)絡(luò)節(jié)點,并且一般地包括相對于個人計算機20的如上所述的許多或所有的元件,盡管在附圖1中僅僅示出了一個存儲裝置裝置50。附圖1示出的邏輯連接包括一個局域網(wǎng)(LAN)51和一個廣域網(wǎng)(WAN)52。這種網(wǎng)絡(luò)環(huán)境在辦公室、企業(yè)的廣域計算機網(wǎng)絡(luò)、內(nèi)部網(wǎng)以及互聯(lián)網(wǎng)中是常見的。
當用于一個局域網(wǎng)網(wǎng)絡(luò)環(huán)境中,個人計算機20通過網(wǎng)絡(luò)接口或適配器53連接到局域網(wǎng)51。當用于一個WAN網(wǎng)絡(luò)環(huán)境中,個人計算機20一般地包括一個調(diào)制解調(diào)器54或用于通過廣域網(wǎng)52例如互聯(lián)網(wǎng)建立通信的其它裝置。調(diào)制解調(diào)器54可以是內(nèi)部或者外部的,經(jīng)過串行端口接口46連接到系統(tǒng)總線23。在一個網(wǎng)絡(luò)環(huán)境中,相對于個人計算機20示出的程序模塊或其中部分可以保存在遠程存儲器存儲裝置中??梢岳斫獾氖秋@示的網(wǎng)絡(luò)連接是示例性的,還可以使用建立計算機間通信連接的其它裝置。
雖然可以想象本發(fā)明的大量實施例尤其適合于計算機化的系統(tǒng),但是本文獻不想用本發(fā)明來限制這些實施例。相反地,這里使用的術(shù)語“計算機系統(tǒng)”試圖包括能夠存儲和處理信息和/或能夠使用存儲信息以控制裝置本身的性能或運行的任何以及所有的裝置,而不管這種裝置本質(zhì)上是電子的、機械的、邏輯的或虛擬的。
數(shù)據(jù)可靠性系統(tǒng)(DRS)的概述對于本發(fā)明的若干實施例,數(shù)據(jù)可靠性系統(tǒng)(DRS)是一個在后臺維護以及修復數(shù)據(jù)庫的線程,并且從而保護數(shù)據(jù)庫文件系統(tǒng)(DBFS)的全面完好。附圖2是一個說明DBFS中DRS結(jié)構(gòu)的方框圖。在該附圖中,向大量應(yīng)用程序212、214以及216提供操作系統(tǒng)級服務(wù)的操作系統(tǒng)202包括連接到持久數(shù)據(jù)存儲器232的DBFS 222。操作系統(tǒng)202進一步包括一個DRS 242,每當例如發(fā)現(xiàn)來自持久數(shù)據(jù)存儲器232中的大量頁面234、236以及238中的頁面誤差240時,其通過DBFS 222請求244,并且DRS 242然后根據(jù)頁面誤差240執(zhí)行修復操作。
本發(fā)明的某些實施例提供DRS是可擴充的以便恢復策略以及檢測機制在DBFS釋放以后可被更新。若干實施例涉及當DBFS數(shù)據(jù)庫保持聯(lián)機時DRS運行修復。然而其它實施例涉及對DBFS存儲器的完全訪問(即sysadmin權(quán)限)。而其它實施例將具有對故障實時地作出檢測和反應(yīng)的能力。
對于若干實施例,對所維護的數(shù)據(jù)而言,DRS修復將在級別變換單元中相互影響(即在基于項目的DBFS的“項目”級別)。對于各個實施例,修復要么完全地恢復一個項目要么取消它的更改(以及因此從不部分地校正錯誤),并且即使在處理過程中途中發(fā)生重新啟動DRS也可以繼續(xù)恢復/復位工作。對于本發(fā)明的若干實施例,DRS將會支持SQL事件以便如果SQL激發(fā)了一個一般的事件,DRS可以截取它并且作出反應(yīng)(包括但不局限于823/824事件)。另外,本發(fā)明的某些實施例涉及數(shù)據(jù)庫引擎,該數(shù)據(jù)庫引擎可被修改以發(fā)送將由DRS特定處理的錯誤條件的DRS-特定事件。
對于本發(fā)明的各個實施例,每當DBFS從磁盤讀取或?qū)懭腠撁鏁r,就會檢測出物理和/或邏輯損壞,而在這種情況下SQL則根據(jù)損壞的類型產(chǎn)生大量誤差中的一個,并且也將會激發(fā)特定的DRS事件以通知它的具體誤差條件,并且DRS將接收那些誤差并且將它們放在一個輸入隊列中以便處理。
對于本發(fā)明的若干實施例,確定一個頁面是否是物理損壞可以通過各種裝置完成,包括但不不局限于(a)檢查對于一個頁面的校驗和并且如果校驗和是無效的,則認為該頁面損壞或(b)通過檢驗日志序號(LSN)來查看它是否超過日志文件的結(jié)尾(其中LSN是一個整數(shù),其隨每次處理遞增,以便如果日志文件中的最后處理是LSN 432并且找到一個具有更大的LSN的頁面那么就可定發(fā)生了一個無序的寫入錯誤)。關(guān)于這一點,存在四個主要類型的頁面損壞可以影響DBFS的操作(除了例如程序錯誤等等的其它原因),而這四個類型包括頁面損壞、媒體衰退、硬件故障以及無序?qū)懭搿.敂?shù)據(jù)的一個頁面沒有被正確的原始寫入就發(fā)生了頁面損壞,并且因此頁面的任何部分可能被損壞,這是因為在寫入期間僅僅一個頁面的一些扇區(qū)在事件故障之前寫入到磁盤,所述故障事件例如電源故障或扇區(qū)寫入錯誤。當一個數(shù)據(jù)頁面位被物理媒介衰退損壞時就會發(fā)生媒體衰退。硬件故障可以以各種理由產(chǎn)生,其涉及總線、控制器或硬盤裝置。至于無序?qū)懭?,這些誤差產(chǎn)生于這樣一個事實,即IDE驅(qū)動器不能保證寫入磁盤的順序,特別是IDE驅(qū)動器具有寫入高速緩存使能(打開),并且因此對數(shù)據(jù)存儲器的寫入可能會無序地發(fā)生。如果發(fā)生部分連續(xù)的無序?qū)懭氲峭ㄟ^電源故障而中斷,例如然后發(fā)生若干誤差,例如在相關(guān)的日志實體被寫入之前數(shù)據(jù)頁面被寫入磁盤。當通過檢測數(shù)據(jù)頁面上的日志序號(LSN)檢測出無序錯誤時,還沒有便利的方式來處理這種對每一個頁面的讀取的缺乏。
邏輯一致性檢驗器本發(fā)明的各種實施例特別地涉及一種邏輯一致性檢驗器(LCC),其分析并且校正實體的邏輯“損害”(例如項目、擴展和/或關(guān)系),所述實體表示保存在數(shù)據(jù)存儲器中以便確保所述數(shù)據(jù)存儲器中的所有實體都是一致的并且符合數(shù)據(jù)模型規(guī)則。對于某些實施例LCC可以是自治的,而對于其它實施例它也可以連接到一個物理一致性檢驗器(PCC),其用于檢測并且校正物理數(shù)據(jù)損壞,和/或?qū)τ诹硗馄渌鼘嵤├齃CC可以包含DRS的一個組件。
對于通過數(shù)據(jù)庫技術(shù)(數(shù)據(jù)庫文件系統(tǒng))而創(chuàng)建的文件系統(tǒng),邏輯一致性和物理一致性是不同并且分開的,在這種意義上來說后者(物理一致性)指的是數(shù)據(jù)庫結(jié)構(gòu)本身以及存儲介質(zhì)上數(shù)據(jù)庫的物理存儲,然而前者(邏輯一致性)指的是由在所述數(shù)據(jù)庫中存儲的數(shù)據(jù)表示的邏輯型數(shù)據(jù)模式并且表示硬件/軟件接口系統(tǒng)的文件系統(tǒng)。
盡管在某些觀點上(如這里以下所討論的)物理一致性與邏輯一致性是有關(guān)的,本發(fā)明的某些實施例主要地涉及確保邏輯一致性。當然,導致物理不一致性的物理損壞(例如磁盤扇區(qū)損壞,所述磁盤扇區(qū)包括所述數(shù)據(jù)庫結(jié)構(gòu)的一部分)同時可能導致邏輯一致性的破壞(例如,對于存儲在所述壞的磁盤扇區(qū)中的所述數(shù)據(jù)庫中的實體的數(shù)據(jù)丟失),然而并非所有邏輯損害一定表示物理損壞(例如由一個軟件錯誤引起的邏輯錯誤違反了數(shù)據(jù)模型規(guī)則)。因此,邏輯不一致性可以分成兩種類型(i)由于物理損壞的邏輯不一致性,以及(ii)由于至少一個數(shù)據(jù)模型規(guī)則的破壞而引起的邏輯不一致性(例如,所有實體屬性值必須在一個規(guī)則特定范圍之內(nèi),一個實體必須具有所有的組成的部分,以及項目必須具有至少一個保留的關(guān)系等等)。
一般說來,“修復”一個邏輯錯誤本質(zhì)上次于“恢復”其中有錯誤發(fā)生的數(shù)據(jù),因為數(shù)據(jù)的備份可能是一個破壞或丟失的數(shù)據(jù)的很好的復制(或可用于重新產(chǎn)生一個很好的復制)。因此,恢復技術(shù)優(yōu)于修復技術(shù)。
對于本發(fā)明的若干實施例,可以使用附圖3所示的方法來確定頁面上任何實體是否存在邏輯損壞。對于這種方法,步驟302 LCC檢查數(shù)據(jù)庫表存在于DBFS的實體的參照完整性(“實體外部”)然后,在步驟304 LCC檢查每個實體的結(jié)構(gòu)完整性(該“實體內(nèi)部”,例如約束條件與關(guān)系)以確保不違背數(shù)據(jù)模型規(guī)則。(對于某些實施例,LCC檢查該數(shù)據(jù)庫中的每個實體。)在步驟306,對于某些實施例LCC可以同時檢查周期數(shù)(例如,其中實體A具有對實體B的一個占有關(guān)系以及實體B具有對實體A的一個占有關(guān)系)。在完成上述檢查以后,在步驟308 LCC然后解決識別的邏輯不一致性。
對于本發(fā)明的若干實施例,LCC使用如附圖4示出的三股方法解決邏輯錯誤。首先,在步驟402,LCC試圖使用頁面以及事務(wù)記錄的最近快照(snapshot)執(zhí)行一個頁面級別恢復(PLR),以完美地修復具有錯誤的頁面。然而,如果PLR在步驟404不可能或不能改正錯誤,LCC然后在步驟406試圖通過首先確定該具體的損害的實體進行實體級別恢復(ELR),然后修復那些來自另一個原因的實體(例如備份或同步的復制品)。如果在步驟408PLR以及ELR都不可能或不能校正錯誤,那么在步驟410 LCC將會用一個偽實體(DE)替換存儲器中損害的實體,以便保證如以下論述的文件系統(tǒng)存儲器的一致性視圖。
通過用DE替換損壞的實體,LCC保證所述損壞實體的消除不破壞所述損壞實體的子實體,就是說LCC防止了從損壞實體到它的從屬的向下級別損壞。為了達到這個,DE主要替換損壞的實體但是盡可能保持來自損壞實體的盡可能多的信息。如果損壞實體是一個項目,例如替換DE將會保持同樣多的屬性數(shù)據(jù),以及其它項目的所有關(guān)系。另一方面,如果損壞實體是一個關(guān)系,替換DE將會繼續(xù)連接它一起從屬的項目。同時該損壞實體移到(對于項目)或注冊在(對于關(guān)系)一個壞的項目文件夾(BIF)。當該損壞實體是一個項目,該BIF將會和該損壞實體具有一種關(guān)系(例如一個保持關(guān)系)。
附圖5A和5B是用于說明關(guān)于本發(fā)明某些實施例的項目的替換方法的方框圖。在附圖5A中,其示出一組項目與關(guān)系,I1是一個父項目,I2是一個經(jīng)過關(guān)系R12的I1的子項目,I3是一個經(jīng)過關(guān)系I23的I2的子項目,而I4和I5分別是經(jīng)過關(guān)系R34以及R35的I3的子項目。在這個實施例中,項目I2例如被一個錯誤的應(yīng)用程序所破壞,結(jié)果項目I2現(xiàn)在違反數(shù)據(jù)模型規(guī)則。在附圖5B,識別出I2為破壞項目的LCC首先創(chuàng)建DE 12′,并且在DE 12′和它的父I1間建立第一關(guān)系R12′以及在DE 12′和它的子I3間建立第二關(guān)系R23′。對于某些實施例,DE給出和損壞項目相同的項目識別號(ItemID)。損壞項目I2然后移到BIF中以及具有BIF項目和損壞項目I2間的保持關(guān)系Rh。
對于某些實施例,新的關(guān)系R12′以及R23′事實上可以是原始關(guān)系R12以及R23,其更新為與I2′代替I2有關(guān)。對于其它實施例,R12′以及R23′可以完全是新的關(guān)系并且,對于某些這種實施例,R12和R23可以保持為具有在BIF中損壞項目I2的懸擺關(guān)系(dangling relationships)。無論如何,DE有效地為數(shù)據(jù)集保存父/子結(jié)構(gòu)并且從而防止I2的錯誤級聯(lián)I3、I4和I5中的錯誤,否則其不能從I1得到。
附圖6A和6B是用于說明對于本發(fā)明某些實施例的關(guān)系的替換方法的方框圖。在附圖6A中,其說明部分組的項目與關(guān)系,I1是一個父項目,而I2是經(jīng)過關(guān)系R12的I1的一個子項目。在這個實施例中,關(guān)系R12例如通過病毒破壞,結(jié)果導致關(guān)系R12具有一屬性值,例如一安全屬性值,超出數(shù)據(jù)模型中一些預(yù)先決定的允許范圍。在附圖6B中,將R12識別為破壞關(guān)系的LCC首先創(chuàng)建I2和它的父I1間的DE R12′,并且淘汰破壞的關(guān)系R12(由于關(guān)系不能單獨存在該BIF中而不移到該BIF中),而擁有關(guān)系R12的項目I1存入該BIF中(BIF為此目的而具有專門的日志且在這里示出,例如作為日志項目)。
對于同步,而為了避免從伙伴到伙伴的錯誤地同步的破壞實體的可能性(從而擴展該損壞),本發(fā)明的某些實施例通過利用特定的“非授權(quán)”標記來標記(例如,一個單獨的位)DE從而劃分識別的和/或破壞的損壞,其有效地通知具有這個實體很好的復制的任何同步的復制品以改寫這個實體(在這一點上非授權(quán)位被清除)。同樣,如果DE隨后被修改(例如通過一個最終用戶),某些實施例也將會將DE標記為“非授權(quán)而且修改”以保證在修改的DE和復制品上原始項目的很好的復制間使用沖突解決方法,并且該非授權(quán)并且修改標記在沖突已經(jīng)解決時移除。
附加的功能·如這里描述的,項目擴展認為是自己項目的部分,并且因此任何擴展損壞都被認為項目損壞。然而,在某些備選方案實施例中,擴展可以當做和他們自己的項目是不同的并且分開的。
·對于本發(fā)明的某些實施例,LCC在實體上運行,其遵循所執(zhí)行的恢復操作以校正物理損壞。
·對于某些實施例,在試圖校正破壞的關(guān)系之前LCC首先試圖修復破壞的項目以避免“假想的”損壞的檢測,如果在依賴于校正的關(guān)系之前項目沒有被校正,則該“假想的”損壞便可能產(chǎn)生。
·對于某些實施例,如果一個BIF并不已存在于該DBFS中,則BIF是由LCC創(chuàng)建的文件夾項目。這個文件夾可以保留DBFS中任何類型的項目(然而對于某些實施例并非關(guān)系),并且該文件夾位于遠離默認數(shù)據(jù)庫存儲器的根目錄(為了易于訪問和定位)。
·對于某些實施例,沒有備用文件的任何項目將被插入該BIF中,同時無對應(yīng)項目的任何文件也將會處于該BIF中。
·對于某些實施例,當損壞項目移到該BIF,該BIF可以同時存儲關(guān)于損壞項目為什么被移到該BIF的信息。
結(jié)論這里描述的各種系統(tǒng)、方法和技術(shù)可以以硬件或軟件或適當?shù)膬烧叩慕Y(jié)合來實施。因此,本發(fā)明的方法和裝置,或某些方面或其中的部分可以采取體現(xiàn)在在有形的媒體里的程序代碼(即指令)的形式,例如軟磁盤、CD-ROM、硬盤或任何其它機器可讀的存儲介質(zhì),其中,當程序代碼載入并且由機器執(zhí)行時,例如計算機,該機器成為一個用于實踐本發(fā)明的裝置。在程序代碼運行在可編程計算機上的情況下,計算機將一般包括處理器、由處理器可讀取的存儲介質(zhì)(包括易失的和非易失性存儲器和/或存儲元件)、至少一個輸入裝置以及至少一個輸出裝置。最好在一個較高級別的過程的或面向?qū)ο缶幊陶Z言中實施一或多個程序以和一個計算機系統(tǒng)進行通信。然而,如果需要,程序可以以匯編或機器語言來實現(xiàn)。在任何情況下,語言可以是編譯的或解釋的語言,以及結(jié)合硬件實現(xiàn)。
本發(fā)明的方法和裝置還可以體現(xiàn)在程序代碼的形式中,所述程序代碼經(jīng)過一些傳輸介質(zhì)傳輸,例如通過電線或電纜,通過光纖或經(jīng)過任何其他的傳輸?shù)男问剑渲?,當接收程序代碼并且載入以及由機器執(zhí)行時,例如一個EPROM、門陣列、可編程邏輯器件(PLD)、客戶端計算機、電視錄象機等等,該機器就成為用于實踐本發(fā)明的裝置。當實施在通用處理機上時,該程序代碼結(jié)合該處理器,以提供一種唯一的裝置,其用來執(zhí)行本發(fā)明的索引功能。
雖然結(jié)合各種附圖的優(yōu)選實施例已經(jīng)描述了本發(fā)明,但是可以理解的是,在不背離其范圍的情況下,可以使用其它相似的實施例,或者可以對描述的實施例做出修改和添加,以用于執(zhí)行和本發(fā)明相同的功能。例如,雖然本發(fā)明的示例性實施例是在仿真?zhèn)€人計算機功能的數(shù)字裝置的環(huán)境中描述的,但是本領(lǐng)域的技術(shù)人員應(yīng)該認識到本發(fā)明不局限于這種數(shù)字裝置,如上所述本發(fā)明的應(yīng)用程序可以適用于許多現(xiàn)有的或者涌現(xiàn)的計算裝置或環(huán)境,例如一種游戲控制臺、手持式計算機、便攜式計算機等等。無論有線或者無線,并且可以應(yīng)用于經(jīng)過通信網(wǎng)絡(luò)連接并和該網(wǎng)絡(luò)相互作用的許多這種計算裝置。此外,需要強調(diào)的是各種計算機平臺,這里想到了包括手持裝置操作系統(tǒng)及其他應(yīng)用程序特定硬件/軟件接口系統(tǒng),尤其是繼續(xù)激增的大量無線網(wǎng)絡(luò)裝置。因此,本發(fā)明不應(yīng)該限于任何單一的實施例,而是根據(jù)附加權(quán)利要求的寬度和范圍來解釋。
權(quán)利要求
1.一種用于數(shù)據(jù)庫文件系統(tǒng)(DBFS)的邏輯一致性檢驗器(LCC),所述LCC包括至少一個系統(tǒng)用于檢驗對應(yīng)于所述DBFS的數(shù)據(jù)庫中的一組表格的參照完整性的至少一個邏輯不一致性;以及檢驗所述DBFS表示的一組實體的結(jié)構(gòu)完整性的至少一個邏輯不一致性。
2.權(quán)利要求1的系統(tǒng),進一步包括至少一個子系統(tǒng),用于檢驗組成邏輯不一致性的至少一個周期。
3.權(quán)利要求1的系統(tǒng),進一步包括至少一個子系統(tǒng),用于解決至少一個邏輯不一致性。
4.權(quán)利要求3的系統(tǒng),其中用于解決至少一個邏輯不一致性的所述至少一個子系統(tǒng)試圖從以下解決辦法的組中選擇至少一個解決辦法頁面級別恢復、實體級別恢復以及用偽實體替換損壞實體。
5.權(quán)利要求4的系統(tǒng),其中用于解決至少一個邏輯不一致性的所述至少一個子系統(tǒng)首先試圖進行頁面級別恢復以及,如果沒有成功,然后試圖進行實體級別恢復以及,如果沒有成功,然后用一種偽實體替換對應(yīng)于所述至少一個邏輯不一致性的至少一個損壞實體。
6.權(quán)利要求4的系統(tǒng),其中如果所述實體是一個項目,所述用一種偽實體替換損壞實體的解決辦法包括創(chuàng)建所述偽實體并且用所述偽實體重定向?qū)儆谒鰮p壞實體的至少一個關(guān)系;以及將所述損壞實體移到一個壞的項目文件夾。
7.權(quán)利要求4的系統(tǒng),其中如果所述實體是一種關(guān)系,所述用一種偽實體替換損壞實體的解決辦法包括創(chuàng)建所述偽實體作為對應(yīng)于損壞項目關(guān)系的關(guān)系;并且將所述損壞實體存入一個壞的項目文件夾。
8.一種用于數(shù)據(jù)庫文件系統(tǒng)(DBFS)的自動化數(shù)據(jù)可靠性系統(tǒng)(DRS),所述DRS包括一組用于執(zhí)行數(shù)據(jù)庫管理(DBA)任務(wù)的策略;一種用于在一種頁面級別上解決一組物理數(shù)據(jù)損壞的子系統(tǒng);以及一種用于在一個實體級別上解決一組邏輯型數(shù)據(jù)損壞的子系統(tǒng)。
9.權(quán)利要求8的系統(tǒng),其中所述DBFS是一種基于項目的硬件/軟件接口系統(tǒng)的組件。
10.權(quán)利要求8的系統(tǒng),進一步包括一個接口,用于從以下功能組中添加、刪除并且修改至少一個功能錯誤以及事件報告、策略、以及誤差/事件處理算法。
11.權(quán)利要求8的系統(tǒng),其中所述DRS作為一種后臺線程進行操作。
12.權(quán)利要求8的系統(tǒng),其中當執(zhí)行用于在一個頁面級別上解決一組物理數(shù)據(jù)損壞的所述子系統(tǒng)之后,執(zhí)行用于一個實體級別上解決一組邏輯型數(shù)據(jù)損壞的所述子系統(tǒng)。
13.權(quán)利要求8的系統(tǒng),其中用于在一個實體級別上解決一組邏輯型數(shù)據(jù)損壞的子系統(tǒng)在試圖校正對應(yīng)于所述破壞項目的破壞關(guān)系之前試圖修復一種破壞項目。
14.一種用于處理實體級別上邏輯不一致性的一種數(shù)據(jù)庫文件系統(tǒng)(DBFS)的一種邏輯一致性檢驗器(LCC)的方法,所述方法包括檢驗對應(yīng)于所述DBFS的數(shù)據(jù)庫中的一組表格的參照完整性的至少一個邏輯不一致性;以及檢查所述DBFS表示的一組實體的結(jié)構(gòu)完整性的至少一個邏輯不一致性。
15.權(quán)利要求14的方法,進一步包括檢驗組成一種邏輯不一致性的至少一個周期。
16.權(quán)利要求14的方法,進一步包括解決至少一個邏輯不一致性。
17.權(quán)利要求16的方法,其中所述解決至少一個邏輯不一致性的要素包括試圖從以下解決辦法的組中選擇一個解決辦法頁面級別恢復、實體級別恢復以及用偽實體替換損壞實體。
18.權(quán)利要求17的方法,其中所述解決至少一個邏輯不一致性的要素包括試圖頁面級別恢復;如果所述試圖頁面級別恢復沒有成功,則試圖實體級別恢復;以及如果所述試圖實體級別恢復沒有成功,則用一種偽實體替換對應(yīng)于所述至少一個邏輯不一致性的至少一個損壞的實體。
19.權(quán)利要求17的方法,其中如果所述實體是一個項目,所述用一種偽實體替換損壞實體的解決辦法進一步包括創(chuàng)建所述偽實體并且用所述偽實體重定向?qū)儆谒鰮p壞實體的至少一個關(guān)系;以及將所述損壞實體移動到一個壞的項目文件夾。
20.權(quán)利要求17的方法,其中如果所述損壞實體是一種關(guān)系,所述用一種偽實體替換損壞實體的解決辦法包括創(chuàng)建所述偽實體作為對應(yīng)于損壞項目關(guān)系的關(guān)系;并且將所述損壞實體存入一個壞的項目文件夾。
21.一種用于處理實體級別上邏輯不一致性的一種數(shù)據(jù)庫文件系統(tǒng)(DBFS)的一種自動化數(shù)據(jù)可靠性系統(tǒng)(DRS)的方法,所述方法包括使用一組用于執(zhí)行數(shù)據(jù)庫管理(DBA)任務(wù)的策略;在一種頁面級別上解決一組物理數(shù)據(jù)損壞;以及在一個實體級別上解決一組邏輯型數(shù)據(jù)損壞。
22.權(quán)利要求21的方法,其中所述DBFS是一種基于項目的硬件/軟件接口系統(tǒng)的組件。
23.權(quán)利要求21的方法,進一步包括一個接口,用于從以下功能的組中添加、刪除并且修改至少一個功能錯誤以及事件報告、策略、以及誤差/事件處理算法。
24.權(quán)利要求21的方法,其中所述DRS作為一種后臺線程進行操作。
25.權(quán)利要求21的方法,其中當執(zhí)行用于在一個頁面級別上解決一組物理數(shù)據(jù)損壞的所述子系統(tǒng)之后,執(zhí)行用于一個實體級別上解決一組邏輯型數(shù)據(jù)損壞的所述要素。
26.權(quán)利要求21的方法,其中在一個實體級別上解決一組邏輯型數(shù)據(jù)損壞的要素包括在試圖校正對應(yīng)于所述破壞項目的破壞關(guān)系之前試圖修復一種破壞的項目。
27.一種計算機可讀取媒體,包括計算機可讀指令,其用于處理實體級別上邏輯不一致性的一種數(shù)據(jù)庫文件系統(tǒng)(DBFS)的一種邏輯一致性檢驗器(LCC),,所述計算機可讀指令包括用于執(zhí)行以下操作的指令檢驗對應(yīng)于所述DBFS的數(shù)據(jù)庫中的一組表格的參照完整性的至少一個邏輯不一致性;以及檢查所述DBFS表示的一組實體的結(jié)構(gòu)完整性的至少一個邏輯不一致性。
28.權(quán)利要求27的計算機讀指令,進一步包括指令用于檢驗組成一種邏輯不一致性的至少一個周期。
29.權(quán)利要求27的計算機可讀指令,進一步包括指令用于解決至少一個邏輯不一致性。
30.權(quán)利要求29的計算機可讀指令進一步包括的指令使所述解決至少一個邏輯不一致性的要素包括試圖從以下解決辦法的組中選擇一個解決辦法頁面級別恢復、實體級別恢復以及用偽實體替換損壞實體。
31.權(quán)利要求30的計算機可讀指令進一步包括的指令使解決至少一個邏輯不一致性的所述要素包括試圖頁面級別恢復;如果所述試圖頁面級別恢復沒有成功,則試圖實體級別恢復;以及如果所述試圖實體級別恢復沒有成功,則用一種偽實體替換對應(yīng)于所述至少一個邏輯不一致性的至少一個損壞的實體。
32.權(quán)利要求30的計算機可讀指令進一步包括的指令使得,如果所述實體是一個項目,則所述用偽實體替換損壞實體進一步包括創(chuàng)建所述偽實體并且用所述偽實體重定向?qū)儆谒鰮p壞實體的至少一個關(guān)系;以及將所述損壞實體移動到一個壞的項目文件夾。
33.權(quán)利要求30的計算機可讀指令進一步包括的指令使得,如果所述實體是一種關(guān)系,則所述用一種偽實體替換損壞實體的解決辦法包括創(chuàng)建所述偽實體作為對應(yīng)于損壞項目關(guān)系的關(guān)系;并且將所述損壞實體存入一個壞的項目文件夾。
34.一種計算機可讀取媒體,包括計算機可讀指令,其用于處理實體級別上邏輯不一致性的一種數(shù)據(jù)庫文件系統(tǒng)(DBFS)的一種自動化數(shù)據(jù)可靠性系統(tǒng)(DRS),所述計算機可讀指令包括用于執(zhí)行以下功能的指令使用一組用于執(zhí)行數(shù)據(jù)庫管理(DBA)任務(wù)的策略;在一種頁面級別上解決一組物理數(shù)據(jù)損壞;以及在一個實體級別上解決一組邏輯型數(shù)據(jù)損壞。
35.權(quán)利要求34的計算機可讀指令進一步包括的指令使所述DBFS是一種基于項目的硬件/軟件接口系統(tǒng)的組件。
36.權(quán)利要求34的計算機可讀指令進一步包括的指令使得,用于從以下功能的組中添加、刪除并且修改至少一個功能錯誤以及事件報告、策略、以及誤差/事件處理算法。
37.權(quán)利要求34的計算機可讀指令進一步包括的指令使所述DRS以一種后臺線程操作。
38.權(quán)利要求34的計算機可讀指令進一步包括的指令使得,當執(zhí)行用于在一個頁面級別上解決一組物理數(shù)據(jù)損壞的所述子系統(tǒng)之后,執(zhí)行用于在一個實體級別上解決一組邏輯型數(shù)據(jù)損壞的所述要素。
39.權(quán)利要求34的計算機可讀指令進一步包括的指令使得,在一個實體級別上解決一組邏輯型數(shù)據(jù)損壞的要素進一步包括在試圖校正一種對應(yīng)于所述破壞項目的破壞關(guān)系之前試圖修復一種破壞項目。
40.一種用于處理實體級別上邏輯不一致性的一種數(shù)據(jù)庫文件系統(tǒng)(DBFS)的一種自動化數(shù)據(jù)可靠性系統(tǒng)(DRS)的硬件控制裝置,所述裝置包括裝置用于利用一組用于執(zhí)行數(shù)據(jù)庫管理(DBA)任務(wù)的策略;在一個頁面級別上解決一組物理數(shù)據(jù)損壞;以及在一個實體級別上解決一組邏輯型數(shù)據(jù)損壞檢驗對應(yīng)于所述DBFS的數(shù)據(jù)庫中的一組表格的參照完整性的至少一個邏輯不一致性;以及檢查所述DBFS表示的一組實體的結(jié)構(gòu)完整性的至少一個邏輯不一致性。
全文摘要
本發(fā)明涉及一種邏輯一致性檢驗器(LCC),其單獨工作或者與一種硬件/軟件接口系統(tǒng)的數(shù)據(jù)庫文件系統(tǒng)的一種物理一致性檢驗器(PCC)和/或一種數(shù)據(jù)可靠性系統(tǒng)(DRS)結(jié)合工作。邏輯型數(shù)據(jù)校正適合于實體的邏輯型數(shù)據(jù)損壞(例如,在一個基于項目的操作系統(tǒng)中的項目、擴展和/或關(guān)系,其中基于項目的操作系統(tǒng)是基于項目的硬件/軟件接口系統(tǒng)的一個實例)。關(guān)于這一點,LCC分析并且校正對于典型地保存在數(shù)據(jù)存儲器中的實體的邏輯損害,以便保證所述數(shù)據(jù)存儲器中的所有這些實體都是一致的并且符合數(shù)據(jù)模型規(guī)則。
文檔編號G06F17/30GK1707481SQ200510087840
公開日2005年12月14日 申請日期2005年5月8日 優(yōu)先權(quán)日2004年5月3日
發(fā)明者A·A·歐克斯, H·R·科達瓦拉, M·J·斯利曼, N·R·艾利斯 申請人:微軟公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1