專利名稱:一種關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)純xml引擎的評(píng)測(cè)方法
一種關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)純XML引擎的評(píng)測(cè)方法
技術(shù)領(lǐng)域:
本發(fā)明屬于數(shù)據(jù)庫(kù)測(cè)試領(lǐng)域,具體涉及一種關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)純XML引擎數(shù)據(jù)庫(kù)的 評(píng)測(cè)方法。
背景技術(shù):
可擴(kuò)展標(biāo)記語(yǔ)言XML (extensible Markup Language)已成為Web上表示和交換數(shù) 據(jù)的標(biāo)準(zhǔn)格式。如何有效管理大規(guī)模XML文檔,已經(jīng)成為當(dāng)前數(shù)據(jù)庫(kù)領(lǐng)域中一個(gè)亟待解決 的研究課題。純 XML 數(shù)據(jù)庫(kù),如 Software AG Tamino、Apache Xindice、Wolfgang Meier eXist等,以XML數(shù)據(jù)模型為中心,具有為XML量身定做的存儲(chǔ)方案和查詢引擎,以一種自 然的方式管理XML數(shù)據(jù)。然而純XML數(shù)據(jù)庫(kù)系統(tǒng)面臨的最大問(wèn)題是,必須重新實(shí)現(xiàn)關(guān)系數(shù) 據(jù)庫(kù)領(lǐng)域已經(jīng)研究和實(shí)踐了三十余年的眾多成熟理論和技術(shù),如存儲(chǔ)管理,事務(wù)管理,鎖管 理,備份與恢復(fù)管理等。如此大規(guī)模的重復(fù)開發(fā)工作會(huì)浪費(fèi)巨大的人力和物力。并且為了 能使XML數(shù)據(jù)庫(kù)具有更加廣闊的應(yīng)用,應(yīng)該和關(guān)系型數(shù)據(jù)庫(kù)進(jìn)行整合,使之同時(shí)支持已有 的關(guān)系型數(shù)據(jù)和新增的XML數(shù)據(jù)的管理。因而,主流數(shù)據(jù)庫(kù)供應(yīng)商如IBM、0racle和Microsoft都在研發(fā)如何將XML引擎技 術(shù)集成到關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)中,使其既體現(xiàn)XML數(shù)據(jù)模型又重用已有系統(tǒng)模塊,目前都 已經(jīng)在最新產(chǎn)品中以不同的方式加入了對(duì)XML的支持,并支持XPath/XQuery語(yǔ)言與SQL/ XML 2003標(biāo)準(zhǔn)。隨著關(guān)系數(shù)據(jù)庫(kù)上XML引擎的開發(fā)和XML需求的增加,擁有獨(dú)立的評(píng)測(cè)方 法來(lái)測(cè)試這些集成在關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)中的XML功能也是一個(gè)必然的趨勢(shì)。所謂基準(zhǔn)測(cè)試,就是指通過(guò)一定的測(cè)試方法和手段對(duì)特定的對(duì)象進(jìn)行測(cè)試,從而 提供其性能參數(shù),來(lái)作為對(duì)其進(jìn)行分析和比較的基準(zhǔn)。傳統(tǒng)關(guān)系數(shù)據(jù)庫(kù)上的評(píng)測(cè)基準(zhǔn)很 多,尤以TPC系列(TPC-C、TPC-W、TPC-H/R)的使用最為廣泛。但它們從底層數(shù)據(jù)基礎(chǔ)到上 層的測(cè)試事務(wù)集全部基于關(guān)系型數(shù)據(jù),很難被定制成XML數(shù)據(jù)庫(kù)上可行的方案。而針對(duì)純 XML數(shù)據(jù)庫(kù)的基準(zhǔn)也已被許多研究機(jī)構(gòu)提出,而它們各有側(cè)重考察的方面,如XMark、X007、 XBench更側(cè)重于通過(guò)大規(guī)模的查詢語(yǔ)句覆蓋盡量多的查詢功能,以檢測(cè)數(shù)據(jù)庫(kù)功能方面的 全面性,并沒(méi)有提出具體的性能指標(biāo)。XMach-1、TPoX著眼于性能測(cè)試,但并沒(méi)有得到大規(guī) 模應(yīng)用的檢測(cè),覆蓋面不夠完善。至今仍未有一種測(cè)試基準(zhǔn)是針對(duì)關(guān)系數(shù)據(jù)庫(kù)上XML引擎 提出的。
發(fā)明內(nèi)容本發(fā)明目的是提供一種關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)純XML引擎的評(píng)測(cè)方法,以正確評(píng)價(jià)關(guān)系 數(shù)據(jù)庫(kù)上XML引擎的效率。為實(shí)現(xiàn)本發(fā)明目的需要著重從以下幾方面考慮1、存儲(chǔ)管理層X(jué)ML數(shù)據(jù)是半結(jié)構(gòu)化的數(shù)據(jù),要做到無(wú)損的存儲(chǔ)XML數(shù)據(jù),就要完 整的存儲(chǔ)其內(nèi)容信息和結(jié)構(gòu)信息到關(guān)系表中。2、索引結(jié)構(gòu)的實(shí)現(xiàn)在關(guān)系數(shù)據(jù)庫(kù)中普遍實(shí)現(xiàn)的經(jīng)典索引結(jié)構(gòu)的基礎(chǔ)上,要求建立各種適當(dāng)?shù)慕Y(jié)構(gòu)索引,使得利用這些索引可以快速地定位到滿足指定結(jié)構(gòu)關(guān)系的節(jié)點(diǎn)。3、查詢優(yōu)化將XML數(shù)據(jù)置于DBMS的環(huán)境中,充分發(fā)揮XML結(jié)構(gòu)摘要索引的作用, 使XML引擎在執(zhí)行器層面上無(wú)縫地集成到關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)中,構(gòu)造最優(yōu)化查詢。4、擴(kuò)展基本SQL語(yǔ)法,提供XML數(shù)據(jù)管理語(yǔ)言要求在關(guān)系查詢引擎的SQL解析器 中實(shí)現(xiàn)SQL 2003標(biāo)準(zhǔn)規(guī)定的SQL/XML擴(kuò)展,且要實(shí)現(xiàn)在SQL語(yǔ)法中XPath/XQuery的內(nèi)嵌 式查詢。5、更新操作與聯(lián)機(jī)事務(wù)處理在傳統(tǒng)關(guān)系數(shù)據(jù)庫(kù)中,由事務(wù)管理器和鎖管理器組 成的并發(fā)控制模塊與數(shù)據(jù)庫(kù)底層存儲(chǔ)進(jìn)行通信,從而保證了多個(gè)事務(wù)同時(shí)更新數(shù)據(jù)時(shí)的邏 輯正確性。要求將概念模型根本不同的XML數(shù)據(jù)更新有機(jī)地融入到關(guān)系數(shù)據(jù)事務(wù)處理的體 系中。本發(fā)明在綜合考慮以上幾點(diǎn)的基礎(chǔ)上,提出了一種關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)純XML引擎的 評(píng)測(cè)方法,該方法包括以下步驟第1、定義文獻(xiàn)管理系統(tǒng)作為測(cè)試場(chǎng)景,并定義了邏輯功能;第2、根據(jù)測(cè)試場(chǎng)景設(shè)計(jì)并生成XML文檔集合作為測(cè)試數(shù)據(jù)集并填充入待測(cè)數(shù)據(jù) 庫(kù);第3、針對(duì)第2步生成的測(cè)試數(shù)據(jù)集定義待測(cè)事務(wù)集,包括查詢事務(wù)集和更新事務(wù) 集;第4、在待測(cè)數(shù)據(jù)庫(kù)上單獨(dú)運(yùn)行第3步定義的事務(wù)作為功能測(cè)試,驗(yàn)證待測(cè)事務(wù)能 否順利完成并統(tǒng)計(jì)功能性指標(biāo),并可以通過(guò)加索引的方式比較索引前后的待測(cè)事務(wù)響應(yīng)來(lái) 測(cè)試索引的效率;第5、設(shè)計(jì)、執(zhí)行并度量三種XML工作負(fù)載更新負(fù)載,查詢負(fù)載,混合負(fù)載,這些工 作負(fù)載是對(duì)第3步中的待測(cè)事務(wù)集選擇性的組合構(gòu)成,每種負(fù)載工作在不同的并發(fā)強(qiáng)度和 不同的數(shù)據(jù)量下,測(cè)試待測(cè)數(shù)據(jù)庫(kù)系統(tǒng)的承受能力,統(tǒng)計(jì)性能性指標(biāo)。本發(fā)明的具體評(píng)測(cè)流程如下1、定義文獻(xiàn)管理系統(tǒng),即測(cè)試場(chǎng)景設(shè)計(jì)本發(fā)明第1步首先定義了一個(gè)完整的文獻(xiàn)管理系統(tǒng)作為測(cè)試場(chǎng)景,定義的數(shù)據(jù) 信息包括用戶信息、用戶賬戶、交費(fèi)歷史、文獻(xiàn)信息和文獻(xiàn)內(nèi)容,定義的操作包括用戶管 理、信息查看、文獻(xiàn)管理、用戶注冊(cè)、用戶交費(fèi)、文獻(xiàn)檢索,這樣生成的XML數(shù)據(jù)集涵蓋以數(shù) 據(jù)為中心的文檔和以文字為中心的文檔,能夠體現(xiàn)XML文檔的特征。測(cè)試場(chǎng)景與具體數(shù)據(jù) 的關(guān)系如圖1所示。2、數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)本發(fā)明第2步所述的測(cè)試數(shù)據(jù)集根據(jù)測(cè)試場(chǎng)景設(shè)計(jì)而來(lái),將實(shí)體包含在5張XML 表中,其中User、Category、Order、Databases四張表是虛擬數(shù)據(jù),其Schema結(jié)構(gòu)包含了權(quán) 利要求2在測(cè)試場(chǎng)景中定義的所有數(shù)據(jù)信息,由XML生成工具生成;而Literature表是實(shí) 際數(shù)據(jù),存放所有實(shí)際的XML文檔。數(shù)據(jù)結(jié)構(gòu)如圖2所示。根據(jù)以上結(jié)構(gòu)產(chǎn)生的XML文檔 兼具有以數(shù)據(jù)為中心和以文檔為中心兩種類型的文檔的特點(diǎn)。如對(duì)Order實(shí)體,其屬性分 布比較規(guī)整,體現(xiàn)了以數(shù)據(jù)為中心的文檔的特點(diǎn),而以文檔為中心的文檔的特點(diǎn)主要通過(guò) Literature實(shí)體體現(xiàn)。因此,這樣的XML文檔集合是典型的、能體現(xiàn)出XML文檔特點(diǎn)的。3、測(cè)試事務(wù)集
本發(fā)明第3步針對(duì)測(cè)試數(shù)據(jù)集,定義了一個(gè)測(cè)試事務(wù)集,包括14條查詢事務(wù) 和5條更新事務(wù),這些事務(wù)的制定是根據(jù)XML Query (XQuery) Requirements、XQuery UpdateFacility 1.0 Requirements標(biāo)準(zhǔn)而來(lái)。具體的事務(wù)如下1)查詢事務(wù)Ql 根據(jù)id查看某用戶(id)的詳細(xì)信息,包括及訂閱的數(shù)據(jù)庫(kù)、分類——集合Q2 查看訂閱某分類(農(nóng)業(yè))的所有用戶——引用Q3:將某一用戶(id)訂閱的數(shù)據(jù)庫(kù)以列舉方式顯示,以固定分隔符分隔—— string函數(shù)Q4:判斷是否存在文獻(xiàn)數(shù)量大于32655062的數(shù)據(jù)庫(kù),是的話返回真——some (存 在量詞)Q5 判斷是否所有數(shù)據(jù)庫(kù)的文獻(xiàn)書目都大于32655062,是則返回真——every (全 稱量詞)Q6 列表顯示所有某一級(jí)的文獻(xiàn)類及直接子類——層次結(jié)構(gòu)Q7 列出所有文獻(xiàn)的第一作者——序列Q8 列表查看order信息,統(tǒng)計(jì)某日(2005-7-22),顯示當(dāng)日order數(shù)量、當(dāng)日總 額、最大額度、最小額度、平均額度Q9 嵌套查詢,查詢所有余額為2981的用戶發(fā)出的新訂單QlO 列表顯示未進(jìn)行任何訂閱的用戶-EMPTY關(guān)鍵字Qll 根據(jù)名稱查看一個(gè)數(shù)據(jù)庫(kù)的詳細(xì)信息Q12 傳入用戶id及日期返回訂單,實(shí)現(xiàn)放入自定義函數(shù)內(nèi)部Q13 統(tǒng)計(jì)各年齡段的用戶數(shù)量Q14 在所有文檔中檢索包含一個(gè)特定關(guān)鍵詞(customer)的文檔并返回2)更新事務(wù)Ul 用戶充值或消費(fèi),根據(jù)用戶id修改其賬戶余額U2 處理訂單,將某訂單中的<new_order>標(biāo)記刪除U3 向某分類中新增子分類U4 用戶訂閱成功,用order中的databases禾Π category替換user中的對(duì)應(yīng)元素U5 用戶訂閱某數(shù)據(jù)庫(kù)中某分類,訂單信息通過(guò)參數(shù)傳入而W3C的Requirements與本發(fā)明所設(shè)計(jì)的事務(wù)功能對(duì)應(yīng)關(guān)系如下表1查詢事務(wù)至Ij Requirements的映射Requirements事務(wù)
Supported OperationsQl Q2
Text and Element BoundariesQ3
Universal and Existential QuantifiersQ4 Q5
Hierarchy and SequenceQ6 Q7
CombinationQl Q2
AggregationQ8
SortingQ8
Composition of OperationsQ9 NULLValuesQlO
Structural PreservationQ6 Q7
Structural TransformationQ3 Q6 Q7
ReferencesQ2 Q6
Identity PreservationQl
Operations on Literal DataQll
Operations on NamesQ3 Q6
Extensibility (FUNCTION)Q12
Environment InformationQ13
Full-Text SearchQ14 表2更新事務(wù)到Requirements的映射
Requirements事務(wù)Locus of modificationsUlDeleteU2InsertU3ReplaceU4Changing valuesUlModifying propertiesU2Conditional updatesU4ValidationSchema驗(yàn)證CompositionalityU4U6ParameterizationU5所有這些事務(wù)以內(nèi)嵌XQuery的SQL語(yǔ)言或者SQL/XML標(biāo)準(zhǔn)編寫,單獨(dú)運(yùn)行并得到 功能性指標(biāo)。4、并發(fā)負(fù)載
本發(fā)明第5步設(shè)計(jì)了三種并發(fā)負(fù)載更新(只寫)、查詢(只讀)、混合(讀-寫) 負(fù)載,每個(gè)并發(fā)用戶連接到數(shù)據(jù)庫(kù)并提交一個(gè)事務(wù),每個(gè)事務(wù)被分配一個(gè)權(quán)重,這個(gè)權(quán)重決 定這個(gè)事務(wù)在工作負(fù)載中的百分比;其中,更新負(fù)載由兩部分構(gòu)成首先插入海量XML文檔至Literature表作為原始數(shù)據(jù), 其中原始數(shù)據(jù)量的大小要根據(jù)待測(cè)數(shù)據(jù)庫(kù)所運(yùn)行的硬件環(huán)境配置,然后分階段調(diào)用5個(gè)更 新事務(wù),從而在檢驗(yàn)鎖的基礎(chǔ)上,檢驗(yàn)更新性能是可伸縮的;只讀負(fù)載由14條查詢事務(wù)組成,它們的權(quán)重相同,使用遞增的并發(fā)用戶數(shù)以不同 的并發(fā)度執(zhí)行;混合負(fù)載由查詢事務(wù)和更新事務(wù)共同組成,其中70%的讀操作,30%的寫操作,寫 操作包括6%的更新操作,12%的文檔刪除操作,12%的插入操作。根據(jù)這樣的負(fù)載運(yùn)行系統(tǒng)并統(tǒng)計(jì)性能性指標(biāo)。5、指標(biāo)體系本發(fā)明第4步和第5步中的指標(biāo)所定義的指標(biāo)體系涵蓋關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)純XML引 擎的存儲(chǔ)、索引、查詢、更新各方面性能,考察數(shù)據(jù)庫(kù)系統(tǒng)對(duì)不同數(shù)據(jù)量和事務(wù)的時(shí)空開銷 和并發(fā)能力,具體包括在存儲(chǔ)能力上考察裝入原始數(shù)據(jù)的時(shí)間開銷和空間開銷,其中原始 數(shù)據(jù)量的大小要根據(jù)待測(cè)數(shù)據(jù)庫(kù)所運(yùn)行的硬件環(huán)境配置;在索引能力上考察建立索引的時(shí) 間開銷和空間開銷,以及在更新過(guò)程中索引維護(hù)的時(shí)間開銷;在查詢能力上考察有無(wú)輔助 索引的響應(yīng)時(shí)間和有無(wú)XML Schema的響應(yīng)時(shí)間;在更新能力上考察有無(wú)索引的響應(yīng)時(shí)間; 在并發(fā)控制上考察事務(wù)回滾率、事務(wù)等待時(shí)間和事務(wù)平均響應(yīng)時(shí)間;以上的指標(biāo)都在不同 的數(shù)據(jù)量和用戶并發(fā)度下進(jìn)行評(píng)測(cè),對(duì)待測(cè)數(shù)據(jù)庫(kù)系統(tǒng)進(jìn)行增量式驗(yàn)證。以上所述指標(biāo)體系具體如下表所示 本發(fā)明的優(yōu)點(diǎn)和積極效果本發(fā)明提出了一種完整的關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)純XML引擎評(píng)測(cè)方法,該方法以W3C標(biāo) 準(zhǔn)為基準(zhǔn),設(shè)計(jì)了測(cè)試場(chǎng)景、測(cè)試數(shù)據(jù)集、測(cè)試查詢集和測(cè)試指標(biāo)集,涵蓋評(píng)測(cè)中的功能測(cè) 試和性能測(cè)試兩大方向。本發(fā)明的方法是在對(duì)關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)上的純XML引擎的特征進(jìn)行 研究的基礎(chǔ)上制定的,使用SQL/XML標(biāo)準(zhǔn)編寫的事務(wù)也更有針對(duì)性,適用于關(guān)系數(shù)據(jù)庫(kù)系 統(tǒng)純XML引擎的評(píng)測(cè)。
圖1為測(cè)試場(chǎng)景示意圖。圖2為數(shù)據(jù)結(jié)構(gòu)示意圖。圖3為關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)純XML引擎評(píng)測(cè)工作流程圖。
具體實(shí)施方式實(shí)施例1圖3給出了本發(fā)明的工作流程,現(xiàn)結(jié)合具體的應(yīng)用實(shí)例來(lái)對(duì)本發(fā)明進(jìn)行詳細(xì)描 述。本實(shí)例中所用到的XML文獻(xiàn)來(lái)自DBLP數(shù)據(jù)庫(kù);UWXMLR印ository ; NiagaraXMLrepository ;中文Web信息檢索論壇(CWIRF);萬(wàn)方RSS ;中文網(wǎng)站RSS。 首先使用自定義的XML Schema創(chuàng)建XML文檔集合,XML文檔集分布在5張XML表 中,表的數(shù)據(jù)結(jié)構(gòu)如圖2所示,其中 User表示登陸文獻(xiàn)檢索系統(tǒng)的用戶,其屬性包括firstname (名hlastname (姓)、birthday (生日)、balance (賬戶余額)、role (職位)、databases (訂閱的數(shù)據(jù)庫(kù))等。Databases描述文獻(xiàn)檢索系統(tǒng)中不同的數(shù)據(jù)庫(kù),其屬性包括name (名稱)、year_ from(開始日期)、year_to (終止日期)、literature_count (庫(kù)中文獻(xiàn)總數(shù))等。Category描述XML文獻(xiàn)的分類情況。它具有多層結(jié)構(gòu),每一層大的分類下面可能 包含多個(gè)小的分類,每層的每個(gè)分類都有自己的name (名稱)屬性。在最深層的Category 下面包含實(shí)際XML文獻(xiàn),對(duì)Literature表作引用。Literature表中是實(shí)際的XML文獻(xiàn)。其屬性包括title (文獻(xiàn)題目)、authors (作 者列表)、keywords (關(guān)鍵字)、content (文獻(xiàn)內(nèi)容)、databasejd (所屬數(shù)據(jù)庫(kù))等。Order表表示了用戶下的訂單,其屬性包括user_id(訂閱用戶)、databases (訂 閱數(shù)據(jù)庫(kù))、categorys (訂閱的分類)、amount (訂單金額)、datetime (訂閱時(shí)間)、new_ order (是否新訂單)等。這里User、Databases、Category和Order四張表表現(xiàn)了在圖1中的用戶信息、文 獻(xiàn)信息和訂單信息,屬于以數(shù)據(jù)為中心的XML范疇,使用Toxgene等XML生成工具生成,每 一個(gè)文檔約在幾百K到IOm之間不等;而Literature表現(xiàn)了圖1中的文獻(xiàn)內(nèi)容,屬于以文 字為中心的XML范疇,使用真實(shí)XML數(shù)據(jù)。將生成的數(shù)據(jù)以一定規(guī)模的原始數(shù)據(jù)量填充入待測(cè)數(shù)據(jù)庫(kù)中,此例中以DB2作為 待測(cè)數(shù)據(jù)庫(kù),選擇用大約IGB的原始XML數(shù)據(jù)填充數(shù)據(jù)庫(kù),其中包括 6 萬(wàn)個(gè) User 30 萬(wàn)個(gè) Orders 20 Databases 2000 個(gè) Category記錄填充這些數(shù)據(jù)的時(shí)間和空間使用情況,為建立好的數(shù)據(jù)庫(kù)做備份。在步驟4中,單獨(dú)運(yùn)行設(shè)計(jì)好的事務(wù)集,測(cè)試關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)純XML引擎的基本功 能,將14條查詢和5條更新事務(wù)用嵌入SQL的XQuery語(yǔ)句來(lái)實(shí)現(xiàn),這些事務(wù)表現(xiàn)了圖1中 的用戶管理、文獻(xiàn)管理、文獻(xiàn)檢索、訂單管理等功能,以這樣的數(shù)據(jù)集和事務(wù)集構(gòu)成的系統(tǒng) 運(yùn)行起來(lái)統(tǒng)計(jì)指標(biāo)集。以U3舉例說(shuō)明update c_categorysset cateinfo = xmlqueryC copy$newinfo: = $CATEINFOmodify do insert<category><name> 新分類 </name><literaturesX/ literaturesX/category)into$newinfo/category/categorysreturn$newinfo')where xmlexistsC $CATEINF0/category [iid = 1]');其中(Sid = 1的數(shù)字在實(shí)際運(yùn)行中將被參數(shù)化為給定范圍中的某一數(shù)值,提交給 數(shù)據(jù)庫(kù),得到返回結(jié)果并記錄每條事務(wù)的運(yùn)行時(shí)間,可多次測(cè)試取平均值。在此基礎(chǔ)上,添加輔助索引,記錄創(chuàng)建索引的時(shí)空消耗,再次單獨(dú)運(yùn)行事務(wù)集,對(duì) 比添加索引前后查詢事務(wù)的效率和更新事務(wù)的維護(hù)效率。以Q2舉例,在添加輔助索引之 前它的單獨(dú)運(yùn)行平均時(shí)間為2. 364s,而添加之后的運(yùn)行平均時(shí)間為1.422s,索引效率為 166%。之后將數(shù)據(jù)庫(kù)恢復(fù)到初始狀態(tài)。
在步驟5中,設(shè)計(jì)并度量三種XML工作負(fù)載更新負(fù)載(只寫),查詢負(fù)載(只 讀),混合負(fù)載(讀寫),這些工作負(fù)載都具有很高的并發(fā)性。在此實(shí)例中,工作負(fù)載由 Loadrunner工具執(zhí)行,這個(gè)測(cè)試工具產(chǎn)生一個(gè)到多個(gè)并發(fā)線程。每個(gè)線程模擬一個(gè)用戶,該 用戶連接到數(shù)據(jù)庫(kù)并提交一個(gè)事務(wù)。每個(gè)事務(wù)被分配一個(gè)權(quán)重,這個(gè)權(quán)重決定這個(gè)事務(wù)在 工作負(fù)載中的百分比。在運(yùn)行時(shí),事務(wù)中的參數(shù)標(biāo)志替換為具體的值,這些值是從可配置的 隨機(jī)值分布和輸入列表中提取的。當(dāng)一個(gè)事務(wù)運(yùn)行完畢退出,會(huì)馬上建立一個(gè)新的用戶,確 保并發(fā)用戶數(shù)目不變。對(duì)于插入工作負(fù)載,首先使50個(gè)并發(fā)用戶插入所有Literature。然后,分階段調(diào) 用5個(gè)更新語(yǔ)句,從而在檢驗(yàn)鎖的基礎(chǔ)上,檢驗(yàn)更新性能是可伸縮的。在每個(gè)階段使用50 150個(gè)并發(fā)用戶,測(cè)試直至插入所有Literature為止,記錄事務(wù)的回滾率為28%、事務(wù)平均 等待時(shí)間1. 276s和事務(wù)平均響應(yīng)時(shí)間是2. 823s。對(duì)于只讀工作負(fù)載,在插入負(fù)載填充數(shù)據(jù)庫(kù)之后,對(duì)數(shù)據(jù)庫(kù)執(zhí)行只讀的工作負(fù)載。 這個(gè)工作負(fù)載由14個(gè)XML查詢組成,使用25、50、75、100、125和150個(gè)并發(fā)用戶以不同的 并發(fā)度執(zhí)行。測(cè)試的時(shí)間長(zhǎng)度是這6種測(cè)試各運(yùn)行一個(gè)小時(shí),觀察系統(tǒng)吞吐量的峰值約為 600,而事務(wù)的平均響應(yīng)時(shí)間為4. 951s。對(duì)于混合工作負(fù)載,與只讀工作負(fù)載相似,混合工作負(fù)載選擇在TO (插入)的同 時(shí),使用U2(刪除)U4(更改)和14個(gè)查詢語(yǔ)句,并使用25、50、75、100、125和150個(gè)并發(fā) 用戶產(chǎn)生不同的并發(fā)度。測(cè)試的時(shí)間長(zhǎng)度是每個(gè)測(cè)試各運(yùn)行一個(gè)小時(shí)。統(tǒng)計(jì)的性能指標(biāo)綜 合了插入工作負(fù)載和只讀工作負(fù)載的指標(biāo)。這里混合工作負(fù)載的權(quán)重比率是70%的讀操作查詢;30%的寫操作6%的更新操作,12%的文檔刪除操作,12% 的插入操作。按照上述步驟做實(shí)驗(yàn),并統(tǒng)計(jì)結(jié)果指標(biāo),記錄事務(wù)的回滾率為35%,系統(tǒng)吞吐量的 峰值約為410,而事務(wù)的平均響應(yīng)時(shí)間為3. 319s。而此次評(píng)測(cè)中最好的吞吐量出現(xiàn)在75個(gè)用戶的并發(fā)狀態(tài)下,此時(shí)CPU的利用率接 近100%,只讀吞吐量達(dá)到591,混合吞吐量達(dá)到408。再增加并發(fā)用戶數(shù),已不能再使系統(tǒng) 得到更好的吞吐量,因?yàn)橄到y(tǒng)已經(jīng)接近極限了。而混合負(fù)載的吞吐量比只讀和只寫的情況 下都小了很多,這是由于讀寫事務(wù)的并發(fā)執(zhí)行會(huì)造成死鎖和回滾,正如預(yù)期的一樣。
權(quán)利要求
一種關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)純XML引擎的評(píng)測(cè)方法,其特征在于該方法包括以下步驟第1、定義文獻(xiàn)管理系統(tǒng)作為測(cè)試場(chǎng)景,并定義了邏輯功能;第2、根據(jù)測(cè)試場(chǎng)景設(shè)計(jì)并生成XML文檔集合作為測(cè)試數(shù)據(jù)集并填充入待測(cè)數(shù)據(jù)庫(kù);第3、針對(duì)第2步生成的測(cè)試數(shù)據(jù)集定義待測(cè)事務(wù)集,包括查詢事務(wù)集和更新事務(wù)集;第4、在待測(cè)數(shù)據(jù)庫(kù)上單獨(dú)運(yùn)行第3步定義的事務(wù)作為功能測(cè)試,驗(yàn)證待測(cè)事務(wù)能否順利完成并統(tǒng)計(jì)功能性指標(biāo),并可以通過(guò)加索引的方式比較索引前后的待測(cè)事務(wù)響應(yīng)來(lái)測(cè)試索引的效率;第5、設(shè)計(jì)、執(zhí)行并度量三種XML工作負(fù)載更新負(fù)載,查詢負(fù)載,混合負(fù)載,這些工作負(fù)載是對(duì)第3步中的待測(cè)事務(wù)集選擇性的組合構(gòu)成,每種負(fù)載工作在不同的并發(fā)強(qiáng)度和不同的數(shù)據(jù)量下,測(cè)試待測(cè)數(shù)據(jù)庫(kù)系統(tǒng)的承受能力,統(tǒng)計(jì)性能性指標(biāo)。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于第1步所述的定義文獻(xiàn)管理系統(tǒng)作為測(cè) 試場(chǎng)景中,定義的數(shù)據(jù)信息包括用戶信息、用戶賬戶、交費(fèi)歷史、文獻(xiàn)信息和文獻(xiàn)內(nèi)容,定 義的操作包括用戶管理、信息查看、文獻(xiàn)管理、用戶注冊(cè)、用戶交費(fèi)、文獻(xiàn)檢索,這樣生成的 XML數(shù)據(jù)集涵蓋以數(shù)據(jù)為中心的文檔和以文字為中心的文檔,能夠體現(xiàn)XML文檔的特征。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于第2步所述的測(cè)試數(shù)據(jù)集包含5張XML數(shù) 據(jù)表其中User、Category、Order、Databases四張表是虛擬數(shù)據(jù),其Schema結(jié)構(gòu)包含了權(quán) 利要求2在測(cè)試場(chǎng)景中定義的所有數(shù)據(jù)信息,由XML生成工具生成;而Literature表是實(shí) 際數(shù)據(jù),存放所有實(shí)際的XML文檔。
4.根據(jù)權(quán)利要求1所述的方法,其特征在于第3步所述的測(cè)試事務(wù)集,定義了14條查 詢事務(wù)和5條更新事務(wù),這些事務(wù)的制定是根據(jù)XML Query (XQuery) Requirements,XQuery Update Facility 1.0 Requirements 標(biāo)準(zhǔn)而來(lái),其中1)查詢事務(wù)Ql 根據(jù)id查看某用戶(id)的詳細(xì)信息,包括及訂閱的數(shù)據(jù)庫(kù)、分類——集合 Q2 查看訂閱某分類(農(nóng)業(yè))的所有用戶——引用Q3 將某一用戶(id)訂閱的數(shù)據(jù)庫(kù)以列舉方式顯示,以固定分隔符分隔——string函數(shù)Q4 判斷是否存在文獻(xiàn)數(shù)量大于32655062的數(shù)據(jù)庫(kù),是的話返回真——some (存在量詞)Q5:判斷是否所有數(shù)據(jù)庫(kù)的文獻(xiàn)書目都大于32655062,是則返回真一一every (全稱量詞)Q6 列表顯示所有某一級(jí)的文獻(xiàn)類及直接子類——層次結(jié)構(gòu) Q7 列出所有文獻(xiàn)的第一作者——序列Q8 列表查看order信息,統(tǒng)計(jì)某日(2005-7-22),顯示當(dāng)日order數(shù)量、當(dāng)日總額、最 大額度、最小額度、平均額度Q9 嵌套查詢,查詢所有余額為2981的用戶發(fā)出的新訂單 QlO 列表顯示未進(jìn)行任何訂閱的用戶-EMPTY關(guān)鍵字 Qll 根據(jù)名稱查看一個(gè)數(shù)據(jù)庫(kù)的詳細(xì)信息 Q12 傳入用戶id及日期返回訂單,實(shí)現(xiàn)放入自定義函數(shù)內(nèi)部 Q13 統(tǒng)計(jì)各年齡段的用戶數(shù)量Q14 在所有文檔中檢索包含一個(gè)特定關(guān)鍵詞(customer)的文檔并返回2)更新事務(wù)Ul 用戶充值或消費(fèi),根據(jù)用戶id修改其賬戶余額U2 處理訂單,將某訂單中的<new_order>標(biāo)記刪除U3:向某分類中新增子分類U4 用戶訂閱成功,用order中的databases禾口 category替換user中的對(duì)應(yīng)元素U5 用戶訂閱某數(shù)據(jù)庫(kù)中某分類,訂單信息通過(guò)參數(shù)傳入所有這些事務(wù)以內(nèi)嵌XQuery的SQL語(yǔ)言或者SQL/XML標(biāo)準(zhǔn)編寫,單獨(dú)運(yùn)行并得到功能 性指標(biāo)集。
5.根據(jù)權(quán)利要求1所述的方法,其特征在于第5步所述的工作負(fù)載中,每個(gè)并發(fā)用戶連 接到數(shù)據(jù)庫(kù)并提交一個(gè)事務(wù),每個(gè)事務(wù)被分配一個(gè)權(quán)重,這個(gè)權(quán)重決定這個(gè)事務(wù)在工作負(fù) 載中的百分比;其中,更新負(fù)載由兩部分構(gòu)成首先插入海量XML文檔至Literature表作為原始數(shù)據(jù),然后 分階段調(diào)用權(quán)利要求4所述的5個(gè)更新事務(wù),從而在檢驗(yàn)鎖的基礎(chǔ)上,檢驗(yàn)更新性能是可伸 縮的;只讀負(fù)載由權(quán)利要求4所述的14條查詢事務(wù)組成,它們的權(quán)重相同;混合負(fù)載由查詢事務(wù)和更新事務(wù)共同組成,其中70%的讀操作,30%的寫操作,寫操作 包括6%的更新操作,12%的文檔刪除操作,12%的插入操作,根據(jù)這樣的負(fù)載運(yùn)行系統(tǒng)并統(tǒng)計(jì)性能性指標(biāo)集。
6.根據(jù)權(quán)利要求4所述的方法,其特征在于所述的指標(biāo)集,考察待測(cè)數(shù)據(jù)庫(kù)對(duì)不同數(shù) 據(jù)量和事務(wù)的時(shí)空開銷和并發(fā)能力,具體包括在存儲(chǔ)能力上考察裝入原始數(shù)據(jù)的時(shí)間開 銷和空間開銷,其中原始數(shù)據(jù)量的大小要根據(jù)待測(cè)數(shù)據(jù)庫(kù)所運(yùn)行的硬件環(huán)境配置;在索引 能力上考察建立索引的時(shí)間開銷和空間開銷,以及在更新過(guò)程中索引維護(hù)的時(shí)間開銷;在 查詢能力上考察有無(wú)輔助索引的響應(yīng)時(shí)間和有無(wú)XML Schema的響應(yīng)時(shí)間;在更新能力上 考察有無(wú)索引的響應(yīng)時(shí)間;在并發(fā)控制上考察事務(wù)回滾率、事務(wù)等待時(shí)間和事務(wù)平均響應(yīng) 時(shí)間;以上的指標(biāo)都在不同的數(shù)據(jù)量和用戶并發(fā)度下進(jìn)行評(píng)測(cè),對(duì)待測(cè)數(shù)據(jù)庫(kù)進(jìn)行增量式 驗(yàn)證。
全文摘要
一種關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)純XML引擎的評(píng)測(cè)方法,涵蓋關(guān)系數(shù)據(jù)庫(kù)系統(tǒng)純XML引擎的功能評(píng)測(cè)和性能評(píng)測(cè)。該方法根據(jù)關(guān)系數(shù)據(jù)庫(kù)上純XML引擎的特點(diǎn),設(shè)計(jì)了一套完整的測(cè)試場(chǎng)景,模擬了一個(gè)文獻(xiàn)管理系統(tǒng),設(shè)計(jì)并生成了XML文檔集作為測(cè)試數(shù)據(jù)集,并按照W3C標(biāo)準(zhǔn)設(shè)計(jì)了包括查詢事務(wù)集和更新事務(wù)集的測(cè)試事務(wù)集并以SQL/XML語(yǔ)言實(shí)現(xiàn),運(yùn)行單獨(dú)的查詢和更新語(yǔ)句作為功能測(cè)試,運(yùn)行并發(fā)負(fù)載多個(gè)查詢和更新事務(wù)作為性能測(cè)試,可對(duì)數(shù)據(jù)庫(kù)系統(tǒng)的存儲(chǔ)能力、索引能力、承受能力等做出全面評(píng)估,并定義了一套評(píng)測(cè)指標(biāo)集。本發(fā)明方法經(jīng)在DB2等數(shù)據(jù)庫(kù)上的實(shí)驗(yàn)證明是具有普遍意義的,具有系統(tǒng)性和完備性,可用于數(shù)據(jù)庫(kù)測(cè)試領(lǐng)域。
文檔編號(hào)G06F17/30GK101887465SQ20101024155
公開日2010年11月17日 申請(qǐng)日期2010年7月30日 優(yōu)先權(quán)日2010年7月30日
發(fā)明者任宇涵, 司冠南, 周正吉, 李楠, 許靜, 高小紅 申請(qǐng)人:南開大學(xué)