国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種用于大規(guī)模分布式數(shù)據(jù)處理的系統(tǒng)及其方法

      文檔序號(hào):7775697閱讀:146來源:國知局
      一種用于大規(guī)模分布式數(shù)據(jù)處理的系統(tǒng)及其方法
      【專利摘要】本發(fā)明涉及計(jì)算機(jī)應(yīng)用【技術(shù)領(lǐng)域】,特別涉及到一種大規(guī)模分布異構(gòu)數(shù)據(jù)處理的系統(tǒng)及其方法。本發(fā)明的系統(tǒng)由客戶端、服務(wù)端以及元數(shù)據(jù)庫三個(gè)部分構(gòu)成;客戶端主要提供數(shù)據(jù)訪問的API,該引擎提供了增刪查改四個(gè)訪問接口;服務(wù)端由多個(gè)對(duì)等的服務(wù)節(jié)點(diǎn)組成,每個(gè)節(jié)點(diǎn)都提供相同的服務(wù),可以獨(dú)立的接收并處理用戶的訪問請(qǐng)求。服務(wù)節(jié)點(diǎn)包括六大部件:請(qǐng)求解析器、元數(shù)據(jù)管理器、任務(wù)解析器、任務(wù)優(yōu)化器、任務(wù)調(diào)度器以及任務(wù)執(zhí)行器;元數(shù)據(jù)庫負(fù)責(zé)存儲(chǔ)虛擬表的定義、虛擬表之間的關(guān)系、字段的映射關(guān)系。本發(fā)明提供了一種大規(guī)模分布異構(gòu)數(shù)據(jù)處理的系統(tǒng)和方法,可以用于大規(guī)模分布異構(gòu)數(shù)據(jù)處理上。
      【專利說明】一種用于大規(guī)模分布式數(shù)據(jù)處理的系統(tǒng)及其方法
      【技術(shù)領(lǐng)域】
      [0001]本發(fā)明涉及計(jì)算機(jī)應(yīng)用【技術(shù)領(lǐng)域】,特別涉及到一種大規(guī)模分布異構(gòu)數(shù)據(jù)處理的系統(tǒng)及其方法。
      【背景技術(shù)】
      [0002]我們面臨的是一個(gè)信息爆炸的時(shí)代,人們生產(chǎn)信息、獲取信息、使用信息的手段和方式都多種多樣,而利用計(jì)算機(jī)技術(shù)的信息系統(tǒng)主要就是想輔助解決人們?cè)谏a(chǎn)、獲取和使用信息的過程中遇到的問題。
      [0003]大量調(diào)查和使用證明,目前的信息系統(tǒng)的使用生命周期都是很短暫的,使用的效率也是很低下的。這方面的原因可能是多方面的,一個(gè)很重要的原因是:信息系統(tǒng)本身與企業(yè)的業(yè)務(wù)密切相關(guān),而企業(yè)業(yè)務(wù)經(jīng)常變化和發(fā)展,信息系統(tǒng)采用的技術(shù)本身難于適應(yīng)這種變化,業(yè)務(wù)的變化往往導(dǎo)致需要開發(fā)新的系統(tǒng)。再加上管理體制和規(guī)劃上的不可預(yù)見等原因,導(dǎo)致大量企業(yè)/行業(yè)同時(shí)存在多個(gè)信息系統(tǒng),相互不能替代,又不能無縫的信息共享,存在大量信息孤島
      [0004]造成這種技術(shù)問題的根本原因在于缺少一種統(tǒng)一的、針對(duì)大規(guī)模分布異構(gòu)數(shù)據(jù)處理的系統(tǒng)和方法。

      【發(fā)明內(nèi)容】

      [0005]本發(fā)明解決的技術(shù)問題之一在于提供一種用于大規(guī)模分布式數(shù)據(jù)處理的系統(tǒng)。
      [0006]本發(fā)明解決的技術(shù)問題之二在于提供一種用于大規(guī)模分布式數(shù)據(jù)處理的方法。
      [0007]本發(fā)明解決上述技術(shù)問題之一的技術(shù)方案是:
      [0008]所述系統(tǒng)由客戶端、服務(wù)端以及元數(shù)據(jù)庫三個(gè)部分構(gòu)成;
      [0009]所述的客戶端主要提供數(shù)據(jù)訪問的API,包括增刪查改四個(gè)訪問接口 ;
      [0010]所述的服務(wù)端由多個(gè)對(duì)等的服務(wù)節(jié)點(diǎn)組成,每個(gè)節(jié)點(diǎn)都提供相同的服務(wù),可以獨(dú)立的接收并處理用戶的訪問請(qǐng)求;
      [0011]所述的元數(shù)據(jù)庫負(fù)責(zé)存儲(chǔ)虛擬表的定義、虛擬表之間的關(guān)系、字段的映射關(guān)系。
      [0012]服務(wù)節(jié)點(diǎn)包括請(qǐng)求解析器、元數(shù)據(jù)管理器、任務(wù)解析器、任務(wù)優(yōu)化器、任務(wù)調(diào)度器和任務(wù)執(zhí)行器六大部件;
      [0013]所述的請(qǐng)求解析器負(fù)責(zé)解析用戶的數(shù)據(jù)請(qǐng)求,根據(jù)虛擬表的引用關(guān)系構(gòu)建解析計(jì)劃樹;
      [0014]所述的元數(shù)據(jù)管理器,封裝了對(duì)元數(shù)據(jù)庫的訪問接口,通過這些接口可以訪問到虛擬表的定義、虛擬表之間的關(guān)系、字段的映射關(guān)系等;
      [0015]所述的任務(wù)解析器,根據(jù)解析計(jì)劃樹構(gòu)建執(zhí)行路徑,每個(gè)執(zhí)行路徑也是一棵樹,樹的每個(gè)節(jié)點(diǎn)表示一個(gè)處理子任務(wù);
      [0016]所述的任務(wù)優(yōu)化器根據(jù)任務(wù)的特點(diǎn)和系統(tǒng)當(dāng)前的運(yùn)行狀況對(duì)執(zhí)行路徑進(jìn)行優(yōu)化,以提高處理效率;[0017]所述的任務(wù)調(diào)度器根據(jù)執(zhí)行路徑中任務(wù)的依賴關(guān)系負(fù)責(zé)調(diào)度任務(wù)的執(zhí)行,決定哪些任務(wù)可以并行,哪些需要串行;
      [0018]所述的任務(wù)執(zhí)行器執(zhí)行任務(wù)并準(zhǔn)備好處理后的結(jié)果數(shù)據(jù)集。
      [0019]所述的元數(shù)據(jù)庫的虛擬表的定義包括字段的名稱、類型、長度、描述、必要的完整性約束;虛擬表的關(guān)系支持傳統(tǒng)的并、交集合運(yùn)算,以及專門的選擇、投影關(guān)系運(yùn)算,還支持SQL規(guī)范中定義的聚合、排序、去重操作;字段的映射是描述虛擬表中每個(gè)字段的來源。
      [0020]本發(fā)明解決上述技術(shù)問題之二的技術(shù)方案是:
      [0021]服務(wù)節(jié)點(diǎn)接收到請(qǐng)求后調(diào)用請(qǐng)求解析器進(jìn)行解析,請(qǐng)求解析器會(huì)調(diào)用元數(shù)據(jù)管理器來訪問元數(shù)據(jù)庫,獲取虛擬表的定義以及引用的子虛擬表,層層解析直到基本虛擬表;
      [0022]虛擬表解析完成后系統(tǒng)生成一棵樹形的解析計(jì)劃,描述虛擬表的定義及其引用關(guān)系;解析計(jì)劃的節(jié)點(diǎn)表示虛擬表,邊表示引用關(guān)系;
      [0023]任務(wù)解析器為解析計(jì)劃的每一個(gè)節(jié)點(diǎn)生成一個(gè)可執(zhí)行的任務(wù),產(chǎn)生初始執(zhí)行路徑,執(zhí)行路徑也是一棵樹,節(jié)點(diǎn)表示任務(wù),邊表示分解關(guān)系,分解關(guān)系決定了任務(wù)執(zhí)行的依賴關(guān)系,同時(shí)也決定了結(jié)果數(shù)據(jù)集的傳遞方向;
      [0024]初始執(zhí)行路徑和解析計(jì)劃結(jié)構(gòu)基本一致;
      [0025]任務(wù)優(yōu)化器根據(jù)任務(wù)的特點(diǎn)和系統(tǒng)當(dāng)前的運(yùn)行狀況對(duì)執(zhí)行路徑進(jìn)行優(yōu)化,以減少不必要的子任務(wù)的執(zhí)行,縮短執(zhí)行路徑,減少節(jié)點(diǎn)間數(shù)據(jù)的流動(dòng),從而縮減整個(gè)任務(wù)的執(zhí)行時(shí)間;
      [0026]任務(wù)調(diào)度器負(fù)責(zé)把優(yōu)化后的執(zhí)行路徑上的子任務(wù)調(diào)度到執(zhí)行線程池中去并行執(zhí)行,每個(gè)線程封裝了一個(gè)任務(wù)執(zhí)行器;子任務(wù)運(yùn)行完了后,任務(wù)調(diào)度器還負(fù)責(zé)回收結(jié)果數(shù)據(jù),進(jìn)行合并;此外,調(diào)度執(zhí)行時(shí)采用自底向上的順序運(yùn)行執(zhí)行路徑的任務(wù)節(jié)點(diǎn),即先執(zhí)行子節(jié)點(diǎn),待子節(jié)點(diǎn)執(zhí)行完后,再逐級(jí)望上依次執(zhí)行父節(jié)點(diǎn)。
      [0027]所述的任務(wù)優(yōu)化器的任務(wù)優(yōu)化包括利用緩存、虛擬索引、合并關(guān)聯(lián)節(jié)點(diǎn)、過濾下推、并行調(diào)度;
      [0028]所述的利用緩存是為了優(yōu)化執(zhí)行路徑上的非葉子節(jié)點(diǎn),在在每個(gè)服務(wù)節(jié)點(diǎn)上都建立一個(gè)名為“CacheDB”的數(shù)據(jù)庫,用于存儲(chǔ)在數(shù)據(jù)處理過程中產(chǎn)生的臨時(shí)表;這些臨時(shí)表若不被立即刪除,則可用作緩存數(shù)據(jù)來使用;基于成本模型選取最經(jīng)常使用的子任務(wù),把它們的執(zhí)行結(jié)果緩存在CacheDB中;當(dāng)任務(wù)執(zhí)行時(shí),如果發(fā)現(xiàn)某個(gè)子任務(wù)以前被執(zhí)行過,且CacheDB中有緩存其結(jié)果,則該子任務(wù)將不再執(zhí)行,而是從CacheDB中直接取出結(jié)果返回給父任務(wù);
      [0029]所述的虛擬索引是對(duì)表內(nèi)容描述的元信息,支持從多個(gè)維度對(duì)數(shù)據(jù)源建立索引,在元數(shù)據(jù)中對(duì)其內(nèi)容特征進(jìn)行描述;在運(yùn)行執(zhí)行路徑中的葉子節(jié)點(diǎn)前,判斷該子任務(wù)執(zhí)行的輸入條件是否匹配虛擬索引,如果不匹配,則說明該子任務(wù)的執(zhí)行結(jié)果為空;如果判斷出結(jié)果為空,則不會(huì)再執(zhí)行該子任務(wù);
      [0030]所述的合并關(guān)聯(lián)節(jié)點(diǎn)是執(zhí)行路徑上存在某些特殊的子樹,該子樹上所有的節(jié)點(diǎn)的數(shù)據(jù)都來源于同一個(gè)數(shù)據(jù)源,對(duì)此子樹合并成一個(gè)子任務(wù),以減少執(zhí)行過程中中間結(jié)果的輸出;
      [0031]所述的過濾下推是盡量將過濾條件往執(zhí)行路徑的葉子節(jié)點(diǎn)方向轉(zhuǎn)移,減低在執(zhí)行路徑上節(jié)點(diǎn)之間傳遞的數(shù)據(jù)量;[0032]所述的并行調(diào)度是允許執(zhí)行路徑中的某些無依賴節(jié)點(diǎn)同時(shí)執(zhí)行,而不影響到最終的結(jié)果;任意兩個(gè)節(jié)點(diǎn)之間如果不存在數(shù)據(jù)等待關(guān)系,則認(rèn)為是無依賴的節(jié)點(diǎn)。
      [0033]本發(fā)明提供了一個(gè)數(shù)據(jù)處理云引擎,抽象出了統(tǒng)一的數(shù)據(jù)訪問接口,屏蔽底層數(shù)據(jù)資源訪問的分布性和異構(gòu)性,具備對(duì)大規(guī)模異構(gòu)數(shù)據(jù)資源進(jìn)行并行處理及聯(lián)合查詢的能力,從而打通各個(gè)業(yè)務(wù)系統(tǒng)之間的信息孤島。
      【專利附圖】

      【附圖說明】
      [0034]下面結(jié)合附圖對(duì)本發(fā)明進(jìn)一步說明:
      [0035]圖1是本發(fā)明云引擎執(zhí)行流程圖;
      [0036]圖2是本發(fā)明云引擎優(yōu)化流程圖。
      【具體實(shí)施方式】
      [0037]本發(fā)明分為客戶端、服務(wù)端以及元數(shù)據(jù)庫三個(gè)部分。采用分布式的架構(gòu),服務(wù)端由多個(gè)對(duì)等的服務(wù)節(jié)點(diǎn)組成,每個(gè)節(jié)點(diǎn)都提供相同的服務(wù)。任何一個(gè)節(jié)點(diǎn)都可以獨(dú)立的接收并處理用戶的訪問請(qǐng)求。
      [0038]客戶端
      [0039]客戶端主要提供數(shù)據(jù)訪問的API,該引擎提供了四個(gè)訪問接口,分別為read、write、update、以及delete,以支持?jǐn)?shù)據(jù)的增刪查改的功能。read接口能夠支持豐富的查詢功能,包括選擇、投影、聚合、排序、去重、分頁等操作??蛻舳酥С謨商捉涌冢瑑商捉涌谔峁┑墓δ芡耆嗤?,區(qū)別在于與服務(wù)端的通訊協(xié)議不同。第一套接口采用Web Service協(xié)議,第二套接口采用REST協(xié)議。用戶可以根據(jù)實(shí)際的應(yīng)用需求選擇該使用哪套接口。
      [0040]服務(wù)端
      [0041]服務(wù)端是一個(gè)由多個(gè)節(jié)點(diǎn)組成的集群,用戶可以向服務(wù)端集群中任何一個(gè)節(jié)點(diǎn)發(fā)起請(qǐng)求,用戶的請(qǐng)求中包含虛擬表的地址、操作類型及參數(shù)。虛擬表是一個(gè)基于分布異構(gòu)數(shù)據(jù)資源建立的數(shù)據(jù)視圖,且一個(gè)或者多個(gè)虛擬表通過關(guān)系算子可以構(gòu)建成一個(gè)具備更加高級(jí)語義的虛擬表。數(shù)據(jù)處理引擎會(huì)根據(jù)虛擬表的地址選擇服務(wù)節(jié)點(diǎn),將請(qǐng)求轉(zhuǎn)發(fā)到服務(wù)節(jié)點(diǎn)上去處理。
      [0042]服務(wù)端集群規(guī)模允許根據(jù)系統(tǒng)的負(fù)載規(guī)模進(jìn)行彈性伸縮。如果負(fù)載規(guī)模增加的時(shí)候,可以往集群中增加服務(wù)節(jié)點(diǎn),新增的服務(wù)節(jié)點(diǎn)將自身信息注冊(cè)到集群中,即可被系統(tǒng)發(fā)現(xiàn),并可立即接收用戶請(qǐng)求并完成數(shù)據(jù)處理,整個(gè)服務(wù)端集群無需重啟,也不會(huì)中斷服務(wù)。
      [0043]服務(wù)節(jié)點(diǎn)包括六大部件。
      [0044](I)請(qǐng)求解析器:負(fù)責(zé)解析用戶的數(shù)據(jù)請(qǐng)求,根據(jù)虛擬表的引用關(guān)系構(gòu)建解析計(jì)劃樹;
      [0045](2)元數(shù)據(jù)管理器:封裝了對(duì)元數(shù)據(jù)庫的訪問接口,通過這些接口可以訪問到虛擬表的定義、虛擬表之間的關(guān)系、字段的映射關(guān)系等;
      [0046](3)任務(wù)解析器:根據(jù)解析計(jì)劃樹構(gòu)建執(zhí)行路徑,每個(gè)執(zhí)行路徑也是一棵樹,樹的每個(gè)節(jié)點(diǎn)表示一個(gè)處理子任務(wù);
      [0047](4)任務(wù)優(yōu)化器:根據(jù)任務(wù)的特點(diǎn)和系統(tǒng)當(dāng)前的運(yùn)行狀況對(duì)執(zhí)行路徑進(jìn)行優(yōu)化,以提高處理效率;[0048](5)任務(wù)調(diào)度器:根據(jù)執(zhí)行路徑中任務(wù)的依賴關(guān)系負(fù)責(zé)調(diào)度任務(wù)的執(zhí)行,決定哪些任務(wù)可以并行,哪些需要串行;
      [0049](6)任務(wù)執(zhí)行器:執(zhí)行任務(wù)并準(zhǔn)備好處理后的結(jié)果數(shù)據(jù)集。
      [0050]元數(shù)據(jù)庫
      [0051]元數(shù)據(jù)庫負(fù)責(zé)存儲(chǔ)虛擬表的定義、虛擬表之間的關(guān)系、字段的映射關(guān)系。
      [0052](I)虛擬表的定義:字段的名稱、類型、長度、描述、必要的完整性約束;
      [0053](2)虛擬表的關(guān)系:支持傳統(tǒng)的集合運(yùn)算(并、交),以及專門的關(guān)系運(yùn)算(選擇、投影)、還支持SQL規(guī)范中定義的聚合、排序、去重操作;
      [0054](3)字段的映射:描述虛擬表中每個(gè)字段的來源。
      [0055]云引擎的執(zhí)行流程如圖1所示。
      [0056]服務(wù)節(jié)點(diǎn)接收到請(qǐng)求后調(diào)用請(qǐng)求解析器(Request Parser)進(jìn)行解析,請(qǐng)求解析器會(huì)調(diào)用元數(shù)據(jù)管理器(Metadata Management)來訪問元數(shù)據(jù)庫,獲取虛擬表的定義以及引用的子虛擬表,層層解析直到基本虛擬表?;咎摂M表是直接由物理數(shù)據(jù)源構(gòu)建而成的,沒有引用任何其它虛擬表。
      [0057]虛擬表解析完成后系統(tǒng)會(huì)生成一棵樹形的解析計(jì)劃,描述虛擬表的定義及其引用關(guān)系,解析計(jì)劃的節(jié)點(diǎn)表示虛擬表,邊表示引用關(guān)系。任務(wù)分解器為解析計(jì)劃的每一個(gè)節(jié)點(diǎn)生成一個(gè)可執(zhí)行的 任務(wù),產(chǎn)生初始執(zhí)行路徑,執(zhí)行路徑也是一棵樹,節(jié)點(diǎn)表示任務(wù),邊表示分解關(guān)系,分解關(guān)系決定了任務(wù)執(zhí)行的依賴關(guān)系,同時(shí)也決定了結(jié)果數(shù)據(jù)集的傳遞方向。
      [0058]初始執(zhí)行路徑和解析計(jì)劃結(jié)構(gòu)基本一致。優(yōu)化器會(huì)根據(jù)任務(wù)的特點(diǎn)和系統(tǒng)當(dāng)前的運(yùn)行狀況對(duì)執(zhí)行路徑進(jìn)行優(yōu)化,以減少不必要的子任務(wù)的執(zhí)行,縮短執(zhí)行路徑,減少節(jié)點(diǎn)間數(shù)據(jù)的流動(dòng),從而縮減整個(gè)任務(wù)的執(zhí)行時(shí)間。
      [0059]調(diào)度器(Scheduler)負(fù)責(zé)把優(yōu)化后的執(zhí)行路徑上的子任務(wù)調(diào)度到執(zhí)行線程池中去并行執(zhí)行,每個(gè)線程封裝了一個(gè)任務(wù)執(zhí)行器(Executor)。子任務(wù)運(yùn)行完了后,調(diào)度器還要負(fù)責(zé)回收結(jié)果數(shù)據(jù),進(jìn)行合并。此外,調(diào)度執(zhí)行時(shí)采用自底向上的順序運(yùn)行執(zhí)行路徑的任務(wù)節(jié)點(diǎn),即先執(zhí)行子節(jié)點(diǎn),待子節(jié)點(diǎn)執(zhí)行完后,再逐級(jí)望上依次執(zhí)行父節(jié)點(diǎn)。
      [0060]實(shí)心云引擎的優(yōu)化流程
      [0061]云引擎的優(yōu)化流程如圖2所示。
      [0062]任務(wù)分解器產(chǎn)生的初始執(zhí)行路徑的結(jié)構(gòu)和解析計(jì)劃基本上一致,執(zhí)行路徑往往很長,如圖2(a)所示。在網(wǎng)絡(luò)中大規(guī)模的移動(dòng)數(shù)據(jù)的開銷非常大,為了加快任務(wù)執(zhí)行的速度,云引擎需要對(duì)執(zhí)行路徑進(jìn)行優(yōu)化,剔除不必要的子路徑,極力縮短執(zhí)行路徑的長度。具體來說,優(yōu)化的關(guān)鍵技術(shù)主要有5項(xiàng),分別為:利用緩存、虛擬索引、合并關(guān)聯(lián)節(jié)點(diǎn)、過濾下推、并行調(diào)度。
      [0063](I)利用緩存
      [0064]該技術(shù)是為了優(yōu)化執(zhí)行路徑上的非葉子節(jié)點(diǎn)。云引擎在每個(gè)服務(wù)節(jié)點(diǎn)上都會(huì)建立一個(gè)名為“CacheDB”的數(shù)據(jù)庫,用于存儲(chǔ)在數(shù)據(jù)處理過程中產(chǎn)生的臨時(shí)表。這些臨時(shí)表若不被立即刪除,則可用作緩存數(shù)據(jù)來使用。云引擎基于成本模型選取最經(jīng)常使用的子任務(wù),把它們的執(zhí)行結(jié)果緩存在CacheDB中。當(dāng)任務(wù)執(zhí)行時(shí),如果發(fā)現(xiàn)某個(gè)子任務(wù)以前被執(zhí)行過,且CacheDB中有緩存其結(jié)果,則該子任務(wù)將不再執(zhí)行,而是從CacheDB中直接取出結(jié)果返回給父任務(wù)。如圖2(b)所示,當(dāng)檢查到子任務(wù)J2的結(jié)果緩存在CacheDB中,則以J2為根節(jié)點(diǎn)子路徑都將不再執(zhí)行。
      [0065](2)虛擬索引
      [0066]虛擬索引是對(duì)表內(nèi)容描述的元信息,云引擎支持從多個(gè)維度對(duì)數(shù)據(jù)源建立索引,在元數(shù)據(jù)中對(duì)其內(nèi)容特征進(jìn)行描述。在運(yùn)行執(zhí)行路徑中的葉子節(jié)點(diǎn)前,引擎會(huì)判斷該子任務(wù)執(zhí)行的輸入條件是否匹配虛擬索引,如果不匹配,則說明該子任務(wù)的執(zhí)行結(jié)果為空。如果判斷出結(jié)果為空,則不會(huì)再執(zhí)行該子任務(wù)。如圖2(c)所示,系統(tǒng)判斷出執(zhí)行路徑中的葉子節(jié)點(diǎn)J7的執(zhí)行結(jié)果為空,則不會(huì)執(zhí)行J7??紤]到對(duì)執(zhí)行路徑中的非葉子節(jié)點(diǎn)建立虛擬索引情況太復(fù)雜,目前虛擬索引只支持葉子節(jié)點(diǎn)。
      [0067](3)合并關(guān)聯(lián)節(jié)點(diǎn)
      [0068]執(zhí)行路徑上存在某些特殊的子樹,該子樹上所有的節(jié)點(diǎn)的數(shù)據(jù)都來源于同一個(gè)數(shù)據(jù)源(同一個(gè)節(jié)點(diǎn)上的數(shù)據(jù)庫或者是同一個(gè)節(jié)點(diǎn)上的文件系統(tǒng))。由于數(shù)據(jù)庫自身有優(yōu)化機(jī)制來優(yōu)化數(shù)據(jù)的執(zhí)行處理,云引擎利用這一機(jī)制,將該子樹合并成一個(gè)子任務(wù),以減少執(zhí)行過程中中間結(jié)果的輸出。這是因?yàn)槟承┤蝿?wù)執(zhí)行后的結(jié)果可能很大,無法全部裝載在內(nèi)存中,必須轉(zhuǎn)移到磁盤,等待作為下一個(gè)任務(wù)的輸入,帶來很大的IO開銷。合并后,產(chǎn)生的中間結(jié)果可以立即被消耗掉,從而減少內(nèi)存和磁盤之間交換的次數(shù),降低了服務(wù)器內(nèi)IO的開銷。如圖2(d)所示,以J3為根節(jié)點(diǎn)的子樹合并成一個(gè)任務(wù)進(jìn)行處理了。
      [0069]⑷過濾下推
      [0070]該技術(shù)指的是盡量將過濾條件往執(zhí)行路徑的葉子節(jié)點(diǎn)方向轉(zhuǎn)移,其目的是要減低在執(zhí)行路徑上節(jié)點(diǎn)之間傳遞的數(shù)據(jù)量。執(zhí)行路徑中節(jié)點(diǎn)的執(zhí)行順序是從葉子節(jié)點(diǎn)向根節(jié)點(diǎn)方向推進(jìn),將過濾條件向葉子節(jié)點(diǎn)或者靠近葉子節(jié)點(diǎn)的節(jié)點(diǎn)上執(zhí)行,可以有機(jī)會(huì)提前過濾掉無關(guān)的數(shù)據(jù)集,從而大大提高執(zhí)行的效率。如果數(shù)據(jù)源中的物理表建立了索引,能夠把過濾條件推到數(shù)據(jù)源來執(zhí)行,效果會(huì)更加明顯,因?yàn)橛辛怂饕?,?shù)據(jù)源過濾的處理過程會(huì)更加的高效。
      [0071](5)并行調(diào)度
      [0072]該技術(shù)指的是允許執(zhí)行路徑中的某些無依賴節(jié)點(diǎn)同時(shí)執(zhí)行,而不影響到最終的結(jié)果,其目的是要提高執(zhí)行的并行度。任意兩個(gè)節(jié)點(diǎn)之間如果不存在數(shù)據(jù)等待關(guān)系,則認(rèn)為是無依賴的節(jié)點(diǎn)。如圖2(a)中,節(jié)點(diǎn)J4的執(zhí)行不需要等待J5的運(yùn)行結(jié)果,同樣J5的執(zhí)行不需要等待J4的運(yùn)行結(jié)果,則J4和J5是無依賴節(jié)點(diǎn),可以并行調(diào)度。而J2的執(zhí)行需要等待J4的運(yùn)行結(jié)果,則J2和J4是依賴節(jié)點(diǎn),不可并行調(diào)度。
      【權(quán)利要求】
      1.一種用于大規(guī)模分布異構(gòu)數(shù)據(jù)處理的系統(tǒng),其特征在于:所述系統(tǒng)由客戶端、服務(wù)端以及元數(shù)據(jù)庫三個(gè)部分構(gòu)成; 所述的客戶端主要提供數(shù)據(jù)訪問的API,包括增刪查改四個(gè)訪問接口 ; 所述的服務(wù)端由多個(gè)對(duì)等的服務(wù)節(jié)點(diǎn)組成,每個(gè)節(jié)點(diǎn)都提供相同的服務(wù),可以獨(dú)立的接收并處理用戶的訪問請(qǐng)求; 所述的元數(shù)據(jù)庫負(fù)責(zé)存儲(chǔ)虛擬表的定義、虛擬表之間的關(guān)系、字段的映射關(guān)系。
      2.根據(jù)權(quán)利要求1所述的系統(tǒng),其特征在于:服務(wù)節(jié)點(diǎn)包括請(qǐng)求解析器、元數(shù)據(jù)管理器、任務(wù)解析器、任務(wù)優(yōu)化器、任務(wù)調(diào)度器和任務(wù)執(zhí)行器六大部件; 所述的請(qǐng)求解析器負(fù)責(zé)解析用戶的數(shù)據(jù)請(qǐng)求,根據(jù)虛擬表的引用關(guān)系構(gòu)建解析計(jì)劃樹; 所述的元數(shù)據(jù)管理器,封裝了對(duì)元數(shù)據(jù)庫的訪問接口,通過這些接口可以訪問到虛擬表的定義、虛擬表之間的關(guān)系、字段的映射關(guān)系等; 所述的任務(wù)解析器,根據(jù)解析計(jì)劃樹構(gòu)建執(zhí)行路徑,每個(gè)執(zhí)行路徑也是一棵樹,樹的每個(gè)節(jié)點(diǎn)表示一個(gè)處理子任務(wù); 所述的任務(wù)優(yōu)化器根據(jù)任務(wù)的特點(diǎn)和系統(tǒng)當(dāng)前的運(yùn)行狀況對(duì)執(zhí)行路徑進(jìn)行優(yōu)化,以提高處理效率; 所述的任務(wù)調(diào)度器根據(jù)執(zhí)行路徑中任務(wù)的依賴關(guān)系負(fù)責(zé)調(diào)度任務(wù)的執(zhí)行,決定哪些任務(wù)可以并行,哪些需要串行; 所述的任務(wù)執(zhí)行器執(zhí)行任務(wù)并 準(zhǔn)備好處理后的結(jié)果數(shù)據(jù)集。
      3.根據(jù)權(quán)利要求1或2所述的系統(tǒng),其特征在于:所述的元數(shù)據(jù)庫的虛擬表的定義包括字段的名稱、類型、長度、描述、必要的完整性約束;虛擬表的關(guān)系支持傳統(tǒng)的并、交集合運(yùn)算,以及專門的選擇、投影關(guān)系運(yùn)算,還支持SQL規(guī)范中定義的聚合、排序、去重操作;字段的映射是描述虛擬表中每個(gè)字段的來源。
      4.一種用于大規(guī)模分布異構(gòu)數(shù)據(jù)處理的方法,其特征在于: 服務(wù)節(jié)點(diǎn)接收到請(qǐng)求后調(diào)用請(qǐng)求解析器進(jìn)行解析,請(qǐng)求解析器會(huì)調(diào)用元數(shù)據(jù)管理器來訪問元數(shù)據(jù)庫,獲取虛擬表的定義以及引用的子虛擬表,層層解析直到基本虛擬表; 虛擬表解析完成后系統(tǒng)生成一棵樹形的解析計(jì)劃,描述虛擬表的定義及其引用關(guān)系;解析計(jì)劃的節(jié)點(diǎn)表示虛擬表,邊表示引用關(guān)系; 任務(wù)解析器為解析計(jì)劃的每一個(gè)節(jié)點(diǎn)生成一個(gè)可執(zhí)行的任務(wù),產(chǎn)生初始執(zhí)行路徑,執(zhí)行路徑也是一棵樹,節(jié)點(diǎn)表示任務(wù),邊表示分解關(guān)系,分解關(guān)系決定了任務(wù)執(zhí)行的依賴關(guān)系,同時(shí)也決定了結(jié)果數(shù)據(jù)集的傳遞方向; 初始執(zhí)行路徑和解析計(jì)劃結(jié)構(gòu)基本一致; 任務(wù)優(yōu)化器根據(jù)任務(wù)的特點(diǎn)和系統(tǒng)當(dāng)前的運(yùn)行狀況對(duì)執(zhí)行路徑進(jìn)行優(yōu)化,以減少不必要的子任務(wù)的執(zhí)行,縮短執(zhí)行路徑,減少節(jié)點(diǎn)間數(shù)據(jù)的流動(dòng),從而縮減整個(gè)任務(wù)的執(zhí)行時(shí)間; 任務(wù)調(diào)度器負(fù)責(zé)把優(yōu)化后的執(zhí)行路徑上的子任務(wù)調(diào)度到執(zhí)行線程池中去并行執(zhí)行,每個(gè)線程封裝了一個(gè)任務(wù)執(zhí)行器;子任務(wù)運(yùn)行完了后,任務(wù)調(diào)度器還負(fù)責(zé)回收結(jié)果數(shù)據(jù),進(jìn)行合并;此外,調(diào)度執(zhí)行時(shí)采用自底向上的順序運(yùn)行執(zhí)行路徑的任務(wù)節(jié)點(diǎn),即先執(zhí)行子節(jié)點(diǎn),待子節(jié)點(diǎn)執(zhí)行完后,再逐級(jí)望上依次執(zhí)行父節(jié)點(diǎn)。
      5.根據(jù)權(quán)利要求4所述的方法,其特征在于:所述的任務(wù)優(yōu)化器的任務(wù)優(yōu)化包括利用緩存、虛擬索引、合并關(guān)聯(lián)節(jié)點(diǎn)、過濾下推、并行調(diào)度; 所述的利用緩存是為了優(yōu)化執(zhí)行路徑上的非葉子節(jié)點(diǎn),在在每個(gè)服務(wù)節(jié)點(diǎn)上都建立一個(gè)名為“CacheDB”的數(shù)據(jù)庫,用于存儲(chǔ)在數(shù)據(jù)處理過程中產(chǎn)生的臨時(shí)表;這些臨時(shí)表若不被立即刪除,則可用作緩存數(shù)據(jù)來使用;基于成本模型選取最經(jīng)常使用的子任務(wù),把它們的執(zhí)行結(jié)果緩存在CacheDB中;當(dāng)任務(wù)執(zhí)行時(shí),如果發(fā)現(xiàn)某個(gè)子任務(wù)以前被執(zhí)行過,且CacheDB中有緩存其結(jié)果,則該子任務(wù)將不再執(zhí)行,而是從CacheDB中直接取出結(jié)果返回給父任務(wù); 所述的虛擬索引是對(duì)表內(nèi)容描述的元信息,支持從多個(gè)維度對(duì)數(shù)據(jù)源建立索引,在元數(shù)據(jù)中對(duì)其內(nèi)容特征進(jìn)行描述;在運(yùn)行執(zhí)行路徑中的葉子節(jié)點(diǎn)前,判斷該子任務(wù)執(zhí)行的輸入條件是否匹配虛擬索引,如果不匹配,則說明該子任務(wù)的執(zhí)行結(jié)果為空;如果判斷出結(jié)果為空,則不會(huì)再執(zhí)行該子任務(wù); 所述的合并關(guān)聯(lián)節(jié)點(diǎn)是執(zhí)行路徑上存在某些特殊的子樹,該子樹上所有的節(jié)點(diǎn)的數(shù)據(jù)都來源于同一個(gè)數(shù)據(jù)源,對(duì)此子樹合并成一個(gè)子任務(wù),以減少執(zhí)行過程中中間結(jié)果的輸出; 所述的過濾下推是盡量將過濾條件往執(zhí)行路徑的葉子節(jié)點(diǎn)方向轉(zhuǎn)移,減低在執(zhí)行路徑上節(jié)點(diǎn)之間傳遞的數(shù)據(jù)量; 所述的并行調(diào)度是允許執(zhí)行路徑中的某些無依賴節(jié)點(diǎn)同時(shí)執(zhí)行,而不影響到最終的結(jié)果;任意兩個(gè)節(jié)點(diǎn)之間如果不存在數(shù)`據(jù)等待關(guān)系,則認(rèn)為是無依賴的節(jié)點(diǎn)。
      【文檔編號(hào)】H04L29/08GK103631870SQ201310545899
      【公開日】2014年3月12日 申請(qǐng)日期:2013年11月6日 優(yōu)先權(quán)日:2013年11月6日
      【發(fā)明者】劉祥濤, 謝毅, 岳強(qiáng), 季統(tǒng)凱, 徐志偉 申請(qǐng)人:廣東電子工業(yè)研究院有限公司
      網(wǎng)友詢問留言 已有0條留言
      • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1