国产精品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>

      用于加速業(yè)務(wù)數(shù)據(jù)處理的軟件虛擬的制造方法

      文檔序號(hào):6496198閱讀:358來(lái)源:國(guó)知局
      用于加速業(yè)務(wù)數(shù)據(jù)處理的軟件虛擬的制造方法【專利摘要】一般來(lái)說(shuō),本發(fā)明涉及一種軟件虛擬機(jī),其提供針對(duì)多核計(jì)算平臺(tái)進(jìn)行優(yōu)化的高性能業(yè)務(wù)數(shù)據(jù)加速。虛擬機(jī)使用試圖最大化多核計(jì)算平臺(tái)的效率的底層并行化引擎以提供高度可擴(kuò)展的高性能(最低時(shí)延)虛擬機(jī)。在某些實(shí)施例中,虛擬機(jī)可以被看作是在操作狀態(tài)下具有實(shí)時(shí)自組織且自尋求可用存儲(chǔ)器工作界限以自動(dòng)優(yōu)化數(shù)據(jù)處理加速和大量數(shù)據(jù)的內(nèi)容分發(fā)的最大可用吞吐量的能力的內(nèi)存中虛擬機(jī)?!緦@f(shuō)明】用于加速業(yè)務(wù)數(shù)據(jù)處理的軟件虛擬機(jī)【
      技術(shù)領(lǐng)域
      】[0001]本發(fā)明涉及計(jì)算系統(tǒng)?!?br>背景技術(shù)
      】[0002]全球數(shù)據(jù)量爆炸性增長(zhǎng),連接到網(wǎng)絡(luò)的設(shè)備普遍存在,用戶內(nèi)容創(chuàng)建及共享入門的門坎降低,以前的許多離線功能數(shù)字化(金融、醫(yī)學(xué)處方等),虛擬化和離線網(wǎng)絡(luò)系統(tǒng)(云)的出現(xiàn),以及其他因素導(dǎo)致了“大數(shù)據(jù)”時(shí)代的出現(xiàn)。這給系統(tǒng)帶來(lái)了挑戰(zhàn),因?yàn)閼?yīng)用程序處理面臨極端海量的吞吐量和向任意數(shù)量的目的點(diǎn)分發(fā)或分布處理數(shù)據(jù)的要求。這些系統(tǒng)額外必須是可擴(kuò)展的以跟上大數(shù)據(jù)的持續(xù)增長(zhǎng)并實(shí)現(xiàn)普遍大眾的互聯(lián)網(wǎng)及云應(yīng)用程序的交互性。[0003]多核處理器的使用在計(jì)算機(jī)行業(yè)急劇增加。一般來(lái)說(shuō),術(shù)語(yǔ)“處理器”指的是讀取并執(zhí)行程序指令的硬件單元。從歷史觀點(diǎn)來(lái)說(shuō),處理器最初使用單個(gè)“核”,該核指的是處理器的讀取并執(zhí)行一系列指令的一部分。多核處理器指的是單個(gè)硬件單元,其中兩個(gè)或兩個(gè)以上的獨(dú)立處理“核”被集成在單個(gè)封裝件上。近來(lái),有多達(dá)128-256個(gè)處理核的計(jì)算系統(tǒng)已成為可能。這些多核計(jì)算平臺(tái)給傳統(tǒng)編程計(jì)算帶來(lái)了挑戰(zhàn)?!?br/>發(fā)明內(nèi)容】[0004]一般來(lái)說(shuō),本發(fā)明涉及一種軟件虛擬機(jī),其提供針對(duì)多核計(jì)算平臺(tái)進(jìn)行優(yōu)化的高性能業(yè)務(wù)數(shù)據(jù)加速。虛擬機(jī)使用試圖最大化多核計(jì)算平臺(tái)的效率的底層并行化引擎以提供高度可擴(kuò)展的高性能(最低時(shí)延)虛擬機(jī)。[0005]在某些實(shí)施例中,軟件虛擬機(jī)的底層并行化引擎提供自組織能力以并行化并存儲(chǔ)分別與軟件虛擬機(jī)的不同執(zhí)行單元相關(guān)聯(lián)的數(shù)據(jù)分區(qū)的業(yè)務(wù)處理的相關(guān)數(shù)據(jù)。另外,集體處理業(yè)務(wù)及對(duì)應(yīng)業(yè)務(wù)數(shù)據(jù)的任務(wù)提供自調(diào)諧能力以自主確定并在處理任務(wù)的執(zhí)行單元中遷移。結(jié)果,軟件虛擬機(jī)可以采用多個(gè)分布式業(yè)務(wù)委托單元并因此避免集中業(yè)務(wù)管理器以管理數(shù)據(jù)組織和業(yè)務(wù)委托以及與此集中管理相關(guān)聯(lián)的固有瓶頸。[0006]這些技術(shù)可以在滿足大眾web應(yīng)用程序和“大數(shù)據(jù)”云的動(dòng)態(tài)和交互數(shù)據(jù)加速的特定需求所需的系統(tǒng)中使用。具體地,實(shí)現(xiàn)所描述的技術(shù)的系統(tǒng)可以聚集業(yè)務(wù)數(shù)據(jù)以有效地管理來(lái)自多種源并由系統(tǒng)接收的大量數(shù)據(jù)的攝取以及分離業(yè)務(wù)數(shù)據(jù)以分發(fā)處理后的數(shù)據(jù)以選擇目的地。例如,唯一數(shù)據(jù)通信特征是平臺(tái)將廣播選擇數(shù)據(jù)交互地推送至單獨(dú)設(shè)備(用戶)并在均質(zhì)體廣播數(shù)據(jù)流中創(chuàng)建交互專用廣播會(huì)話(信道)的能力。平臺(tái)技術(shù)還可以在利用對(duì)二級(jí)存儲(chǔ)裝置的集成按需實(shí)時(shí)無(wú)限運(yùn)行時(shí)擴(kuò)展操作可擴(kuò)展內(nèi)存中數(shù)據(jù)庫(kù)緩存的系統(tǒng)中實(shí)現(xiàn)消費(fèi)者提供的業(yè)務(wù)以及消息傳遞應(yīng)用程序加速。此系統(tǒng)可以利用平臺(tái)技術(shù)來(lái)擴(kuò)展超出物理內(nèi)存中界限的緩存,并在需要時(shí)將物理外部存儲(chǔ)器設(shè)備(例如,硬盤驅(qū)動(dòng)器)的自動(dòng)擴(kuò)展和使用集成為虛擬機(jī)存儲(chǔ)器界限的一部分。換句話說(shuō),本文描述的軟件虛擬機(jī)支持從具有從大數(shù)據(jù)支持或創(chuàng)建值的困難的‘靜態(tài)信息架構(gòu)’至動(dòng)態(tài)架構(gòu)模型的移動(dòng)。利用低時(shí)延,可擴(kuò)展的處理,結(jié)合復(fù)雜性降低、成本效率增加,所描述的技術(shù)具體滿足大數(shù)據(jù)處理的條件以提供并行消耗并處理來(lái)自大量數(shù)據(jù)生產(chǎn)者的巨大業(yè)務(wù)量的能力,以及以交互的方式將處理后的數(shù)據(jù)推送至數(shù)十億數(shù)據(jù)消費(fèi)者的能力。[0007]在一個(gè)實(shí)例中,一種設(shè)備包括:具有多個(gè)執(zhí)行核的多核硬件處理器;以及分別根據(jù)虛擬指令集操作的多個(gè)虛擬機(jī),其中虛擬機(jī)的每一個(gè)在執(zhí)行核中的不同執(zhí)行核上執(zhí)行。設(shè)備還包括內(nèi)存中數(shù)據(jù)庫(kù),其包括存儲(chǔ)在多個(gè)存儲(chǔ)器分區(qū)內(nèi)的數(shù)據(jù),其中存儲(chǔ)器分區(qū)的每一個(gè)與執(zhí)行核中的不同執(zhí)行核相關(guān)聯(lián)。設(shè)備還包括多個(gè)任務(wù),其在虛擬機(jī)上執(zhí)行以將內(nèi)存中數(shù)據(jù)庫(kù)的傳入業(yè)務(wù)分解為子業(yè)務(wù),將子業(yè)務(wù)部署到與存儲(chǔ)子業(yè)務(wù)數(shù)據(jù)的各存儲(chǔ)器分區(qū)相關(guān)聯(lián)的執(zhí)行核,并在部署有子業(yè)務(wù)的各執(zhí)行核上并行執(zhí)行傳入業(yè)務(wù)的子業(yè)務(wù)。[0008]在另一實(shí)例中,一種方法包括:執(zhí)行分別根據(jù)虛擬指令集操作的多個(gè)虛擬機(jī),其中虛擬機(jī)的每一個(gè)在計(jì)算設(shè)備的多核硬件處理器的多個(gè)執(zhí)行核中的不同執(zhí)行核上執(zhí)行。方法還包括使執(zhí)行核中的不同執(zhí)行核與多個(gè)存儲(chǔ)器分區(qū)相關(guān)聯(lián),其中,存儲(chǔ)器分區(qū)的每一個(gè)存儲(chǔ)內(nèi)存中數(shù)據(jù)庫(kù)數(shù)據(jù)。方法進(jìn)一步包括利用虛擬機(jī)執(zhí)行多個(gè)任務(wù),其中,多個(gè)任務(wù)將內(nèi)存中數(shù)據(jù)庫(kù)的傳入業(yè)務(wù)分解為子業(yè)務(wù),將子業(yè)務(wù)部署到與存儲(chǔ)子業(yè)務(wù)數(shù)據(jù)的各存儲(chǔ)器分區(qū)相關(guān)聯(lián)的執(zhí)行核,并在部署有子業(yè)務(wù)的各執(zhí)行核上并行執(zhí)行傳入業(yè)務(wù)的子業(yè)務(wù)。[0009]在另一實(shí)例中,一種計(jì)算機(jī)可讀存儲(chǔ)設(shè)備包括在執(zhí)行時(shí)使具有多個(gè)執(zhí)行核的多核硬件處理器執(zhí)行根據(jù)虛擬指令集操作的多個(gè)虛擬機(jī)的指令,其中,虛擬機(jī)的每一個(gè)在計(jì)算設(shè)備的多核硬件處理器的多個(gè)執(zhí)行核中的不同執(zhí)行核上執(zhí)行。在執(zhí)行時(shí)指令使多核硬件處理器使執(zhí)行核中的不同執(zhí)行核與多個(gè)存儲(chǔ)器分區(qū)相關(guān)聯(lián),其中存儲(chǔ)器分區(qū)的每一個(gè)存儲(chǔ)內(nèi)存中數(shù)據(jù)庫(kù)數(shù)據(jù)。指令在執(zhí)行時(shí)進(jìn)一步使多核硬件處理器利用虛擬機(jī)執(zhí)行多個(gè)任務(wù),其中,多個(gè)任務(wù)將內(nèi)存中數(shù)據(jù)庫(kù)的傳入業(yè)務(wù)分解為子業(yè)務(wù),將子業(yè)務(wù)部署到與存儲(chǔ)子業(yè)務(wù)數(shù)據(jù)的各存儲(chǔ)器分區(qū)相關(guān)聯(lián)的執(zhí)行核,并在部署有子業(yè)務(wù)的各執(zhí)行核上并行執(zhí)行傳入業(yè)務(wù)的子業(yè)務(wù)。[0010]在附圖和下面的描述中闡述本發(fā)明的一個(gè)或多個(gè)實(shí)施例的細(xì)節(jié)。通過(guò)該描述、附圖和權(quán)利要求,本發(fā)明的其它特征、目的和優(yōu)點(diǎn)將變得顯而易見(jiàn)?!緦@綀D】【附圖說(shuō)明】[0011]圖1是示出了使用本文描述的技術(shù)來(lái)提供高性能業(yè)務(wù)數(shù)據(jù)加速的示例性系統(tǒng)的框圖。[0012]圖2是示出了根據(jù)本發(fā)明中描述的技術(shù)來(lái)提供高性能業(yè)務(wù)數(shù)據(jù)加速的業(yè)務(wù)數(shù)據(jù)加速器的示例性實(shí)施例的框圖。[0013]圖3是示出了分解傳入業(yè)務(wù)或事件以由以本發(fā)明中描述的方式在多核計(jì)算平臺(tái)的獨(dú)立核上單獨(dú)執(zhí)行的自主任務(wù)進(jìn)行處理的并行化引擎的示例性事例的框圖。[0014]圖4是示出了在虛擬處理器上執(zhí)行以利用本發(fā)明的技術(shù)并行修改緩存數(shù)據(jù)結(jié)構(gòu)的框圖。[0015]圖5是進(jìn)一步詳細(xì)地示出了示例性虛擬機(jī)的框圖。[0016]圖6是根據(jù)本文描述的技術(shù)對(duì)任務(wù)進(jìn)行時(shí)分復(fù)用的系統(tǒng)的框圖。[0017]圖7A-7B是示出了支持圖1的業(yè)務(wù)數(shù)據(jù)加速器的并行化操作的示例性任務(wù)的框圖。[0018]圖8是示出了根據(jù)本文描述的技術(shù)并行地并行寫入多個(gè)數(shù)據(jù)對(duì)象的示例性業(yè)務(wù)數(shù)據(jù)加速器的框圖。[0019]圖9是示出了包括多個(gè)集群機(jī)以根據(jù)本文描述的技術(shù)寫入部分?jǐn)?shù)據(jù)結(jié)構(gòu)的示例性業(yè)務(wù)數(shù)據(jù)加速器190的框圖。[0020]圖10示出了示例性系統(tǒng),其中符合本文描述的技術(shù)的業(yè)務(wù)數(shù)據(jù)加速器的事例被用作構(gòu)建塊以形成分層結(jié)構(gòu)以將所選數(shù)據(jù)交互地推送至大量單獨(dú)客戶端(用戶)并在均質(zhì)體廣播數(shù)據(jù)流中創(chuàng)建交互專用廣播會(huì)話(信道)。[0021]圖11示出了示例性系統(tǒng),其中符合本文描述的技術(shù)的業(yè)務(wù)數(shù)據(jù)加速器的事例被用作構(gòu)建塊以形成分層結(jié)構(gòu)以從大量單獨(dú)數(shù)據(jù)源(用戶)接收數(shù)據(jù)。[0022]圖12是示出了使用本文描述的技術(shù)來(lái)為提供并消耗數(shù)據(jù)的用戶提供高性能業(yè)務(wù)數(shù)據(jù)加速的示例性系統(tǒng)的框圖。【具體實(shí)施方式】[0023]圖1是示出了使用本文描述的技術(shù)來(lái)提供高性能業(yè)務(wù)數(shù)據(jù)加速的示例性系統(tǒng)的框圖。在圖1的示例性系統(tǒng)中,一組業(yè)務(wù)數(shù)據(jù)加速器13A至13N(統(tǒng)稱為“業(yè)務(wù)數(shù)據(jù)加速器13”)被組織以形成數(shù)據(jù)加速器的集群11。業(yè)務(wù)數(shù)據(jù)加速器操作用于從數(shù)據(jù)源12連續(xù)攝取并處理大量數(shù)據(jù)業(yè)務(wù)并將處理后的數(shù)據(jù)分發(fā)至數(shù)據(jù)消費(fèi)者16。數(shù)據(jù)源12和數(shù)據(jù)消費(fèi)者16可以是提供或消耗數(shù)據(jù)的任何東西,諸如系統(tǒng)、應(yīng)用程序或數(shù)據(jù)庫(kù)。[0024]如本文所述的,業(yè)務(wù)數(shù)據(jù)加速器13的每一個(gè)均包括為虛擬機(jī)提供大規(guī)模并行多核操作環(huán)境以攝取并以業(yè)務(wù)的方式處理所攝取的數(shù)據(jù)的并行化引擎。軟件虛擬機(jī)提供針對(duì)業(yè)務(wù)數(shù)據(jù)加速器13的底層多核計(jì)算平臺(tái)進(jìn)行優(yōu)化的高性能業(yè)務(wù)數(shù)據(jù)加速。也就是說(shuō),并行化引擎提供基礎(chǔ)平臺(tái),數(shù)據(jù)攝取和處理在其上可以以在多個(gè)集群計(jì)算設(shè)備的任意數(shù)量的執(zhí)行核上高度可擴(kuò)展并針對(duì)獨(dú)立執(zhí)行進(jìn)行優(yōu)化的方式并行化。從數(shù)據(jù)源12接收的傳入數(shù)據(jù)業(yè)務(wù)由并行化引擎分解為可以在業(yè)務(wù)數(shù)據(jù)加速器13的底層多核計(jì)算平臺(tái)的單獨(dú)核上獨(dú)立執(zhí)行的操作。虛擬機(jī)在內(nèi)存中數(shù)據(jù)庫(kù)上操作,該內(nèi)存中數(shù)據(jù)庫(kù)以允許加速器的每一個(gè)的并行化引擎在底層多核處理環(huán)境的核上并行執(zhí)行自內(nèi)存中數(shù)據(jù)庫(kù)插入,刪除,更新并查詢數(shù)據(jù)的業(yè)務(wù)操作的方式進(jìn)行組織。[0025]而且,在操作期間,在業(yè)務(wù)數(shù)據(jù)加速器13的每一個(gè)上執(zhí)行的軟件虛擬機(jī)的并行化引擎可以動(dòng)態(tài)地自組織存儲(chǔ)器的使用以擴(kuò)展內(nèi)存中數(shù)據(jù)庫(kù)超過(guò)物理內(nèi)存中界限。這樣,業(yè)務(wù)數(shù)據(jù)加速器13的軟件虛擬機(jī)在處理所攝取的業(yè)務(wù)數(shù)據(jù)時(shí)可以對(duì)物理外部存儲(chǔ)器設(shè)備(例如,硬盤驅(qū)動(dòng)器)提供自動(dòng)擴(kuò)展和使用。隨著在多核計(jì)算環(huán)境上并行連續(xù)處理入站業(yè)務(wù),這允許虛擬機(jī)根據(jù)需要?jiǎng)討B(tài)針對(duì)內(nèi)存中數(shù)據(jù)庫(kù)利用虛擬存儲(chǔ)。[0026]進(jìn)一步地,由業(yè)務(wù)數(shù)據(jù)加速器13執(zhí)行的虛擬機(jī)包括允許業(yè)務(wù)數(shù)據(jù)加速器將所選數(shù)據(jù)交互地推送至數(shù)據(jù)消費(fèi)者16的并行化通信特征。例如,數(shù)據(jù)消費(fèi)者16可以是單獨(dú)設(shè)備,并且業(yè)務(wù)數(shù)據(jù)加速器13的并行化通信特征可以在大眾廣播數(shù)據(jù)流中創(chuàng)建交互信道以在數(shù)據(jù)消費(fèi)者16上將大量單獨(dú)請(qǐng)求的數(shù)據(jù)推送至高容量。[0027]這樣,業(yè)務(wù)數(shù)據(jù)加速器13執(zhí)行具有試圖最大化多核計(jì)算平臺(tái)的效率的底層并行化引擎以提供高度可擴(kuò)展的高性能(最低時(shí)延)數(shù)據(jù)業(yè)務(wù)加速的虛擬機(jī)。而且,虛擬機(jī)可以被看作是在操作狀態(tài)下具有自組織且實(shí)時(shí)自尋求自動(dòng)優(yōu)化數(shù)據(jù)處理加速和大量數(shù)據(jù)的內(nèi)容分發(fā)的最大可用吞吐量的可用存儲(chǔ)器工作界限的能力的內(nèi)存中虛擬機(jī)。[0028]本文描述的并行化虛擬機(jī)允許來(lái)自數(shù)據(jù)源12的業(yè)務(wù)數(shù)據(jù)在機(jī)上動(dòng)態(tài)起作用,然后被導(dǎo)向數(shù)據(jù)消費(fèi)者16以便進(jìn)一步處理操作或以最合適的且有用的形式向用戶提供。另夕卜,業(yè)務(wù)數(shù)據(jù)加速器13的并行化虛擬機(jī)可以實(shí)時(shí)對(duì)數(shù)據(jù)流起作用,而不一定要求將數(shù)據(jù)寫入磁盤并整體起作用。正因如此,并行化虛擬機(jī)可以加快向數(shù)據(jù)消費(fèi)者16提供的業(yè)務(wù)數(shù)據(jù)的處理速度和相關(guān)性。[0029]軟件加速器13的并行處理虛擬機(jī)可以用于增加云環(huán)境、移動(dòng)環(huán)境、社交環(huán)境和企業(yè)計(jì)算環(huán)境中的現(xiàn)有數(shù)據(jù)處理基礎(chǔ)設(shè)施和應(yīng)用程序以傳遞低延遲、高擴(kuò)展性的數(shù)據(jù)加速,性能提高,操作成本降低。[0030]圖2是示出了加速器13的示例性實(shí)施例的框圖。在所示的實(shí)例中,加速器13包括虛擬機(jī)20,該虛擬機(jī)20專門設(shè)計(jì)來(lái)對(duì)來(lái)自一個(gè)或多個(gè)數(shù)據(jù)源12的大量數(shù)據(jù)加速并提供可定制處理。加速器13通常在計(jì)算平臺(tái)諸如高端服務(wù)器上實(shí)現(xiàn),具有多核計(jì)算平臺(tái)24。計(jì)算平臺(tái)24可以包括任意數(shù)量的處理器以及任意數(shù)量的硬件核,例如四至數(shù)千個(gè)。[0031]在圖2的實(shí)例中,加速器13包括向虛擬處理器20,諸如存儲(chǔ)器管理和硬件I/O提供底層操作系統(tǒng)內(nèi)核27的某個(gè)功能的平臺(tái)抽象層25。在一個(gè)實(shí)例中,虛擬處理器20可以在由操作系統(tǒng)內(nèi)核27提供的整個(gè)進(jìn)程空間內(nèi)執(zhí)行。操作系統(tǒng)內(nèi)核27例如可以是可從微軟公司買到的Linux、BerkeleySoftwareDistribution(BSD)、另一個(gè)Unix變體內(nèi)核或Windows操作系統(tǒng)內(nèi)核。[0032]虛擬處理器20的數(shù)據(jù)攝取引擎26操作用于“攝取”傳入業(yè)務(wù)數(shù)據(jù)。數(shù)據(jù)攝取引擎26可以從數(shù)千至數(shù)百萬(wàn)個(gè)并行入站連接接收數(shù)據(jù),每個(gè)使數(shù)據(jù)向內(nèi)流動(dòng),而不需要被提示新信息。數(shù)據(jù)可以從幾個(gè)“粗”管路攝取或可以通過(guò)數(shù)千連接從單獨(dú)設(shè)備或傳感器攝取。要處理的數(shù)據(jù)類型可以進(jìn)行結(jié)構(gòu)化處理,非結(jié)構(gòu)化處理,或者這兩者。例如,數(shù)據(jù)攝取引擎26可以包括一個(gè)或多個(gè)數(shù)據(jù)適配器以接收并處理格式化數(shù)據(jù),例如XML和CSV格式化數(shù)據(jù)。[0033]因?yàn)閭魅霐?shù)據(jù)通過(guò)數(shù)據(jù)攝取引擎26被“攝入”系統(tǒng),所以數(shù)據(jù)庫(kù)加速引擎28對(duì)內(nèi)存中數(shù)據(jù)庫(kù)27起作用。數(shù)據(jù)庫(kù)加速引擎28提供主要負(fù)責(zé)協(xié)調(diào)數(shù)據(jù)攝取引擎26、消費(fèi)者應(yīng)用程序28與內(nèi)容分發(fā)引擎30之間的活動(dòng)的高度可擴(kuò)展數(shù)據(jù)處理引擎。在某些實(shí)例中,數(shù)據(jù)庫(kù)加速引擎28公開(kāi)標(biāo)準(zhǔn)的基于SQL的API,數(shù)據(jù)攝取引擎26、消費(fèi)者應(yīng)用程序28及內(nèi)容分發(fā)引擎30通過(guò)該標(biāo)準(zhǔn)的基于SQL的API與內(nèi)存中數(shù)據(jù)庫(kù)27互動(dòng)并在并行化引擎22的控制下執(zhí)行,從而發(fā)生非常低的延遲處理。換句話說(shuō),數(shù)據(jù)加速引擎28可以在攝取并存儲(chǔ)在內(nèi)存中數(shù)據(jù)庫(kù)27中的傳入數(shù)據(jù)方面提供SQL訪問(wèn)機(jī)上視圖。一般來(lái)說(shuō),數(shù)據(jù)庫(kù)加速引擎28使用并行化引擎22來(lái)將傳入業(yè)務(wù)或事件分解為隨后部署到與處理所需的數(shù)據(jù)相關(guān)的最接近且最有效硬件執(zhí)行核的細(xì)粒度操作區(qū)塊。數(shù)據(jù)庫(kù)加速引擎28使業(yè)務(wù)和事件分解、處理、并行檢查并重組以得出計(jì)算結(jié)果。[0034]內(nèi)容分發(fā)引擎30可以將數(shù)據(jù)輸出至一個(gè)、幾個(gè)或多個(gè)目的地,即數(shù)據(jù)消費(fèi)者16。也就是說(shuō),內(nèi)容分發(fā)引擎30具有將處理數(shù)據(jù)從內(nèi)存中數(shù)據(jù)庫(kù)20作為目標(biāo)數(shù)據(jù)流‘推送’(分發(fā))至數(shù)據(jù)消費(fèi)者16的能力,該數(shù)據(jù)消費(fèi)者16可以是其他系統(tǒng)、應(yīng)用程序或數(shù)據(jù)庫(kù)。例如,在某些實(shí)施例中,內(nèi)容分發(fā)引擎可以配置為經(jīng)由單個(gè)目標(biāo)流將數(shù)據(jù)分發(fā)至另一個(gè)計(jì)算系統(tǒng)或數(shù)據(jù)倉(cāng)庫(kù)。另外,內(nèi)容分發(fā)引擎30可以提供交互的雙向數(shù)據(jù)分發(fā)和通信引擎以交互地且雙向地向大眾或設(shè)備,即數(shù)據(jù)消費(fèi)者16廣播數(shù)據(jù)。[0035]在某些實(shí)施例中,數(shù)據(jù)攝取引擎26和內(nèi)容分發(fā)引擎30可以支持本文描述的使數(shù)據(jù)源12或數(shù)據(jù)消費(fèi)者16(或這兩者)能夠定制發(fā)送或接收的內(nèi)容的“select-cast”能力??梢员憩F(xiàn)為私人數(shù)據(jù)信道,即,每個(gè)源或消費(fèi)者所獨(dú)有的交互的個(gè)性化數(shù)據(jù)流的形式。每個(gè)連接可以是連續(xù)的開(kāi)放式連接,使得數(shù)據(jù)消費(fèi)者16不需要輪詢更改的數(shù)據(jù)。數(shù)據(jù)攝取引擎26和內(nèi)容分發(fā)引擎可以支持?jǐn)?shù)百萬(wàn)的與數(shù)據(jù)源12和數(shù)據(jù)消費(fèi)者16的開(kāi)放式連續(xù)連接。[0036]虛擬處理器20的并行化引擎22提供抽象的執(zhí)行環(huán)境,該抽象的執(zhí)行環(huán)境使用多核處理器和主板架構(gòu)來(lái)形成高度集成、低延遲的可擴(kuò)展并行平臺(tái)以便執(zhí)行數(shù)據(jù)攝取引擎26、數(shù)據(jù)庫(kù)加速引擎28、虛擬存儲(chǔ)管理器29和內(nèi)容分發(fā)引擎30。也就是說(shuō),并行化引擎22提供針對(duì)多核和眾核系統(tǒng)進(jìn)行優(yōu)化的執(zhí)行平臺(tái)以基于每核提供具有細(xì)粒度并行性的實(shí)時(shí)并行、存儲(chǔ)器管理和任務(wù)管理能力。進(jìn)一步地,并行化引擎22確保指令和數(shù)據(jù)緩存(例如,L1、L2和L3緩存)的最佳使用,同時(shí)通過(guò)將所有處理分解為可以在單獨(dú)核上獨(dú)立執(zhí)行的任務(wù)并通過(guò)最小化并行鎖緊結(jié)構(gòu)的要求來(lái)實(shí)現(xiàn)細(xì)粒度并行性。這允許數(shù)據(jù)攝取引擎26、數(shù)據(jù)庫(kù)加速引擎28、虛擬存儲(chǔ)管理器29以及內(nèi)容分發(fā)引擎30在虛擬機(jī)20內(nèi)操作,在多核計(jì)算平臺(tái)24上高度并行執(zhí)行。這樣,并行化引擎22可以被視為提供用于處理攝取數(shù)據(jù)的虛擬處理器(虛擬機(jī)20)的大規(guī)模并行多核操作系統(tǒng)。[0037]軟件虛擬機(jī)20的虛擬存儲(chǔ)管理器29提供自組織并允許虛擬機(jī)擴(kuò)展超過(guò)物理內(nèi)存中界限,并且在需要時(shí)綜合使用物理外部存儲(chǔ)器設(shè)備(例如,硬盤驅(qū)動(dòng)器)。這允許內(nèi)存中數(shù)據(jù)庫(kù)27假脫機(jī)輸出至外部存儲(chǔ)器,并同時(shí)進(jìn)行業(yè)務(wù)以擴(kuò)大其內(nèi)存空間以使用持久性存儲(chǔ)裝置23。例如,如果數(shù)據(jù)在物理存儲(chǔ)器界限內(nèi)不適合并推送出數(shù)據(jù)以便存儲(chǔ)和計(jì)算,則虛擬存儲(chǔ)管理器29可以臨時(shí)假脫機(jī)輸入業(yè)務(wù)數(shù)據(jù)。而且,虛擬存儲(chǔ)管理的所有這些服務(wù)在虛擬機(jī)20內(nèi)并行化并被并行化引擎執(zhí)行以便在多核計(jì)算平臺(tái)24上執(zhí)行。[0038]另外,虛擬存儲(chǔ)管理器29管理持久性存儲(chǔ)裝置23以允許從故障中恢復(fù)或允許用戶關(guān)閉系統(tǒng)并使它不用相關(guān)聯(lián)的數(shù)據(jù)丟失來(lái)支持。磁盤持久性實(shí)現(xiàn)保證在出現(xiàn)故障時(shí)不會(huì)出現(xiàn)業(yè)務(wù)丟失。如下文進(jìn)一步詳細(xì)闡述,內(nèi)存中數(shù)據(jù)庫(kù)27的副本可以按可配置的時(shí)間間隔寫入檢查點(diǎn)文件。進(jìn)一步地,在某些情況下,業(yè)務(wù)可以記錄在日志文件中并且業(yè)務(wù)提交只發(fā)生在將條目寫入日志文件之后。為了從系統(tǒng)故障中恢復(fù),虛擬存儲(chǔ)管理器29的持久性子系統(tǒng)可以應(yīng)用最近檢查點(diǎn)文件,然后自最后檢查點(diǎn)起應(yīng)用所有日志條目以重新創(chuàng)建內(nèi)存中數(shù)據(jù)庫(kù)27。這樣,持久性可以被實(shí)現(xiàn)為是ACID(原子性、一致性、獨(dú)立性、持久性)兼容的。[0039]圖3是示出了分解傳入業(yè)務(wù)或事件以由以本文中描述的方式在多核計(jì)算平臺(tái)24的示例性事例的獨(dú)立核上單獨(dú)執(zhí)行的自主任務(wù)進(jìn)行處理的圖2的并行化引擎22的示例性事例的框圖。在該實(shí)例中,多核計(jì)算平臺(tái)24包括處理核52A-52N(“核52”),所述處理核52A-52N分別包括獨(dú)立執(zhí)行單元以執(zhí)行符合核的指令集架構(gòu)的指令。核52表示任意自然數(shù)的核并且每個(gè)核都與索引相關(guān)聯(lián)。例如,核52A可以與索引I相關(guān)聯(lián),核52B可以與索引2相關(guān)聯(lián),依次類推。在一個(gè)實(shí)例中,核52表不256個(gè)核(即,N=256)。核52可以分別被實(shí)現(xiàn)為獨(dú)立集成電路(IC)或者可以組合在分別利用單個(gè)IC(B卩,芯片多處理器)實(shí)現(xiàn)的一個(gè)或多個(gè)多核處理器(或“眾核”處理器)內(nèi)。[0040]組合在多核處理器中的核52子集可以共用處理器組件,同時(shí)子集的每個(gè)核至少保持獨(dú)立執(zhí)行單元以基本上獨(dú)立于子集的其他核執(zhí)行指令。例如,核52A,52B可以共用包括核的多核處理器的第3級(jí)(L3)緩存和存儲(chǔ)器管理單元(MMU)。然而,核52A,52B在該實(shí)例中分別包括獨(dú)立執(zhí)行單元以及獨(dú)立第I級(jí)(LI)第2級(jí)(L2)緩存??蛇x地,核52A,52B可以共用多核處理器的L2/L3緩存以及MMU。在某些情況下,多核計(jì)算平臺(tái)24可以表示插入一個(gè)或多個(gè)底盤中的獨(dú)立主板或處理刀片集群(下文稱為“集群機(jī)”)。每個(gè)集群機(jī)在這些情況下都可以包括分別具有核52子集的一個(gè)或多個(gè)多核處理器。[0041]內(nèi)存中關(guān)系數(shù)據(jù)庫(kù)27的數(shù)據(jù)存儲(chǔ)在包括分區(qū)51A-51N(“分區(qū)51”)的一個(gè)或多個(gè)計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中,分區(qū)51A-51N分別位于獨(dú)立物理位置中并且分別與核52的各核相關(guān)聯(lián)。存儲(chǔ)內(nèi)存中關(guān)系數(shù)據(jù)庫(kù)的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)可以表示非一致存儲(chǔ)器訪問(wèn)(NUMA)架構(gòu)。也就是說(shuō),對(duì)分區(qū)51的每一個(gè)來(lái)說(shuō),核52也許沒(méi)有相等的存儲(chǔ)器訪問(wèn)時(shí)間。在某些情況下,與各核52相關(guān)聯(lián)的分區(qū)51的每一個(gè)表不內(nèi)存中關(guān)系數(shù)據(jù)庫(kù)27具有存儲(chǔ)器訪問(wèn)時(shí)間的分區(qū),該存儲(chǔ)器訪問(wèn)時(shí)間小于或等于核的分區(qū)的任意一個(gè)的存儲(chǔ)器訪問(wèn)時(shí)間。換句話說(shuō),核52可以使用為核提供最低存儲(chǔ)器延遲以減少整個(gè)存儲(chǔ)器延遲的各分區(qū)51。[0042]分區(qū)51的每一個(gè)包括計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),諸如包括存儲(chǔ)器的非瞬態(tài)計(jì)算機(jī)可讀介質(zhì),該存儲(chǔ)器諸如為隨機(jī)存取存儲(chǔ)器(RAM)(包括各種形式的動(dòng)態(tài)RAM(DRAM),例如DDR2SDRAM,或靜態(tài)RAM(SRAM))、閃存、內(nèi)容可尋址存儲(chǔ)器(CAM)、三態(tài)CAM、或可以用于承載或存儲(chǔ)所需指令以及內(nèi)存中關(guān)系數(shù)據(jù)庫(kù)27數(shù)據(jù)并且可由核52訪問(wèn)的其他形式的固定或可移除存儲(chǔ)介質(zhì)。[0043]在某些情況下,分區(qū)51可以分別表示一個(gè)或多個(gè)核52之間共用的計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)的物理地址空間的分區(qū)(即共用存儲(chǔ)器)。例如,核52A可以經(jīng)由存儲(chǔ)器總線(未示出)連接至一個(gè)或多個(gè)DRAM封裝件、模塊和/或提供由多核處理器訪問(wèn)的物理地址空間并存儲(chǔ)分區(qū)51A的數(shù)據(jù)的芯片(也未示出)。盡管分區(qū)51A可以為任意分區(qū)51的核52A提供最短存儲(chǔ)器訪問(wèn)時(shí)間,但是其他分區(qū)51的一個(gè)或多個(gè)對(duì)核52A來(lái)說(shuō)直接可訪問(wèn)。在某些情況下,分區(qū)51還可以或者可選地分別表示對(duì)應(yīng)核52的緩存。例如,分區(qū)51A可以包括核52A的片上緩存(例如,L1/L2/L3緩存或其組合)。[0044]分區(qū)51存儲(chǔ)內(nèi)存中關(guān)系數(shù)據(jù)庫(kù)27的分散數(shù)據(jù)庫(kù)對(duì)象的非重疊分區(qū)。這些對(duì)象可以包括使用底層數(shù)據(jù)結(jié)構(gòu)諸如數(shù)據(jù)對(duì)象的樹(shù)(或“試驗(yàn)”)、平面文件、堆、散列桶、以及B+樹(shù)等進(jìn)行存儲(chǔ)和管理的關(guān)系表或索引。如下面所詳細(xì)描述的,并行化引擎22將各數(shù)據(jù)庫(kù)對(duì)象的獨(dú)立底層數(shù)據(jù)結(jié)構(gòu)分配到分區(qū)51的每一個(gè)并且還將要由數(shù)據(jù)庫(kù)對(duì)象的底層數(shù)據(jù)結(jié)構(gòu)管理的數(shù)據(jù)分配給分區(qū)51中的不同分區(qū),從而有效并行化分區(qū)中的數(shù)據(jù)庫(kù)對(duì)象。因?yàn)楹?2的每一個(gè)從分區(qū)51中的不同分區(qū)讀取并寫入,所以分區(qū)51不受由于多個(gè)核52的并行操作導(dǎo)致的損壞的影響。結(jié)果,在核52上執(zhí)行的任務(wù)在許多情況下可以避免鎖定分區(qū)51。[0045]并行化引擎22的客戶端接口41提供客戶端可以通過(guò)其向加速器13發(fā)出請(qǐng)求的接口。在某些方面,客戶端接口41實(shí)現(xiàn)傳輸層(例如,傳輸控制協(xié)議(TCP)/互聯(lián)網(wǎng)協(xié)議(IP)或用戶數(shù)據(jù)報(bào)協(xié)議(UDPVIP)套接字以從調(diào)用接口的客戶端接收數(shù)據(jù)并將數(shù)據(jù)返回至這些客戶端。[0046]并行化引擎22將傳入業(yè)務(wù)40分解為細(xì)粒度子業(yè)務(wù)42A-42N(“子業(yè)務(wù)42”)并將子業(yè)務(wù)分布至在核52中的與分區(qū)51中的與各子業(yè)務(wù)42的數(shù)據(jù)有關(guān)的一個(gè)分區(qū)邏輯相關(guān)聯(lián)的核上運(yùn)行的多個(gè)執(zhí)行任務(wù)。在某些情況下,分區(qū)51中的相關(guān)分區(qū)是將要返回的數(shù)據(jù)存儲(chǔ)在查詢類型業(yè)務(wù)40中的分區(qū)。在某些情況下,分區(qū)51中的相關(guān)分區(qū)是針對(duì)數(shù)據(jù)庫(kù)索引對(duì)象存儲(chǔ)底層數(shù)據(jù)結(jié)構(gòu),該底層數(shù)據(jù)結(jié)構(gòu)要存儲(chǔ)引用數(shù)據(jù)庫(kù)索引對(duì)象的插入類型業(yè)務(wù)40的數(shù)據(jù)。[0047]并行化引擎22可以自動(dòng)確定加速器13的數(shù)個(gè)核52,而不需要通過(guò)管理器進(jìn)行軟件配置。在確定核52的數(shù)量時(shí),并行化引擎為核52的每一個(gè)創(chuàng)建分區(qū)51中的對(duì)應(yīng)分區(qū)。該特征可以允許再次并行部署至任意數(shù)量的核52,而不需要重新配置底層軟件。[0048]業(yè)務(wù)40是業(yè)務(wù)單元,即,由加速器13接收并執(zhí)行的自包含工作單元以改變內(nèi)存中關(guān)系數(shù)據(jù)庫(kù)27的狀態(tài)。業(yè)務(wù)40可以是ACID兼容的以便在并行執(zhí)行的業(yè)務(wù)之間提供獨(dú)立性并在發(fā)生故障的情況下提供回滾。業(yè)務(wù)40可以包括例如符合說(shuō)明語(yǔ)言語(yǔ)句、查詢語(yǔ)言或查詢編程語(yǔ)言程序、函數(shù)式編程語(yǔ)言程序、或指定要由加速器13執(zhí)行的各工作單元的規(guī)則語(yǔ)言程序的請(qǐng)求字符串。業(yè)務(wù)40包含可以由獨(dú)立執(zhí)行單元執(zhí)行的工作的一個(gè)或多個(gè)子單元作為原子父業(yè)務(wù)40的單獨(dú)子業(yè)務(wù)42。子業(yè)務(wù)42可以包括相對(duì)于內(nèi)存中關(guān)系數(shù)據(jù)庫(kù)27讀取、寫入、操縱并刪除數(shù)據(jù);創(chuàng)建并管理數(shù)據(jù)庫(kù)對(duì)象;創(chuàng)建并管理元數(shù)據(jù);以及算術(shù)和字符串操縱操作。[0049]編譯器任務(wù)44(“編譯器44”)接收業(yè)務(wù)40并使用業(yè)務(wù)語(yǔ)法(“語(yǔ)法47”)將業(yè)務(wù)分解為子業(yè)務(wù)42,該業(yè)務(wù)語(yǔ)法結(jié)合內(nèi)存中關(guān)系數(shù)據(jù)庫(kù)27的數(shù)據(jù)庫(kù)模式45和步進(jìn)程序庫(kù)49來(lái)描述包括業(yè)務(wù)40的傳入業(yè)務(wù)的特定語(yǔ)言。在一個(gè)實(shí)例中,語(yǔ)法47包括一組的一個(gè)或多個(gè)替代法則,每個(gè)替代法則具有與數(shù)據(jù)庫(kù)模式45中的數(shù)據(jù)相匹配的變量,該數(shù)據(jù)庫(kù)模式45描述內(nèi)存中關(guān)系數(shù)據(jù)庫(kù)27的組織。數(shù)據(jù)庫(kù)模式45可以包括數(shù)據(jù)字典。語(yǔ)法47的替代法則的每一個(gè)引用語(yǔ)法47中的額外替代法則或步進(jìn)程序庫(kù)49中的步進(jìn)程序的變量。編譯器44解析業(yè)務(wù)40以生成標(biāo)記化的請(qǐng)求字符串,然后編譯器44鑒于數(shù)據(jù)庫(kù)模式45將語(yǔ)法47應(yīng)用到每個(gè)標(biāo)記化的請(qǐng)求字符串以針對(duì)業(yè)務(wù)產(chǎn)生由步進(jìn)程序庫(kù)49存儲(chǔ)的一個(gè)或多個(gè)系列的步進(jìn)程序。每個(gè)系列的步進(jìn)程序構(gòu)成獨(dú)立任務(wù),在由執(zhí)行任務(wù)連續(xù)執(zhí)行時(shí),該獨(dú)立任務(wù)執(zhí)行子業(yè)務(wù)42中的一個(gè)。這樣,編譯器44將業(yè)務(wù)40分解為子業(yè)務(wù)42以便分布至多個(gè)核52并由多個(gè)核52執(zhí)行。[0050]步進(jìn)程序庫(kù)49包括將可由核52執(zhí)行的多組步進(jìn)程序指令映射到由語(yǔ)法47引用的步進(jìn)程序密鑰的字典。每組步進(jìn)程序指令可以包括核52的預(yù)編譯機(jī)器可執(zhí)行指令。為了執(zhí)行分別由步進(jìn)程序密鑰識(shí)別的一系列步進(jìn)程序(即,任務(wù)),執(zhí)行單元將步進(jìn)程序的步進(jìn)程序密鑰映射到步進(jìn)程序庫(kù)49以獲得對(duì)應(yīng)的映射步進(jìn)程序指令,然后分步執(zhí)行映射的步進(jìn)程序指令。任務(wù)44,46的每一個(gè)以及子執(zhí)行任務(wù)48A-48N(被示為“sub.execution”48A-48N)表示對(duì)應(yīng)子業(yè)務(wù)42的各自一系列步進(jìn)程序。[0051]將業(yè)務(wù)40分解為子業(yè)務(wù)42,編譯器44派生執(zhí)行任務(wù)46以管理子業(yè)務(wù)的執(zhí)行并返回業(yè)務(wù)40的任意所需響應(yīng)。這樣,編譯器44生成執(zhí)行計(jì)劃并派生執(zhí)行任務(wù)46以進(jìn)行執(zhí)行計(jì)劃。執(zhí)行任務(wù)46派生子執(zhí)行任務(wù)48以執(zhí)行對(duì)應(yīng)子業(yè)務(wù)42。在某些情況下,業(yè)務(wù)40可以表示多個(gè)獨(dú)立數(shù)據(jù)庫(kù)業(yè)務(wù)。在這些情況下,編譯器44可以派生獨(dú)立執(zhí)行任務(wù)以管理每個(gè)業(yè)務(wù)或重新使用執(zhí)行任務(wù)46以管理業(yè)務(wù)。[0052]子業(yè)務(wù)42可以分別涉及由內(nèi)存中關(guān)系數(shù)據(jù)庫(kù)27存儲(chǔ)在獨(dú)立分區(qū)51中的不同數(shù)據(jù)。例如,業(yè)務(wù)40可以包括具有字段值的數(shù)據(jù)庫(kù)表的與多個(gè)準(zhǔn)則相匹配的行的查詢請(qǐng)求,例如,具有WHERE從句的SELECTSQL語(yǔ)句,其中數(shù)據(jù)庫(kù)表具有針對(duì)字段定義的對(duì)應(yīng)索引。作為另一實(shí)例,業(yè)務(wù)40可以包括為具有所定義的多個(gè)索引的數(shù)據(jù)庫(kù)表添加行,例如INSERTSQL語(yǔ)句,或利用新字段值更新數(shù)據(jù)庫(kù)表的與一個(gè)或多個(gè)準(zhǔn)則相匹配的所有行,例如UPDATESQL語(yǔ)句的請(qǐng)求。作為另一實(shí)例,業(yè)務(wù)40可以包括返回?cái)?shù)據(jù)庫(kù)表的行字段的所有值的和的請(qǐng)求。執(zhí)行任務(wù)46派生子業(yè)務(wù)42的子執(zhí)行任務(wù)48并基于相關(guān)數(shù)據(jù)將任務(wù)分配至不同核52。執(zhí)行任務(wù)46可以向自身提供存儲(chǔ)器指標(biāo)以使子執(zhí)行任務(wù)48可以返回由此產(chǎn)生的數(shù)據(jù)或狀態(tài)信息。子執(zhí)行任務(wù)48中的任意一項(xiàng)由此可以在子業(yè)務(wù)42的遞歸分解中派生額外子執(zhí)行任務(wù)。[0053]執(zhí)行任務(wù)46將子業(yè)務(wù)42的數(shù)據(jù)輸入至分配算法,諸如散列函數(shù),該分配算法輸出索引或識(shí)別核52中的一個(gè)的其他標(biāo)識(shí)符。對(duì)于上述添加行實(shí)例的請(qǐng)求,執(zhí)行任務(wù)46可以向分配算法輸入完整的行數(shù)據(jù)或行數(shù)據(jù)子集,諸如針對(duì)數(shù)據(jù)庫(kù)表定義索引的字段的行數(shù)據(jù)。分配算法例如可以是MD5、SHA-1或應(yīng)用于輸入數(shù)據(jù)和模量核52的數(shù)量的逐位運(yùn)算,或在提供任意輸入數(shù)據(jù)時(shí)在核的數(shù)量的范圍內(nèi)產(chǎn)生值的任意其他函數(shù)。對(duì)于上述查詢請(qǐng)求和更新語(yǔ)句實(shí)例,執(zhí)行任務(wù)46可以對(duì)查詢請(qǐng)求的準(zhǔn)則進(jìn)行散列處理,然后計(jì)算散列輸出模量核的數(shù)量。利用分配算法輸出的核索引,為子業(yè)務(wù)42提供數(shù)據(jù)庫(kù)對(duì)象數(shù)據(jù),當(dāng)通過(guò)執(zhí)行任務(wù)46派生時(shí),確定執(zhí)行子業(yè)務(wù)的各子執(zhí)行任務(wù)48的核52中的一個(gè)。在所示的實(shí)例中,具有索引I的核52A執(zhí)行子業(yè)務(wù)42A,原因是與子業(yè)務(wù)42A有關(guān)的數(shù)據(jù)使分配算法輸出索引I。具有索引2的核52B執(zhí)行子業(yè)務(wù)42B,原因是與子業(yè)務(wù)42B有關(guān)的數(shù)據(jù)使分配算法輸出索引2,依次類推。這樣,分配算法使數(shù)據(jù)與不同分區(qū)51相關(guān)聯(lián)且還與在根據(jù)分配算法授權(quán)子業(yè)務(wù)48時(shí)訪問(wèn)各分區(qū)的核52相關(guān)聯(lián)。對(duì)于上述所有值實(shí)例的和,執(zhí)行任務(wù)46為每個(gè)核52派生子業(yè)務(wù)42中的一個(gè)。子業(yè)務(wù)的每一個(gè)使各子執(zhí)行任務(wù)48計(jì)算由分區(qū)51中的相關(guān)聯(lián)分區(qū)存儲(chǔ)的數(shù)據(jù)庫(kù)表的數(shù)據(jù)的部分和。[0054]核52的每一個(gè)對(duì)分區(qū)51中的不同分區(qū)起作用。通過(guò)將子執(zhí)行任務(wù)48指示至不同核52以便執(zhí)行,執(zhí)行任務(wù)46使與子執(zhí)行任務(wù)48的各子業(yè)務(wù)42有關(guān)的數(shù)據(jù)由不同的已知分區(qū)51存儲(chǔ)。在所示的實(shí)例中,因?yàn)榕c分區(qū)51B邏輯相關(guān)聯(lián)的核52B執(zhí)行子執(zhí)行任務(wù)48B,所以分區(qū)51B存儲(chǔ)與子業(yè)務(wù)42B有關(guān)的數(shù)據(jù)。技術(shù)因此有效地并行化業(yè)務(wù)并將執(zhí)行任務(wù)分配至為分區(qū)51提供最短存儲(chǔ)器訪問(wèn)時(shí)間的核52,所述分區(qū)51存儲(chǔ)與各執(zhí)行任務(wù)有關(guān)的并行化數(shù)據(jù)。當(dāng)子業(yè)務(wù)42中的對(duì)應(yīng)子業(yè)務(wù)與由多個(gè)分區(qū)51存儲(chǔ)的數(shù)據(jù)有關(guān)時(shí),子執(zhí)行任務(wù)48可以在核52中遷移。這樣,任務(wù)通過(guò)存儲(chǔ)器延遲最靠近任務(wù)所需的數(shù)據(jù)執(zhí)行。[0055]子執(zhí)行任務(wù)48的每一個(gè)包括一系列步進(jìn)程序。為了執(zhí)行步進(jìn)程序,子執(zhí)行任務(wù)48可以將步進(jìn)程序的步進(jìn)程序密鑰映射至步進(jìn)程序庫(kù)49中的對(duì)應(yīng)步進(jìn)程序指令并指示核52執(zhí)行步進(jìn)程序指令。子執(zhí)行任務(wù)48的每一個(gè)在核52中的不同核上執(zhí)行。盡管組合執(zhí)行單個(gè)業(yè)務(wù)40,子執(zhí)行任務(wù)48由此可以基本上并行執(zhí)行。結(jié)果,并行化引擎22可以按業(yè)務(wù)處理速度實(shí)現(xiàn)大幅改善,擴(kuò)展至任意數(shù)量的核52以及業(yè)務(wù)40中固有的并行化級(jí)別。此外,并行化引擎22在單個(gè)系統(tǒng)中利用然而可以經(jīng)由系統(tǒng)的多個(gè)核52訪問(wèn)的整合內(nèi)存中關(guān)系數(shù)據(jù)庫(kù)27實(shí)現(xiàn)此并行化,而不是在分布式系統(tǒng)中實(shí)現(xiàn),該分布式系統(tǒng)劃分多個(gè)數(shù)據(jù)庫(kù)服務(wù)器中的數(shù)據(jù)庫(kù)并由此要求獨(dú)立負(fù)載平衡服務(wù)器或控制器來(lái)平衡多個(gè)分區(qū)中的數(shù)據(jù)庫(kù)數(shù)據(jù)。[0056]子執(zhí)行任務(wù)48可以將各返回值提供給經(jīng)由存儲(chǔ)器指標(biāo)引用的執(zhí)行任務(wù)46,該執(zhí)行任務(wù)46利用子執(zhí)行任務(wù)來(lái)引用。返回值可以包括請(qǐng)求數(shù)據(jù)、部分?jǐn)?shù)據(jù)(例如,部分和)以及執(zhí)行狀態(tài)值(例如,成功、失敗)等。執(zhí)行任務(wù)46利用返回值生成業(yè)務(wù)40的響應(yīng)字符串并經(jīng)由客戶端接口41將響應(yīng)字符串輸出至一個(gè)或多個(gè)請(qǐng)求客戶端,或者執(zhí)行任務(wù)46利用并行化引擎22中的另一個(gè)任務(wù)聚集用于進(jìn)一步處理的返回值。[0057]盡管針對(duì)在內(nèi)存中數(shù)據(jù)庫(kù)上進(jìn)行的操作進(jìn)行描述,但是本發(fā)明的技術(shù)適用于可以從傳入業(yè)務(wù)的并行化處理中受益的其他應(yīng)用程序。例如,業(yè)務(wù)40可以表示具有必須單獨(dú)處理的多個(gè)字段數(shù)據(jù)的分組數(shù)據(jù)單元(PDU)。該字段數(shù)據(jù)可以由編譯器44分解為數(shù)個(gè)子業(yè)務(wù)以便由各子執(zhí)行任務(wù)48執(zhí)行。在某些情況下,業(yè)務(wù)40可以表示符合編程語(yǔ)言,諸如C/C++或Java的代碼片段。在這些情況下,編譯器44可以執(zhí)行用于編程語(yǔ)言的編譯器以動(dòng)態(tài)產(chǎn)生機(jī)器代碼以便通過(guò)子執(zhí)行任務(wù)48直接在各核52上執(zhí)行以處理入站業(yè)務(wù)(例如,分組)。這樣,并行化引擎22可以根據(jù)所接收的代碼片段動(dòng)態(tài)改變執(zhí)行程序以便支持入站/出站數(shù)據(jù)(例如,PDU)的靈活并行化處理。[0058]圖4是示出了虛擬處理器20可以被視為在多核計(jì)算平臺(tái)24的各核上執(zhí)行的多個(gè)協(xié)作虛擬處理器84的概念圖的框圖。如圖4的實(shí)例中所示,虛擬處理器84的每一個(gè)與使用本發(fā)明的技術(shù)并行修改緩存數(shù)據(jù)結(jié)構(gòu)并執(zhí)行加速器13的各個(gè)外部和內(nèi)部功能并行地執(zhí)行任務(wù)82。虛擬處理器84的每一個(gè)提供偽獨(dú)立操作環(huán)境以通過(guò)多核計(jì)算平臺(tái)24的各核調(diào)度并管理對(duì)應(yīng)的一組任務(wù)82A-82N的執(zhí)行。[0059]虛擬處理器84可以提供虛擬處理器管理的統(tǒng)一的平臺(tái)獨(dú)立執(zhí)行環(huán)境;任務(wù)調(diào)度;語(yǔ)句編譯和執(zhí)行;數(shù)據(jù)庫(kù)業(yè)務(wù)處理;日志記錄;虛擬處理器負(fù)載平衡;數(shù)據(jù)庫(kù)持久性、恢復(fù)、及復(fù)制;數(shù)據(jù)攝取及輸出;以及用戶定義行為。虛擬處理器84可以通過(guò)提供對(duì)虛擬處理器的每一個(gè)來(lái)說(shuō)統(tǒng)一的虛擬指令集架構(gòu)(ISA)來(lái)實(shí)現(xiàn)執(zhí)行環(huán)境。虛擬處理器84接收用于執(zhí)行任務(wù)的指令并將指令轉(zhuǎn)化為內(nèi)核級(jí)庫(kù)調(diào)用和/或符合由各核提供的原生ISA的指令。這樣,虛擬處理器提供利用其執(zhí)行任務(wù)82的一組完全并行化的虛擬機(jī)。[0060]在某些實(shí)施例中,多個(gè)核52支持內(nèi)核的單個(gè)事例以及提供虛擬處理器20的過(guò)程。例如,核52A,52B可以執(zhí)行單個(gè)過(guò)程的線程。在這些實(shí)施例中,協(xié)作以提供虛擬處理器的核52A,52B訪問(wèn)由過(guò)程提供的單個(gè)物理或虛擬地址空間。此虛擬處理器還可以稱為過(guò)程虛擬機(jī)。結(jié)果,在協(xié)作核上執(zhí)行的任務(wù)可以通過(guò)寫入共用地址空間并從該共用地址空間讀出來(lái)在核中傳遞消息、遷移并派生其他任務(wù)。[0061]任務(wù)82包括符合由虛擬處理器的每一個(gè)提供的統(tǒng)一的平臺(tái)獨(dú)立編程環(huán)境的一組步進(jìn)程序。步進(jìn)程序可以表示針對(duì)圖3描述的步進(jìn)程序庫(kù)49的步進(jìn)程序的示例性實(shí)施例。也就是說(shuō),虛擬處理器84可以將步進(jìn)程序轉(zhuǎn)化為由核52機(jī)器可執(zhí)行的一組指令。結(jié)果,任務(wù)82的每一個(gè)可以無(wú)縫遷移至虛擬處理器84的任意一個(gè)并在其上執(zhí)行,而不需要重新編譯為新ISA或轉(zhuǎn)化為新編程環(huán)境。[0062]各核52的緩存92存儲(chǔ)與各核相關(guān)聯(lián)的數(shù)據(jù)并且可以表示圖3的分區(qū)51的示例性實(shí)施例。緩存92的每一個(gè)包括緩存表示數(shù)據(jù)庫(kù)對(duì)象,諸如針對(duì)內(nèi)存中關(guān)系數(shù)據(jù)庫(kù)27的表98定義的索引93的總體數(shù)據(jù)結(jié)構(gòu)的數(shù)據(jù)的部分結(jié)構(gòu)94A-94N(“部分結(jié)構(gòu)94”)中的一個(gè)。換句話說(shuō),部分結(jié)構(gòu)94的每一個(gè)緩存索引93的數(shù)據(jù)的非重疊組合。部分結(jié)構(gòu)94和索引93可以包括表、樹(shù)、鏈表及B+樹(shù)等。根據(jù)本發(fā)明的技術(shù),當(dāng)數(shù)據(jù)輸入由虛擬處理器84中的一個(gè)執(zhí)行的分配算法時(shí)得出與包括緩存中的部分結(jié)構(gòu)的核52之一相關(guān)聯(lián)的索引值時(shí),部分結(jié)構(gòu)94緩存索引93的各數(shù)據(jù)。部分結(jié)構(gòu)94可以包括由可以劃分的任意數(shù)據(jù)庫(kù)對(duì)象存儲(chǔ)并管理的數(shù)據(jù)子集,包括表、索引、單獨(dú)表行以及內(nèi)部結(jié)構(gòu)。另外,盡管被示為駐留在緩存92中,但是部分結(jié)構(gòu)94可以分布在任意一個(gè)或多個(gè)計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)內(nèi)。[0063]例如,總體數(shù)據(jù)結(jié)構(gòu)可以是包括數(shù)據(jù)庫(kù)索引字段的分別映射至解析存儲(chǔ)在內(nèi)存中關(guān)系數(shù)據(jù)庫(kù)27中的表98的行的指標(biāo)的字段值的索引。在該實(shí)例中,部分結(jié)構(gòu)94的每一個(gè)包括分配給核52中的包括部分結(jié)構(gòu)的一個(gè)核的字段值-指標(biāo)映射。結(jié)果,在虛擬處理器84上執(zhí)行的任務(wù)82可以通過(guò)對(duì)字段值數(shù)據(jù)進(jìn)行散列處理迅速確定數(shù)據(jù)庫(kù)索引的部分結(jié)構(gòu)94中的字段值-指標(biāo)映射的位置。在某些情況下,核52可以在存儲(chǔ)器空間中針對(duì)對(duì)應(yīng)部分結(jié)構(gòu)94保持將核52的索引值映射到存儲(chǔ)器地址的索引93的陣列或其他相關(guān)數(shù)據(jù)結(jié)構(gòu)。在應(yīng)用分配算法來(lái)確定查找數(shù)據(jù)的索引值時(shí),任務(wù)82將索引值映射至部分結(jié)構(gòu)94中的一個(gè)的存儲(chǔ)器地址并遷移至與核52中與用于執(zhí)行的索引值相關(guān)聯(lián)的一個(gè)核對(duì)應(yīng)的虛擬處理器84。這樣,核52的每一個(gè)與各部分結(jié)構(gòu)94中的數(shù)據(jù)邏輯相關(guān)聯(lián),并且技術(shù)可以通過(guò)增加緩存92中的對(duì)應(yīng)緩存中保留的部分結(jié)構(gòu)94的可能性來(lái)改善緩存性能。在某些情況下,專用任務(wù)管理執(zhí)行任務(wù)的相關(guān)數(shù)據(jù)結(jié)構(gòu)。[0064]在所示的實(shí)例中,核52經(jīng)由系統(tǒng)總線98通信以交換數(shù)據(jù)、消息及任務(wù)。另外,核52經(jīng)由存儲(chǔ)器總線99與包括內(nèi)存中關(guān)系數(shù)據(jù)庫(kù)27的系統(tǒng)存儲(chǔ)器99交接。虛擬處理器84與執(zhí)行加速器13的各個(gè)外部和內(nèi)部功能并行地單獨(dú)執(zhí)行任務(wù)82。任務(wù)82可以是解析系統(tǒng)存儲(chǔ)器99中包括由虛擬處理器84執(zhí)行的一系列步進(jìn)程序的任務(wù)結(jié)構(gòu)的指標(biāo)。任務(wù)82因此可以通過(guò)系統(tǒng)存儲(chǔ)器99地址空間中的地址來(lái)唯一識(shí)別。任務(wù)82的每一個(gè)基本上獨(dú)立于任務(wù)82的每個(gè)其他任務(wù)執(zhí)行。盡管任務(wù)82可以與其他任務(wù)交換數(shù)據(jù),派生額外任務(wù),并且可以從其他任務(wù)中派生而來(lái),但是任務(wù)82的每一個(gè)自確定核52中要執(zhí)行任務(wù)的這個(gè)核。不存在指定任務(wù)82的核位置的監(jiān)察任務(wù)或過(guò)程。協(xié)作任務(wù)82的分層結(jié)構(gòu)因此是自我指示的且是自組織的,從而基本上減少了致力于任務(wù)管理、一致性檢查及其他管理功能的核52周期的數(shù)量。[0065]任務(wù)82可以在虛擬處理器84中遷移并派生額外任務(wù)以在其他虛擬處理器84上執(zhí)行。在所示的實(shí)例中,在虛擬處理器84A上執(zhí)行的任務(wù)82A派生任務(wù)82B以通過(guò)向虛擬處理器84N發(fā)送消息83而在虛擬處理器84N上執(zhí)行。消息83可以為派生任務(wù)82B指定由任務(wù)82A確定的一系列步進(jìn)程序。消息83可選地可以指定解析系統(tǒng)存儲(chǔ)器99中包括要作為任務(wù)82B執(zhí)行的一系列步進(jìn)程序的任務(wù)結(jié)構(gòu)的指標(biāo)。另外,任務(wù)82A隨后復(fù)制自己以便通過(guò)向虛擬處理器84B發(fā)送消息85而在虛擬處理器84B上執(zhí)行。消息85可以指定表示任務(wù)82A的要求執(zhí)行的剩余部分的一系列步進(jìn)程序,或解析系統(tǒng)存儲(chǔ)器99中至少包括由虛擬處理器84B執(zhí)行的剩余的一系列步進(jìn)程序的任務(wù)結(jié)構(gòu)的指標(biāo)。[0066]圖5是額外詳細(xì)地示出了根據(jù)本發(fā)明的技術(shù)執(zhí)行多個(gè)并行任務(wù)的虛擬處理器84A-84N的框圖。虛擬處理器84的每一個(gè)與緩存92A-92N中的一個(gè)相關(guān)聯(lián),原因是虛擬處理器在包括相關(guān)聯(lián)緩存的核上執(zhí)行。盡管針對(duì)虛擬處理器中的單獨(dú)虛擬處理器交替描述了虛擬處理器84的組件和功能,但是虛擬處理器84的每一個(gè)包括基本上類似的組件以執(zhí)行基本上類似的功能。在某些情況下,多個(gè)核可以執(zhí)行提供虛擬處理器84中的一個(gè)的過(guò)程的線程。在這些情況下,該過(guò)程包括核的每一個(gè)的單獨(dú)組件集。例如,單個(gè)虛擬處理器84在這些情況下可以提供運(yùn)行列表104、待機(jī)列表108、交叉隊(duì)列110以及心跳任務(wù)102的四個(gè)事例。在這些情況下,該過(guò)程的調(diào)度器100在單獨(dú)核上執(zhí)行以在過(guò)程上執(zhí)行任務(wù)82。本文引用虛擬處理器因此可選地可以指的是虛擬過(guò)程以及其中提供的組件集中的一個(gè)。[0067]虛擬處理器84A的運(yùn)行列表104A存儲(chǔ)目前排隊(duì)以便由虛擬處理器執(zhí)行的任務(wù)列表。在所示的實(shí)例中,運(yùn)行列表104A是循環(huán)隊(duì)列,該循環(huán)隊(duì)列存儲(chǔ)解析虛擬處理器84A的存儲(chǔ)器空間中的各任務(wù)結(jié)構(gòu)的存儲(chǔ)器指標(biāo)的循環(huán)隊(duì)列。運(yùn)行列表104A,如支持虛擬處理器84A的其他數(shù)據(jù)結(jié)構(gòu)可以存儲(chǔ)在緩存92A中和/或主存儲(chǔ)器中。調(diào)度器IOOA反復(fù)調(diào)用運(yùn)行列表104A中的任務(wù)。調(diào)度器100A利用取決于任務(wù)中的指令的可變時(shí)分來(lái)執(zhí)行時(shí)分多路復(fù)用。調(diào)度器100A可以派生單獨(dú)線程以便分別執(zhí)行運(yùn)行列表104A中的一個(gè)任務(wù)??蛇x地,調(diào)度器100A可以將單個(gè)工作線程用于運(yùn)行列表104A。除了用于執(zhí)行運(yùn)行列表104A的線程之外,調(diào)度器100A還可以使用額外線程來(lái)執(zhí)行專門任務(wù)。調(diào)度器100A調(diào)用運(yùn)行列表104A的任務(wù)以對(duì)于時(shí)分執(zhí)行,然后調(diào)用104A的下一個(gè)任務(wù)。因?yàn)檫\(yùn)行列表104A是循環(huán)隊(duì)列,所以調(diào)度器100A從列表頭至列表尾反復(fù)執(zhí)行運(yùn)行列表的任務(wù),然后在完成在列表尾執(zhí)行任務(wù)的至少一部分時(shí),再次在列表頭執(zhí)行任務(wù)。[0068]任務(wù)在虛擬處理器84中遷移使得最初在虛擬處理器84中的一個(gè)上執(zhí)行的任務(wù)可以稍后在另一個(gè)虛擬處理器上執(zhí)行。另外,在虛擬處理器84中的一個(gè)上執(zhí)行的任務(wù)可以派生新任務(wù)以便在虛擬處理器中的另一個(gè)上執(zhí)行。在所示的實(shí)例中,任務(wù)112通過(guò)向消息114中的在該實(shí)例中包括存儲(chǔ)器寫入操作的交叉隊(duì)列IlOB獨(dú)自添加存儲(chǔ)器指標(biāo)而從虛擬處理器84A遷移至虛擬處理器84B??梢噪S時(shí)訪問(wèn)虛擬處理器84的運(yùn)行列表104,并且除了涉及心跳任務(wù)102的操作之外,虛擬處理器84并行地獨(dú)立運(yùn)行并且不同步執(zhí)行任務(wù)。在某些情況下,虛擬處理器84A,84B可以在單獨(dú)集群機(jī)上執(zhí)行。結(jié)果,虛擬處理器84A,84B中沒(méi)有一個(gè)可以訪問(wèn)另一個(gè)的物理存儲(chǔ)器空間。在這些情況下,消息114可以包括基于網(wǎng)絡(luò)的消息諸如套接字寫入,或十字指令桿,底板或其他切換消息等。[0069]由于虛擬處理器20的NUMA架構(gòu),調(diào)度器100可以在虛擬處理器84中遷移任務(wù)82,而虛擬處理器84在對(duì)緩存92具有非一致存儲(chǔ)器訪問(wèn)時(shí)間的核52上執(zhí)行。這樣,調(diào)度器100可以提供NUMA感知調(diào)度以減少存儲(chǔ)器訪問(wèn)的整體延遲并由此進(jìn)一步改善性能。[0070]為了防止由于異步添加新任務(wù)而導(dǎo)致運(yùn)行列表104損壞,虛擬處理器84包括臨時(shí)存儲(chǔ)零個(gè)或多個(gè)新任務(wù)以添加至運(yùn)行列表104的各交叉隊(duì)列110。在操作中,在虛擬處理器84A上執(zhí)行的任務(wù)112確定其對(duì)虛擬處理器84B更有效地起作用并通過(guò)鎖定交叉隊(duì)列IlOB并將任務(wù)112的存儲(chǔ)器指標(biāo)推送至交叉隊(duì)列來(lái)將自身遷移至虛擬處理器84B。為了在虛擬處理器84B上派生新任務(wù),在虛擬處理器84A上執(zhí)行的任務(wù)112可以在存儲(chǔ)器中創(chuàng)建新任務(wù)數(shù)據(jù)結(jié)構(gòu),然后將新任務(wù)數(shù)據(jù)結(jié)構(gòu)的存儲(chǔ)器指標(biāo)推送至交叉隊(duì)列110B。調(diào)度器100B在虛擬處理器84B中運(yùn)行以彈出交叉隊(duì)列IlOB的頭任務(wù)并將彈出的任務(wù)插在運(yùn)行列表104B上。通過(guò)以這種方式使用交叉隊(duì)列110,虛擬處理器84可以避免鎖定各運(yùn)行列表104以讀取/寫入運(yùn)行列表,從而避免由于并行執(zhí)行的單獨(dú)虛擬處理器的并行任務(wù)執(zhí)行及遷移/派生導(dǎo)致的碰撞。在某些情況下,為了減少與交叉隊(duì)列IlOA碰撞的可能性,虛擬處理器84A可以包括多個(gè)交叉隊(duì)列,例如系統(tǒng)中的每個(gè)虛擬處理器一個(gè)交叉隊(duì)列。[0071]在某些情況下,任務(wù)112可以遷移至虛擬處理器84B,原因是由任務(wù)執(zhí)行的分配算法任務(wù)112要求訪問(wèn)與虛擬處理器84B相關(guān)聯(lián)的緩存92B的部分結(jié)構(gòu)94B中的對(duì)象。如上文針對(duì)圖4所述,部分結(jié)構(gòu)94存儲(chǔ)內(nèi)存中關(guān)系數(shù)據(jù)庫(kù)27的整個(gè)數(shù)據(jù)庫(kù)對(duì)象的數(shù)據(jù)子集。在某些情況下,部分結(jié)構(gòu)94可以表示交替地或另外存儲(chǔ)至主存儲(chǔ)器的部分結(jié)構(gòu)。為了避免在通過(guò)在虛擬處理器84上執(zhí)行的任務(wù)進(jìn)行的訪問(wèn)期間鎖定部分結(jié)構(gòu)94,訪問(wèn)各部分結(jié)構(gòu)可以局限于在虛擬處理器84中與部分結(jié)構(gòu)相關(guān)聯(lián)的這個(gè)虛擬處理器上執(zhí)行的任務(wù)。任務(wù)112因此必須對(duì)虛擬處理器84B起作用以訪問(wèn)部分結(jié)構(gòu)94B。盡管在許多環(huán)境下任務(wù)避免鎖定部分結(jié)構(gòu)并且盡管多個(gè)不同的任務(wù)可以共用整個(gè)數(shù)據(jù)庫(kù)對(duì)象,該約束仍然確保通過(guò)任務(wù)訪問(wèn)部分結(jié)構(gòu)94是安全、可靠的。而且,在不同虛擬處理器84上執(zhí)行的多個(gè)任務(wù)可以通過(guò)單獨(dú)訪問(wèn)一起構(gòu)成數(shù)據(jù)庫(kù)對(duì)象的不同部分結(jié)構(gòu)94來(lái)并行訪問(wèn)整個(gè)數(shù)據(jù)庫(kù)對(duì)象。然而,當(dāng)任務(wù)112無(wú)法在分配的時(shí)分完成對(duì)部分資源94中的一個(gè)的訪問(wèn)時(shí),任務(wù)112可以鎖定部分資源以確保部分資源數(shù)據(jù)對(duì)任務(wù)來(lái)說(shuō)保持穩(wěn)定且一致直至下一時(shí)分為止??蛇x地,任務(wù)112可以只鎖定由部分結(jié)構(gòu)94中的一個(gè)而不是完整結(jié)構(gòu)存儲(chǔ)的項(xiàng)目。這樣,后續(xù)任務(wù)可以修改部分結(jié)構(gòu)的任意非鎖定項(xiàng)目。[0072]在某些情況下,運(yùn)行列表104A的任務(wù)可能需要不能立即可用的資源或者另外需要等待依賴的滿意度以便繼續(xù)執(zhí)行。為了避免擠滿執(zhí)行虛擬處理器84A的相關(guān)聯(lián)核,這些任務(wù)通過(guò)與相關(guān)聯(lián)的喚醒時(shí)間一起將自身添加至待機(jī)列表108A而可以休眠。待機(jī)列表108A存儲(chǔ)通過(guò)喚醒時(shí)間在排序數(shù)據(jù)結(jié)構(gòu)中排序的待機(jī)任務(wù),諸如隊(duì)列、表、鏈表或樹(shù)數(shù)據(jù)結(jié)構(gòu)。待機(jī)列表108A中的每個(gè)節(jié)點(diǎn)由此是待機(jī)任務(wù)的任務(wù)結(jié)構(gòu)的存儲(chǔ)器指標(biāo)。[0073]虛擬處理器84A的報(bào)警任務(wù)以及硬件計(jì)時(shí)器管理待機(jī)列表108A中的待機(jī)任務(wù)。報(bào)警任務(wù)利用待機(jī)列表108A中的最早任務(wù)的喚醒時(shí)間值來(lái)編程硬件計(jì)時(shí)器。當(dāng)硬件計(jì)時(shí)器激發(fā)時(shí),報(bào)警任務(wù)觸發(fā)并將待機(jī)列表108A中的最早任務(wù)添加至運(yùn)行列表104A。在某些情況下,報(bào)警任務(wù)修改運(yùn)行列表104A以確保調(diào)度器100A接下來(lái)調(diào)用運(yùn)行列表內(nèi)的任務(wù)中的最早任務(wù)。報(bào)警任務(wù)然后利用下一個(gè)最早任務(wù)的喚醒時(shí)間值根據(jù)待機(jī)列表108A對(duì)硬件計(jì)時(shí)器重新編程。硬件計(jì)時(shí)器可以利用速率超過(guò)IGHz的CPU時(shí)鐘進(jìn)行驅(qū)動(dòng)并因此具有亞微秒周期性。結(jié)果,報(bào)警任務(wù)結(jié)合硬件計(jì)時(shí)器可以實(shí)現(xiàn)細(xì)粒度任務(wù)待機(jī)管理以及虛擬處理器操作行為,并因此可以通過(guò)確保任務(wù)在其相關(guān)聯(lián)的喚醒時(shí)間值之后在短延遲內(nèi)喚醒并執(zhí)行來(lái)增強(qiáng)資源的使用。[0074]虛擬處理器84按預(yù)定義速率執(zhí)行各心跳任務(wù)102A-102N(“心跳任務(wù)102”)以在由心跳速率限定的每個(gè)時(shí)期同步虛擬處理器的操作位置一次。在某些情況下,預(yù)定義速率為1Hz。例如,調(diào)度器100A調(diào)用運(yùn)行列表104A的任務(wù),并且每秒執(zhí)行心跳任務(wù)102A—次。為了同步虛擬處理器84的操作位置,心跳任務(wù)102可以分別訪問(wèn)并減小虛擬處理器的所有事例中共用的原子變量。原子變量可以利用數(shù)個(gè)虛擬處理器84(與系統(tǒng)中核的數(shù)量對(duì)應(yīng))初始化。心跳任務(wù)102的每一個(gè)測(cè)試零的原子變量。當(dāng)原子變量非零時(shí),心跳任務(wù)等待信號(hào)。當(dāng)原子變量由于最終心跳任務(wù)在特定周期內(nèi)的操作而達(dá)到零時(shí),最終心跳任務(wù)可以發(fā)起一個(gè)或多個(gè)用戶級(jí)任務(wù)或信號(hào)通知虛擬處理器84的每一個(gè)以恢復(fù)各運(yùn)行列表104的執(zhí)行。這樣,最終心跳任務(wù)將所有任務(wù)的階段改為最終心跳任務(wù)的心跳(即,系統(tǒng)范圍的信號(hào))。心跳任務(wù)102因此提供已知每個(gè)虛擬處理器84的狀態(tài)的時(shí)窗。任務(wù)可以利用該時(shí)窗來(lái)執(zhí)行系統(tǒng)范圍的操作。[0075]例如,任務(wù)可以將任務(wù)鉤子(例如,存儲(chǔ)器中的任務(wù)結(jié)構(gòu)的存儲(chǔ)器指標(biāo))設(shè)置在心跳任務(wù)102的每一個(gè)中。在周期內(nèi)從最終心跳任務(wù)接收信號(hào)時(shí),等待信號(hào)的心跳任務(wù)的每一個(gè)開(kāi)始執(zhí)行并執(zhí)行鉤狀任務(wù)。鉤狀任務(wù)由此在由虛擬處理器84的每一個(gè)同時(shí)執(zhí)行時(shí),提供系統(tǒng)范圍的操作。在某些情況下,周期內(nèi)的最終心跳任務(wù)單獨(dú)執(zhí)行鉤狀任務(wù)。該技術(shù)可以用于擴(kuò)展存儲(chǔ)器,執(zhí)行數(shù)據(jù)庫(kù)檢查點(diǎn)寫入及讀取操作或其他周期任務(wù)諸如數(shù)據(jù)庫(kù)日志記錄、記錄及存檔。任務(wù)可以等待并使用監(jiān)控器、共用存儲(chǔ)器或信號(hào)燈等信號(hào)通知彼此。[0076]運(yùn)行列表104內(nèi)的某些任務(wù)不與緩存92(或另一存儲(chǔ)器分區(qū))相關(guān)并因此可以在虛擬處理器84中的任意一個(gè)上運(yùn)行。這些任務(wù)可以包括任務(wù)結(jié)構(gòu)中指示任務(wù)可移動(dòng)的標(biāo)志。在指示任務(wù)的下一步進(jìn)程序是否必須在虛擬處理器84的特定虛擬處理器上執(zhí)行的每個(gè)步進(jìn)程序之后,任務(wù)可以自修改標(biāo)志。[0077]為了提高虛擬處理器84的利用率并減少虛擬處理器84的阻塞,任務(wù)自平衡以更加平等地分布運(yùn)行列表104的每一個(gè)的數(shù)個(gè)任務(wù),并因此分布虛擬處理器84的每一個(gè)的數(shù)個(gè)任務(wù)。在某些情況下,在執(zhí)行任務(wù)的每個(gè)步進(jìn)程序之后,任務(wù)確定各運(yùn)行列表104的長(zhǎng)度以及相鄰運(yùn)行列表104的長(zhǎng)度。例如,在執(zhí)行任務(wù)的步進(jìn)程序之后,任務(wù)可以確定運(yùn)行列表104B(B卩,由其存儲(chǔ)的數(shù)個(gè)任務(wù))的長(zhǎng)度以及運(yùn)行列表104A,104C的長(zhǎng)度。如果任務(wù)確定運(yùn)行列表104B的長(zhǎng)度比運(yùn)行列表104A,104C的任意一個(gè)的長(zhǎng)度高閾值,則任務(wù)自身遷移,如果可移動(dòng),則遷移至運(yùn)行列表104A,104C中較短的一個(gè)。在某些情況下,當(dāng)執(zhí)行再平衡時(shí),任務(wù)負(fù)責(zé)甚至更遠(yuǎn)的鄰近部分,即,不只是最近鄰近部分。這樣,任務(wù)以平衡的方式通過(guò)將自身朝輕載虛擬處理器84(以及對(duì)應(yīng)核)遷移來(lái)自主進(jìn)行自組織。任務(wù)可以通過(guò)交換消息中的長(zhǎng)度或讀取共用存儲(chǔ)器值等來(lái)確定相鄰運(yùn)行列表的長(zhǎng)度。[0078]圖6是示出了調(diào)用運(yùn)行列表104A的多個(gè)任務(wù)120A-120K(“任務(wù)120”)以根據(jù)本發(fā)明中描述的技術(shù)對(duì)任務(wù)進(jìn)行時(shí)分復(fù)用的調(diào)度器100A的框圖。該實(shí)例中的運(yùn)行列表104A被實(shí)現(xiàn)為且被示為循環(huán)鏈表。因此,任務(wù)120A是運(yùn)行列表104A的頭任務(wù)并接著任務(wù)120B。任務(wù)120K是運(yùn)行列表104A的尾任務(wù)并接著任務(wù)120A。任務(wù)120的每一個(gè)包括用于執(zhí)行的一個(gè)或多個(gè)步進(jìn)程序的列表。例如,任務(wù)120A列出步進(jìn)程序UOA1-UOA515步進(jìn)程序是一個(gè)或多個(gè)指令的自包含區(qū)塊,諸如函數(shù)或函數(shù)引用,便于虛擬處理器84執(zhí)行。步進(jìn)程序可以調(diào)用由在系統(tǒng)上執(zhí)行的程序限定的其他函數(shù)作為執(zhí)行元素。[0079]任務(wù)120的步進(jìn)程序可以包括可變數(shù)量及類型的指令并由此具有不同執(zhí)行長(zhǎng)度。換句話說(shuō),執(zhí)行任務(wù)120的步進(jìn)程序的每一個(gè)所需的時(shí)間可以因步進(jìn)程序不同而不同。任務(wù)120的步進(jìn)程序以原子的方式執(zhí)行,即從步進(jìn)程序的第一指令至步進(jìn)程序的最后指令執(zhí)行而不中斷。在完成運(yùn)行列表104A中的任務(wù)120之一的步進(jìn)程序之后,調(diào)度器100A調(diào)用運(yùn)行列表中的任務(wù)120的下一個(gè)任務(wù)的下一步進(jìn)程序。這樣,調(diào)用任務(wù)120中的不同任務(wù)的調(diào)度器100A通過(guò)“步進(jìn)式切片”任務(wù)來(lái)執(zhí)行時(shí)分復(fù)用。也就是說(shuō),與“時(shí)間切片”任務(wù)120使得通過(guò)內(nèi)核為每個(gè)任務(wù)提供較短時(shí)間周期相比,任務(wù)120的每一個(gè)繼續(xù)執(zhí)行直至任務(wù)完成步進(jìn)程序,任務(wù)在該較短時(shí)間周期內(nèi)可以執(zhí)行直至被搶占。步進(jìn)式切片由此確保任務(wù)120的步進(jìn)程序的原子性。[0080]任務(wù)120的每一個(gè)保持存儲(chǔ)器指標(biāo)、步進(jìn)程序索引或在相關(guān)聯(lián)任務(wù)中執(zhí)行的下一步進(jìn)程序的其他引用。當(dāng)調(diào)度器100A調(diào)用任務(wù)時(shí),任務(wù)執(zhí)行下一步進(jìn)程序,然后休眠以返回控制給調(diào)度器100A,該調(diào)度器100A調(diào)用運(yùn)行列表104A中的下一任務(wù)。例如,任務(wù)120K執(zhí)行任務(wù)120K的步進(jìn)程序120C2,然后返回控制給調(diào)度器100A,該調(diào)度器100A調(diào)用任務(wù)120A。任務(wù)120A然后執(zhí)行步進(jìn)程序120A3。在某些情況下,單個(gè)執(zhí)行線程使用上文描述的步進(jìn)式切片技術(shù)來(lái)執(zhí)行任務(wù)120的每一個(gè)。單個(gè)執(zhí)行線程然而可以在每個(gè)步進(jìn)程序之后,或在執(zhí)行運(yùn)行列表的尾任務(wù)120K的步進(jìn)程序之后休眠,例如以便允許執(zhí)行非運(yùn)行列表任務(wù)的線程。[0081]細(xì)粒度調(diào)度器100使虛擬處理器84能夠執(zhí)行改變復(fù)雜性和持續(xù)時(shí)間的多個(gè)業(yè)務(wù)。一般來(lái)說(shuō),業(yè)務(wù)可以表征為修改數(shù)據(jù)庫(kù)(例如,SQLINSERT、DELETE及UPDATE語(yǔ)句)或表征為查詢數(shù)據(jù)庫(kù)(例如,SQLSELECT語(yǔ)句)。這些業(yè)務(wù)可以進(jìn)一步根據(jù)其執(zhí)行持續(xù)時(shí)間來(lái)表征。例如,更新單行的業(yè)務(wù)可以被視為短時(shí)間運(yùn)行業(yè)務(wù),而查詢整個(gè)數(shù)據(jù)庫(kù)和/或執(zhí)行復(fù)雜/擴(kuò)展計(jì)算的業(yè)務(wù)可以被視為長(zhǎng)時(shí)間運(yùn)行業(yè)務(wù)。作為更進(jìn)一步的實(shí)例,基于SELECTFUTURE(下面進(jìn)一步詳細(xì)地描述的)的查詢業(yè)務(wù)可以被視為永久地或“連續(xù)地”運(yùn)行業(yè)務(wù)。調(diào)度器100可以允許通過(guò)虛擬處理器84來(lái)交錯(cuò)短時(shí)間運(yùn)行業(yè)務(wù)、長(zhǎng)時(shí)間運(yùn)行業(yè)務(wù)及連續(xù)運(yùn)行業(yè)務(wù)的各個(gè)組合的執(zhí)行。結(jié)合擴(kuò)展超過(guò)物理內(nèi)存中界限并擴(kuò)展至任意數(shù)量的核的能力,技術(shù)具體在從大量客戶端連接接收大量業(yè)務(wù)的上下文中可以支持工作負(fù)載混合中包括改變執(zhí)行持續(xù)時(shí)間的業(yè)務(wù)的豐富而復(fù)雜的查詢。[0082]圖7A-7B是示出了支持圖1的業(yè)務(wù)數(shù)據(jù)加速器13的并行化操作的示例性任務(wù)的框圖。盡管任務(wù)被示為屬于單獨(dú)組,例如網(wǎng)絡(luò)任務(wù)140,任務(wù)中的每一個(gè)基本上獨(dú)立于彼此操作,如本文所述。[0083]網(wǎng)絡(luò)任務(wù)140支持與客戶端交接且另外啟用協(xié)作以實(shí)現(xiàn)一個(gè)或多個(gè)加速器13的多個(gè)集群機(jī)之間的通信。在該實(shí)例中,套接字是集群機(jī)之間以及業(yè)務(wù)數(shù)據(jù)加速器與一個(gè)或多個(gè)客戶端之間的主要通信接口。在獨(dú)立機(jī)器或集群機(jī)上執(zhí)行的套接字應(yīng)答任務(wù)140A的實(shí)例偵聽(tīng)由客戶端下發(fā)至系統(tǒng)的套接字連接請(qǐng)求。在接收套接字連接請(qǐng)求時(shí),套接字應(yīng)答任務(wù)140A派生特定于套接字連接請(qǐng)求的套接字讀取器任務(wù)140B和套接字寫入器任務(wù)140C的新事例。新套接字讀取器任務(wù)140B和套接字寫入器任務(wù)140C協(xié)作以完成套接字連接握手并建立套接字連接。新套接字讀取器任務(wù)140B偵聽(tīng)來(lái)自對(duì)應(yīng)客戶端的服務(wù)請(qǐng)求。這樣,可以由多個(gè)核并行執(zhí)行的單獨(dú)任務(wù)實(shí)現(xiàn)與系統(tǒng)的多個(gè)并行連接點(diǎn)。技術(shù)因此可以使單個(gè)系統(tǒng)能夠處理幾十萬(wàn)并行連接。[0084]異步完成任務(wù)140D通過(guò)啟用異步套接字發(fā)送和接收操作并促進(jìn)高性能客戶端請(qǐng)求/響應(yīng)輸入/輸出(I/o)來(lái)支持套接字讀取器任務(wù)140B和套接字寫入器任務(wù)140C。系統(tǒng)可以為每個(gè)套接字連接派生新異步完成任務(wù)140D。集群機(jī)可以使用網(wǎng)絡(luò)任務(wù)140彼此交接。主機(jī)互連任務(wù)140F的事例在集群機(jī)的每一個(gè)上執(zhí)行以便在虛擬處理器事例之間建立套接字連接。主機(jī)互連任務(wù)140F例如可以在集群的駐留在單獨(dú)集群機(jī)上的所有虛擬處理器之間創(chuàng)建全網(wǎng)格的連續(xù)連接套接字。可選地,主機(jī)互連任務(wù)140F可以根據(jù)需要在這些虛擬處理器之間建立連接以便執(zhí)行客戶端請(qǐng)求并促進(jìn)系統(tǒng)效率。為了建立新套接字連接,該實(shí)例中的主機(jī)互連任務(wù)140F為新套接字連接派生套接字連接任務(wù)140E的新事例,該套接字連接任務(wù)140E由此派生套接字寫入器任務(wù)140C和套接字讀取器任務(wù)140B的新事例。[0085]語(yǔ)句執(zhí)行任務(wù)142包括表示上文針對(duì)圖3描述的任務(wù)的示例性實(shí)施例。具體地,編譯器任務(wù)142A、語(yǔ)句執(zhí)行任務(wù)142B以及子執(zhí)行任務(wù)142可以分別表示編譯器任務(wù)44、執(zhí)行任務(wù)46以及任意子執(zhí)行任務(wù)48的示例性實(shí)施例。[0086]系統(tǒng)啟動(dòng)任務(wù)146A根據(jù)可配置參數(shù)來(lái)初始化系統(tǒng)并管理從持久性存儲(chǔ)裝置加載內(nèi)存中關(guān)系數(shù)據(jù)庫(kù)27的至少一部分。系統(tǒng)關(guān)閉任務(wù)146B將包括在操作系統(tǒng)期間配置的數(shù)據(jù)的系統(tǒng)數(shù)據(jù)存儲(chǔ)到持久性存儲(chǔ)裝置以便稍后恢復(fù)。另外,系統(tǒng)關(guān)閉任務(wù)146B可以管理將內(nèi)存中關(guān)系數(shù)據(jù)庫(kù)27的至少一部分寫入持久性存儲(chǔ)裝置。[0087]周期語(yǔ)句任務(wù)148A可以配置為定期執(zhí)行操作。例如,周期語(yǔ)句任務(wù)148A的事例可以配置為定期從記錄表中刪除經(jīng)保存以促進(jìn)ACID依從性的先前執(zhí)行語(yǔ)句。該實(shí)例是通過(guò)移除多余數(shù)據(jù)來(lái)使系統(tǒng)成流線型的內(nèi)務(wù)處理形式。用戶定義任務(wù)148B可以利用用戶指令進(jìn)行配置以針對(duì)內(nèi)存中關(guān)系數(shù)據(jù)庫(kù)27執(zhí)行自定義用戶應(yīng)用程序。這樣,消費(fèi)者訪問(wèn)可以利用系統(tǒng)的內(nèi)部執(zhí)行模式,并且本發(fā)明的技術(shù)提供一種消費(fèi)者可以將自定義任務(wù)添加到其中的高度可擴(kuò)展系統(tǒng)。本文公開(kāi)的任務(wù)模型通過(guò)簡(jiǎn)單添加額外任務(wù)而使消費(fèi)者和開(kāi)發(fā)者能夠逐步增加系統(tǒng)的復(fù)雜性。[0088]并行化引擎22提供一系列內(nèi)部服務(wù)。這包括會(huì)話管理、業(yè)務(wù)管理、模式控制、并行化容器、鎖定、解析、錯(cuò)誤管理及動(dòng)態(tài)機(jī)器代碼生成。這些可以由工具箱或其他應(yīng)用程序編程接口(API)訪問(wèn)以修改并行化引擎22的操作。[0089]內(nèi)務(wù)處理任務(wù)144管理資源并管理系統(tǒng)。垃圾收集器任務(wù)144D執(zhí)行垃圾收集以回收被對(duì)象占用的存儲(chǔ)器,所述對(duì)象不再由系統(tǒng)中的任意過(guò)程引用。垃圾收集任務(wù)144負(fù)責(zé)最終從內(nèi)存中關(guān)系數(shù)據(jù)庫(kù)27的結(jié)構(gòu)(例如,索引)中移除行字段數(shù)據(jù)并回收存儲(chǔ)器。語(yǔ)句執(zhí)行任務(wù)142B響應(yīng)于傳入刪除語(yǔ)句從數(shù)據(jù)庫(kù)中移除行。然而,一旦行被標(biāo)記為邏輯刪除,語(yǔ)句執(zhí)行任務(wù)142B將刪除行的指標(biāo)插入要被垃圾收集任務(wù)144D移除/回收的行的列表。垃圾收集器任務(wù)144D將分配算法應(yīng)用到引用該行的內(nèi)存中關(guān)系數(shù)據(jù)庫(kù)27的每個(gè)索引的每個(gè)行。垃圾收集器任務(wù)144D從它所在的每個(gè)索引中移除行,然后刪除行結(jié)構(gòu),由此回收行占用的存儲(chǔ)器。[0090]心跳任務(wù)144B和報(bào)警任務(wù)144E可以表示圖5的心跳任務(wù)102的示例性實(shí)施例。報(bào)警任務(wù)144E的事例根據(jù)針對(duì)圖5描述的技術(shù)分別管理虛擬處理器的硬件計(jì)時(shí)器和待機(jī)列表。許可任務(wù)144C確保系統(tǒng)利用有效許可證操作。統(tǒng)計(jì)任務(wù)144F測(cè)量系統(tǒng)的性能和其他度量并經(jīng)由套接字寫入器任務(wù)140C的事例將統(tǒng)計(jì)傳遞給管理實(shí)體。例如,統(tǒng)計(jì)任務(wù)144F的實(shí)例可以通過(guò)線程時(shí)間步長(zhǎng)執(zhí)行,監(jiān)控系統(tǒng)中任務(wù)的數(shù)量,監(jiān)控客戶端請(qǐng)求吞吐量或響應(yīng)時(shí)間,并監(jiān)控客戶端請(qǐng)求到達(dá)率。監(jiān)控任務(wù)144A定期檢查系統(tǒng)中的所有其他任務(wù)的狀態(tài)以上報(bào)錯(cuò)誤/警告并促進(jìn)錯(cuò)誤糾正/處理。[0091]磁盤任務(wù)150為內(nèi)存中關(guān)系數(shù)據(jù)庫(kù)27提供持久性依從性。日志寫入器任務(wù)150A將執(zhí)行語(yǔ)句的狀態(tài)寫入業(yè)務(wù)日志152、計(jì)算機(jī)可讀存儲(chǔ)設(shè)備。在業(yè)務(wù)出現(xiàn)故障或其他數(shù)據(jù)庫(kù)相關(guān)出現(xiàn)操作故障時(shí),日志讀取器任務(wù)150C讀取先前執(zhí)行語(yǔ)句的寫入狀態(tài),日志恢復(fù)任務(wù)150B如果需要可恢復(fù)狀態(tài)至存儲(chǔ)器以使內(nèi)存中關(guān)系數(shù)據(jù)庫(kù)27恢復(fù)已知狀態(tài)。周期語(yǔ)句任務(wù)148A的事例可以定期確定過(guò)時(shí)的日志條目并從業(yè)務(wù)日志152中刪除這些條目。[0092]檢查點(diǎn)相關(guān)任務(wù)至/自系統(tǒng)檢查點(diǎn)154、計(jì)算機(jī)可讀存儲(chǔ)設(shè)備保存并恢復(fù)內(nèi)存中關(guān)系數(shù)據(jù)庫(kù)27的部分。檢查點(diǎn)獲取任務(wù)150D確定一部分存儲(chǔ)器寫入磁盤并指示檢查點(diǎn)寫入器任務(wù)150E將作為檢查點(diǎn)的部分寫入磁盤。在發(fā)生數(shù)據(jù)庫(kù)相關(guān)故障時(shí),檢查點(diǎn)恢復(fù)任務(wù)150F確定存儲(chǔ)器的一個(gè)或多個(gè)部分從先前寫入檢查點(diǎn)中恢復(fù)并指示檢查點(diǎn)讀取器任務(wù)150G讀取檢查點(diǎn)并將檢查點(diǎn)數(shù)據(jù)重新插入合適的存儲(chǔ)器位置。這使日志讀取器任務(wù)150C只讀取并恢復(fù)在存儲(chǔ)檢查點(diǎn)至系統(tǒng)檢查點(diǎn)154的檢查點(diǎn)獲取任務(wù)150D之后應(yīng)用的這些業(yè)務(wù)。[0093]頁(yè)面寫入器任務(wù)150H和頁(yè)面讀取器任務(wù)1501將內(nèi)存中數(shù)據(jù)分頁(yè)至由數(shù)據(jù)存儲(chǔ)器156表示的輔助存儲(chǔ)裝置,計(jì)算機(jī)可讀存儲(chǔ)設(shè)備,以擴(kuò)展被內(nèi)存中關(guān)系數(shù)據(jù)庫(kù)27使用的存儲(chǔ)器。頁(yè)面寫入器任務(wù)150H識(shí)別內(nèi)存中關(guān)系數(shù)據(jù)庫(kù)27內(nèi)的數(shù)據(jù)庫(kù)對(duì)象的陳舊項(xiàng)目(例如,行),并在識(shí)別陳舊項(xiàng)目時(shí),將陳舊項(xiàng)目的數(shù)據(jù)寫入數(shù)據(jù)存儲(chǔ)器156。另外,頁(yè)面寫入器任務(wù)150H隨后刪除陳舊項(xiàng)目。當(dāng)在系統(tǒng)上執(zhí)行的任務(wù)要求訪問(wèn)寫入數(shù)據(jù)存儲(chǔ)器156的項(xiàng)目時(shí),頁(yè)面讀取器任務(wù)1501從數(shù)據(jù)存儲(chǔ)器讀取項(xiàng)目并使用業(yè)務(wù)將項(xiàng)目的數(shù)據(jù)插入內(nèi)存中關(guān)系數(shù)據(jù)庫(kù)27。[0094]記錄寫入器任務(wù)150J將系統(tǒng)操作記錄至系統(tǒng)記錄158,計(jì)算機(jī)可讀存儲(chǔ)設(shè)備。存檔任務(wù)150K識(shí)別被后續(xù)檢查點(diǎn)拋棄的日志條目和/或檢查點(diǎn)并將數(shù)據(jù)寫入由檔案160表示的三級(jí)存儲(chǔ)裝置,計(jì)算機(jī)可讀存儲(chǔ)設(shè)備。[0095]圖8是示出了根據(jù)本文描述的技術(shù)并行地寫入多個(gè)數(shù)據(jù)對(duì)象的示例性業(yè)務(wù)數(shù)據(jù)加速器178的框圖。業(yè)務(wù)數(shù)據(jù)加速器178包括核185A-185D(“核185”)。索引186,188分別是內(nèi)存中關(guān)系數(shù)據(jù)庫(kù)27的表對(duì)象(未示出)的不同字段的索引。例如,表對(duì)象可以包括兩個(gè)字段,EMPL0YEE_ID以及EMPL0YEE_NAME,分別通過(guò)單獨(dú)索引186,188中的一個(gè)進(jìn)行索引。部分索引186A-186D的每一個(gè)根據(jù)分配算法劃分并存儲(chǔ)索引186的部分?jǐn)?shù)據(jù)。同樣地,部分索引188A-188D的每一個(gè)根據(jù)分配算法劃分并存儲(chǔ)索引188的部分?jǐn)?shù)據(jù)。[0096]客戶端180向業(yè)務(wù)數(shù)據(jù)加速器178下發(fā)引用在其上對(duì)索引186,188進(jìn)行索引的兩個(gè)字段的請(qǐng)求語(yǔ)句。例如,請(qǐng)求語(yǔ)句可以是INSERT、DELETE或UPDATESQL語(yǔ)句以分別將行插入索引186,188基于此的表對(duì)象/刪除或更新的表對(duì)象的行。作為另一實(shí)例,請(qǐng)求語(yǔ)句可以是SELECTSQL語(yǔ)句以獲取與引用在其上對(duì)索引186,188進(jìn)行索引的兩個(gè)字段的準(zhǔn)則相匹配的所有行。因此,技術(shù)可以允許并行化許多不同類型的說(shuō)明語(yǔ)言(例如SQL)操作,從而不但可以查詢,而且還可以修改內(nèi)存中數(shù)據(jù)庫(kù)。[0097]語(yǔ)句執(zhí)行任務(wù)182經(jīng)由套接字連接和編譯器任務(wù)(圖8中都未示出)從客戶端180接收形成執(zhí)行計(jì)劃以執(zhí)行請(qǐng)求語(yǔ)句的業(yè)務(wù)181。業(yè)務(wù)181包括索引186的第一子業(yè)務(wù)以及索引188的第二子業(yè)務(wù)。語(yǔ)句執(zhí)行任務(wù)182派生子執(zhí)行任務(wù)183,184以執(zhí)行業(yè)務(wù)181的第一和第二子業(yè)務(wù)。[0098]例如,就上述INSERTSQL語(yǔ)句實(shí)例而言,語(yǔ)句執(zhí)行任務(wù)182首先根據(jù)請(qǐng)求語(yǔ)句中接收的行數(shù)據(jù)創(chuàng)建并將新行添加至表對(duì)象。語(yǔ)句執(zhí)行任務(wù)182然后使用索引186基于此的字段的行的字段值執(zhí)行分配算法,并基于分配算法的輸出將字段值分配給核185B。語(yǔ)句執(zhí)行任務(wù)182向核185B派生子執(zhí)行任務(wù)183并指示派生任務(wù)將新數(shù)據(jù)的索引行插入部分索引186B。子執(zhí)行任務(wù)183將索引行添加至部分索引186B,而新行的存儲(chǔ)器指標(biāo)將語(yǔ)句執(zhí)行任務(wù)182添加至表對(duì)象。[0099]另外,語(yǔ)句執(zhí)行任務(wù)182使用索引188基于此的字段的行的字段值執(zhí)行分配算法,并基于分配算法的輸出將字段值分配給核18?。語(yǔ)句執(zhí)行任務(wù)182向核18?派生子執(zhí)行任務(wù)184并指示派生任務(wù)將新數(shù)據(jù)的索引行插入部分索引188D。子執(zhí)行任務(wù)184將索引行添加至部分索引188D,而新行的存儲(chǔ)器指標(biāo)將語(yǔ)句執(zhí)行任務(wù)182添加至表對(duì)象。這樣,子執(zhí)行任務(wù)183,184可以并行執(zhí)行并且將新索引行插入索引186,188可以并行發(fā)生,而不串行發(fā)生。在某些情況下,業(yè)務(wù)181可以包括分別使任務(wù)寫入部分索引186的子業(yè)務(wù)。例如,業(yè)務(wù)181可以包括寫入各部分索引186B,186D的子業(yè)務(wù)。然而,子執(zhí)行任務(wù)183,184可以并行執(zhí)行以同時(shí)修改相同數(shù)據(jù)庫(kù)對(duì)象的部分索引186B,186D,S卩,索引186。子執(zhí)行任務(wù)183,184將數(shù)據(jù)和/或狀態(tài)信息返回狀態(tài)執(zhí)行任務(wù)182,從而經(jīng)由套接字連接任務(wù)(圖8中未示出)將結(jié)果189返回客戶端180。[0100]圖9是示出了包括向客戶端提供統(tǒng)一接口并根據(jù)本文描述的技術(shù)寫入部分?jǐn)?shù)據(jù)結(jié)構(gòu)的集群機(jī)196A-196C(“集群機(jī)196”)的示例性業(yè)務(wù)數(shù)據(jù)加速器190的框圖。集群機(jī)196的每一個(gè)包括核1、核2和核3。例如,集群機(jī)196A包括核196Αρ196Α2及196Α3。集群機(jī)196A,196B執(zhí)行各套接字連接任務(wù)195A,195B,利用其交接傳遞數(shù)據(jù)和任務(wù)信息。業(yè)務(wù)數(shù)據(jù)加速器190的機(jī)器196中的每個(gè)核包括內(nèi)存中關(guān)系數(shù)據(jù)庫(kù)27的數(shù)據(jù)對(duì)象194的部分?jǐn)?shù)據(jù)結(jié)構(gòu)。例如,核196A1包括部分結(jié)構(gòu)1944,核196B2包括部分結(jié)構(gòu)194B2。[0101]客戶端191向業(yè)務(wù)數(shù)據(jù)加速器190下發(fā)與數(shù)據(jù)對(duì)象194的數(shù)據(jù)有關(guān)的請(qǐng)求語(yǔ)句。語(yǔ)句執(zhí)行任務(wù)193經(jīng)由編譯器任務(wù)(未示出)從客戶端191接收形成執(zhí)行計(jì)劃以執(zhí)行請(qǐng)求語(yǔ)句的業(yè)務(wù)192。語(yǔ)句執(zhí)行任務(wù)193使用業(yè)務(wù)192的數(shù)據(jù)執(zhí)行集群分配算法,諸如集群散列函數(shù)。集群分配算法輸出兩個(gè)索引,機(jī)器尺寸中的第一索引,核尺寸中的第二索引。語(yǔ)句執(zhí)行任務(wù)193通過(guò)這種方式使用集群分配算法來(lái)確定性地識(shí)別機(jī)器196的合適核以執(zhí)行業(yè)務(wù)192。[0102]在所示的實(shí)例中,集群分配算法輸出機(jī)器索引2和核2以指示對(duì)核19682起作用的任務(wù)應(yīng)該執(zhí)行業(yè)務(wù)192。因?yàn)檎Z(yǔ)句執(zhí)行任務(wù)193在與核196B2的機(jī)器196B不同的機(jī)器196A上執(zhí)行,所以語(yǔ)句執(zhí)行任務(wù)193經(jīng)由各套接字連接任務(wù)195A,195B在機(jī)器196A,196B之間建立套接字連接。語(yǔ)句執(zhí)行任務(wù)193然后使用套接字連接任務(wù)195派生子執(zhí)行任務(wù)196,子執(zhí)行任務(wù)196在與核196B2相關(guān)聯(lián)的部分結(jié)構(gòu)194B2上執(zhí)行業(yè)務(wù)192。在某些情況下,子執(zhí)行任務(wù)196可以經(jīng)由套接字連接任務(wù)195將業(yè)務(wù)192結(jié)果返回語(yǔ)句執(zhí)行任務(wù)193。語(yǔ)句執(zhí)行任務(wù)193可以在機(jī)器196B上例如通過(guò)串行化并經(jīng)由套接字連接任務(wù)195發(fā)送任務(wù)的步進(jìn)程序來(lái)派生子執(zhí)行任務(wù)196。套接字連接任務(wù)195由此在該事例中充當(dāng)語(yǔ)句執(zhí)行任務(wù)193的代理程序。[0103]圖10示出了示例性系統(tǒng)200,其中加速器13的事例被用作構(gòu)建塊以形成分層結(jié)構(gòu)以將所選數(shù)據(jù)交互地推送至大量單獨(dú)客戶端(用戶)201并在均質(zhì)體廣播數(shù)據(jù)流中創(chuàng)建交互專用廣播會(huì)話(信道)。[0104]在圖10的實(shí)例中,系統(tǒng)200包括布置在具有核層202、扇出層204和邊緣層206的三層結(jié)構(gòu)中的多個(gè)業(yè)務(wù)數(shù)據(jù)加速器13??赡艽蠹s是數(shù)百萬(wàn)設(shè)備的數(shù)據(jù)消費(fèi)者16分別利用邊緣層206的業(yè)務(wù)數(shù)據(jù)加速器13建立唯一查詢207。反過(guò)來(lái),邊緣層206的業(yè)務(wù)數(shù)據(jù)加速器13分別利用扇出層204的業(yè)務(wù)數(shù)據(jù)加速器13建立查詢209。也就是說(shuō),邊緣層206的業(yè)務(wù)數(shù)據(jù)加速器13內(nèi)的數(shù)據(jù)攝取引擎26與扇出層204內(nèi)的業(yè)務(wù)數(shù)據(jù)加速器13的內(nèi)容分發(fā)引擎30建立連接并將聚集查詢209提供至聚集業(yè)務(wù),其中聚集查詢209分別是聚集業(yè)務(wù)的實(shí)例。也就是說(shuō),邊緣層206的業(yè)務(wù)數(shù)據(jù)加速器13內(nèi)的每個(gè)內(nèi)容分發(fā)引擎30計(jì)算表示指定從數(shù)據(jù)消費(fèi)者16接收的客戶端特定查詢的所有數(shù)據(jù)的聚集查詢209。換句話說(shuō),通過(guò)扇出層204內(nèi)的每個(gè)內(nèi)容分發(fā)引擎30計(jì)算的聚集查詢209指定與數(shù)據(jù)消費(fèi)者16指定的條件對(duì)應(yīng)的多個(gè)條件集,內(nèi)容分發(fā)引擎與所述數(shù)據(jù)消費(fèi)者16建立連接。[0105]在一個(gè)示例性實(shí)施例中,每個(gè)加速器13的數(shù)據(jù)庫(kù)加速引擎30表示已經(jīng)增強(qiáng)以允許數(shù)據(jù)消費(fèi)者16輕易指定連續(xù)查詢的基于SQL的API。例如,在一個(gè)實(shí)施例中,基于SQL的API支持任選未來(lái)令牌包括在任意下發(fā)的選擇語(yǔ)句中以指示由選擇語(yǔ)句定義的查詢要連續(xù)應(yīng)用到新的尚未接收的數(shù)據(jù)。例如,第一數(shù)據(jù)消費(fèi)者16可以下發(fā)如下查詢:[0106]SELECTFUTUREstock—price,daily—volumeFROMstock—tableWHEREstock—symbol=‘IBM’[0107]并且第二數(shù)據(jù)消費(fèi)者可以下發(fā)如下查詢:[0108]SELECTFUTUREstock—price,daily—highFROMstock—tableWHEREstock—symbol=‘GE,[0109]在這種情況下,這兩個(gè)查詢都包括使接收數(shù)據(jù)庫(kù)加速引擎30指示將查詢視為連續(xù)查詢而不是一次查詢的新關(guān)鍵字。在這種情況下,聚集查詢可以根據(jù)客戶端特定查詢計(jì)算為:[0110]SELECTFUTUREstock—price,daily—volume,daily—highFROMstock—tableWHEREstock—symbol=‘GE’orstock—symbol=‘IBM’。[0111]反過(guò)來(lái),扇出層204的業(yè)務(wù)數(shù)據(jù)加速器13的數(shù)據(jù)攝取引擎26建立連接并將聚集查詢211提供至核層202內(nèi)的加速器13的內(nèi)容分發(fā)引擎30。核層202表示根據(jù)一個(gè)或多個(gè)源對(duì)如上所述的業(yè)務(wù)數(shù)據(jù)的流起作用的一個(gè)或多個(gè)業(yè)務(wù)數(shù)據(jù)加速器13的集群。如果發(fā)生數(shù)據(jù)變化,則將更新數(shù)據(jù)從核層202自動(dòng)推送至這些數(shù)據(jù)消費(fèi)者16,更新數(shù)據(jù)針對(duì)其與客戶端的查詢207限定的條件相匹配。在每個(gè)層處,內(nèi)容分發(fā)引擎30將數(shù)據(jù)扇出至數(shù)據(jù)攝取引擎26以便填充如本文描述的大規(guī)模并行內(nèi)存中數(shù)據(jù)庫(kù)直至將更新數(shù)據(jù)推送至數(shù)據(jù)消費(fèi)者16為止。本文描述的并行化技術(shù)允許該過(guò)程非??臁@?,數(shù)百萬(wàn)數(shù)據(jù)消費(fèi)者16可以使用系統(tǒng)200的示例性三層結(jié)構(gòu)進(jìn)行支持,使得可以按照大約一毫秒的數(shù)量級(jí)將核層202內(nèi)的不斷變化的數(shù)據(jù)推送至數(shù)據(jù)消費(fèi)者16。這允許核層202內(nèi)的處理數(shù)據(jù)從內(nèi)存中數(shù)據(jù)庫(kù)作為目標(biāo)數(shù)據(jù)流‘推送’(分發(fā))至數(shù)據(jù)消費(fèi)者16。雖然針對(duì)三個(gè)層進(jìn)行了描述,但是也可以使用其他層。例如,利用四個(gè)層,以節(jié)省成本且及時(shí)的方式將數(shù)據(jù)推送至數(shù)十億的數(shù)據(jù)消費(fèi)者。[0112]圖11示出了示例性系統(tǒng)250,其中加速器13的事例被用作構(gòu)建塊以形成分層結(jié)構(gòu)以從大量單獨(dú)數(shù)據(jù)源(用戶)251接收數(shù)據(jù)。數(shù)據(jù)源12可以是終端用戶計(jì)算設(shè)備(例如,移動(dòng)設(shè)備)、物理傳感器(例如,用于從沖擊波收集數(shù)據(jù)的聲傳感器或用于提供穿過(guò)大市區(qū)的實(shí)時(shí)數(shù)據(jù)流量的流量控制傳感器)或產(chǎn)生數(shù)據(jù)的任意設(shè)備。系統(tǒng)250提供優(yōu)雅且節(jié)省成本的方式以消費(fèi)并處理來(lái)自大量數(shù)據(jù)生產(chǎn)者的數(shù)據(jù)。[0113]在圖11的實(shí)例中,系統(tǒng)250包括布置在具有核層252、扇入層254和邊緣層256的三層結(jié)構(gòu)中的多個(gè)業(yè)務(wù)數(shù)據(jù)加速器13??赡艽蠹s是數(shù)百萬(wàn)設(shè)備的數(shù)據(jù)源12分別與邊緣層256的業(yè)務(wù)數(shù)據(jù)加速器13建立連接并將業(yè)務(wù)數(shù)據(jù)發(fā)送至邊緣層256的業(yè)務(wù)數(shù)據(jù)加速器13。反過(guò)來(lái),邊緣層256的業(yè)務(wù)數(shù)據(jù)加速器13分別與扇入層254的業(yè)務(wù)數(shù)據(jù)加速器13建立連接并將數(shù)據(jù)發(fā)送至扇入層254的業(yè)務(wù)數(shù)據(jù)加速器13。也就是說(shuō),邊緣層256的業(yè)務(wù)數(shù)據(jù)加速器13內(nèi)的內(nèi)容分發(fā)引擎30與扇入層254內(nèi)的加速器13的數(shù)據(jù)攝取引擎26建立連接并將數(shù)據(jù)提供給數(shù)據(jù)攝取引擎26。反過(guò)來(lái),扇入層254的業(yè)務(wù)數(shù)據(jù)加速器13的內(nèi)容分發(fā)引擎30建立連接并將數(shù)據(jù)提供給核層252內(nèi)的業(yè)務(wù)數(shù)據(jù)加速器13的數(shù)據(jù)攝取引擎26。核層252表示對(duì)如上所述的業(yè)務(wù)數(shù)據(jù)起作用的一個(gè)或多個(gè)業(yè)務(wù)數(shù)據(jù)加速器13集群。核層252可以處理所接收的數(shù)據(jù)并使用針對(duì)圖10的系統(tǒng)200描述的專用廣播信道將所接收的數(shù)據(jù)輸出至數(shù)據(jù)倉(cāng)庫(kù)或感興趣的客戶端。[0114]圖12是示出了使用本文描述的技術(shù)提供高性能業(yè)務(wù)數(shù)據(jù)加速的示例性系統(tǒng)的框圖。類似引用字符用于表示圖1的類似元件。在圖12的示例性系統(tǒng)300中,如在圖1的示例性系統(tǒng)10中一樣,一組業(yè)務(wù)數(shù)據(jù)加速器13A-13N(統(tǒng)稱為“業(yè)務(wù)數(shù)據(jù)加速器13”)經(jīng)組織以形成數(shù)據(jù)加速器的集群11。業(yè)務(wù)數(shù)據(jù)加速器操作用于不斷從數(shù)據(jù)源12攝取大量數(shù)據(jù)業(yè)務(wù)并對(duì)其進(jìn)行處理并將處理后的數(shù)據(jù)分發(fā)至數(shù)據(jù)源16。數(shù)據(jù)源12和數(shù)據(jù)消費(fèi)者16可以是提供或消費(fèi)數(shù)據(jù)的任何東西,諸如系統(tǒng)、應(yīng)用程序或數(shù)據(jù)庫(kù)。[0115]在該實(shí)例中,數(shù)據(jù)消費(fèi)者16響應(yīng)于通過(guò)業(yè)務(wù)數(shù)據(jù)加速器13分發(fā)的數(shù)據(jù)。對(duì)來(lái)自數(shù)據(jù)消費(fèi)者16的廣播數(shù)據(jù)的響應(yīng)表示數(shù)據(jù)源12的數(shù)據(jù),該數(shù)據(jù)通過(guò)業(yè)務(wù)數(shù)據(jù)加速器13攝取,處理并用于將細(xì)化的、聚集的或另外處理的數(shù)據(jù)分發(fā)至數(shù)據(jù)消費(fèi)者16。盡管業(yè)務(wù)數(shù)據(jù)加速器13的操作在圖1的系統(tǒng)10和圖12的系統(tǒng)300中基本上類似,但是系統(tǒng)300涉及實(shí)時(shí)(近實(shí)時(shí))廣播數(shù)據(jù)和廣播數(shù)據(jù)響應(yīng)的“反饋回路”并由此示出本發(fā)明的技術(shù),如業(yè)務(wù)數(shù)據(jù)加速器13所實(shí)現(xiàn)的,可以適用于加速啟用用戶的查詢結(jié)果以及其他交互應(yīng)用程序的交互分發(fā)。[0116]本發(fā)明中描述的技術(shù)至少部分可以在硬件、軟件、固件或其任意組合中實(shí)現(xiàn)。例如,所描述技術(shù)的各個(gè)方面可以在包括一個(gè)或多個(gè)微處理器、數(shù)字信號(hào)處理器(DSP)、專用集成電路(ASIC)、現(xiàn)場(chǎng)可編程門陣列(FPGA)、或任意其他等效集成或分立邏輯電路以及這些組件的任意組合的一個(gè)或多個(gè)處理器內(nèi)實(shí)現(xiàn)。術(shù)語(yǔ)“處理器”或“處理電路”單獨(dú)或結(jié)合其他邏輯電路,或任意其他等效電路通??梢灾溉我馇笆鲞壿嬰娐贰0ㄓ布目刂茊卧€可以執(zhí)行本發(fā)明的一項(xiàng)或多項(xiàng)技術(shù)。[0117]此硬件、軟件和固件可以在相同設(shè)備內(nèi)或可以在單獨(dú)設(shè)備內(nèi)實(shí)現(xiàn)以支持本發(fā)明中描述的各種操作和功能。另外,所描述的任意單元、模塊或組件可以一起或單獨(dú)實(shí)現(xiàn)為分立但可互操作的邏輯設(shè)備。以模塊或單元的形式描述不同特征的目的是突出不同功能方面且不一定暗示這些模塊或單元必須通過(guò)單獨(dú)硬件或軟件組件來(lái)實(shí)現(xiàn)。相反,與一個(gè)或多個(gè)模塊或單元相關(guān)聯(lián)的功能可以通過(guò)單獨(dú)硬件或軟件組件來(lái)進(jìn)行,或集成在共用或單獨(dú)硬件或軟件組件內(nèi)。[0118]本發(fā)明中描述的技術(shù)還可以在包含指令的計(jì)算機(jī)可讀介質(zhì),諸如非瞬態(tài)計(jì)算機(jī)可讀介質(zhì)或計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)或設(shè)備中實(shí)施或編碼。例如,在執(zhí)行指令時(shí),嵌入計(jì)算機(jī)可讀介質(zhì)中或在計(jì)算機(jī)可讀介質(zhì)中編碼的指令可以使可編程處理器或其他處理器執(zhí)行方法。計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)可以包括隨機(jī)存取存儲(chǔ)器(RAM)、只讀存儲(chǔ)器(ROM)、可編程只讀存儲(chǔ)器(PR0M)、可擦除可編程只讀存儲(chǔ)器(EPR0M)、電可擦除可編程只讀存儲(chǔ)器(EEPR0M)、閃存、硬盤、CD-ROM、軟盤、盒式磁帶、磁性介質(zhì)、光學(xué)介質(zhì)或其他計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)。應(yīng)理解的是,術(shù)語(yǔ)“計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)”指的是物理存儲(chǔ)介質(zhì),而不是信號(hào)或載波,但術(shù)語(yǔ)“計(jì)算機(jī)可讀介質(zhì)”除了物理存儲(chǔ)介質(zhì)之外還可以包括瞬態(tài)介質(zhì)諸如信號(hào)。[0119]在一個(gè)實(shí)例中,一種設(shè)備包括:具有多個(gè)執(zhí)行核的多核硬件處理器;以及分別根據(jù)虛擬指令集操作的多個(gè)虛擬機(jī),其中虛擬機(jī)的每一個(gè)在執(zhí)行核中的不同執(zhí)行核上執(zhí)行。設(shè)備還包括內(nèi)存中數(shù)據(jù)庫(kù),其包括存儲(chǔ)在多個(gè)存儲(chǔ)器分區(qū)內(nèi)的數(shù)據(jù),其中存儲(chǔ)器分區(qū)的每一個(gè)與執(zhí)行核中的不同執(zhí)行核相關(guān)聯(lián)。設(shè)備還包括多個(gè)任務(wù),其在虛擬機(jī)上執(zhí)行以將內(nèi)存中數(shù)據(jù)庫(kù)的傳入業(yè)務(wù)分解為子業(yè)務(wù),將子業(yè)務(wù)部署到與存儲(chǔ)子業(yè)務(wù)數(shù)據(jù)的各存儲(chǔ)器分區(qū)相關(guān)聯(lián)的執(zhí)行核,并在部署有子業(yè)務(wù)的各執(zhí)行核上并行執(zhí)行傳入業(yè)務(wù)的子業(yè)務(wù)。[0120]在另一實(shí)例中,一種方法包括:執(zhí)行分別根據(jù)虛擬指令集操作的多個(gè)虛擬機(jī),其中虛擬機(jī)的每一個(gè)在計(jì)算設(shè)備的多核硬件處理器的多個(gè)執(zhí)行核中的不同執(zhí)行核上執(zhí)行。方法還包括使執(zhí)行核中的不同執(zhí)行核與多個(gè)存儲(chǔ)器分區(qū)相關(guān)聯(lián),其中存儲(chǔ)器分區(qū)的每一個(gè)存儲(chǔ)內(nèi)存中數(shù)據(jù)庫(kù)數(shù)據(jù)。方法還包括利用虛擬機(jī)執(zhí)行多個(gè)任務(wù),其中多個(gè)任務(wù)將內(nèi)存中數(shù)據(jù)庫(kù)的傳入業(yè)務(wù)分解為子業(yè)務(wù),將子業(yè)務(wù)部署到與存儲(chǔ)子業(yè)務(wù)數(shù)據(jù)的各存儲(chǔ)器分區(qū)相關(guān)聯(lián)的執(zhí)行核,并在部署有子業(yè)務(wù)的各執(zhí)行核上并行執(zhí)行傳入業(yè)務(wù)的子業(yè)務(wù)。[0121]在另一實(shí)例中,一種計(jì)算機(jī)可讀存儲(chǔ)設(shè)備包括在執(zhí)行時(shí)使具有多個(gè)執(zhí)行核的多核硬件處理器執(zhí)行根據(jù)虛擬指令集操作的多個(gè)虛擬機(jī)的指令,其中虛擬機(jī)的每一個(gè)在多個(gè)執(zhí)行核中的不同執(zhí)行核上執(zhí)行,使執(zhí)行核中的不同執(zhí)行核與多個(gè)存儲(chǔ)器分區(qū)相關(guān)聯(lián),其中,存儲(chǔ)器分區(qū)的每一個(gè)存儲(chǔ)內(nèi)存中數(shù)據(jù)庫(kù)數(shù)據(jù),并利用虛擬機(jī)執(zhí)行多個(gè)任務(wù),其中多個(gè)任務(wù)將內(nèi)存中數(shù)據(jù)庫(kù)的傳入業(yè)務(wù)分解為子業(yè)務(wù),將子業(yè)務(wù)部署到與存儲(chǔ)子業(yè)務(wù)數(shù)據(jù)的各存儲(chǔ)器分區(qū)相關(guān)聯(lián)的執(zhí)行核,并在部署有子業(yè)務(wù)的各執(zhí)行核上并行執(zhí)行傳入業(yè)務(wù)的子業(yè)務(wù)。[0122]在另一實(shí)例中,一種設(shè)備包括具有多個(gè)執(zhí)行核的多核硬件處理器。設(shè)備還包括內(nèi)存中數(shù)據(jù)庫(kù)以及內(nèi)容分發(fā)引擎,該內(nèi)存中數(shù)據(jù)庫(kù)包括存儲(chǔ)在多個(gè)存儲(chǔ)器分區(qū)中的數(shù)據(jù),其中存儲(chǔ)器分區(qū)的每一個(gè)與執(zhí)行核中的不同執(zhí)行核相關(guān)聯(lián),該內(nèi)容分發(fā)引擎配置多個(gè)私人數(shù)據(jù)信道以分別將唯一數(shù)據(jù)分發(fā)至多個(gè)數(shù)據(jù)消費(fèi)者中的相應(yīng)數(shù)據(jù)消費(fèi)者。設(shè)備還包括部署多個(gè)任務(wù)以在核上并行執(zhí)行以響應(yīng)于來(lái)自內(nèi)容分發(fā)引擎的查詢對(duì)內(nèi)存中數(shù)據(jù)庫(kù)并行執(zhí)行業(yè)務(wù)的并行化引擎。[0123]在另一實(shí)例中,一種方法包括利用內(nèi)容分發(fā)引擎配置多個(gè)私人數(shù)據(jù)信道以分別將唯一數(shù)據(jù)分發(fā)至多個(gè)數(shù)據(jù)消費(fèi)者中的相應(yīng)數(shù)據(jù)消費(fèi)者。方法還包括利用在具有多個(gè)執(zhí)行核的多核硬件處理器上執(zhí)行的并行化引擎部署多個(gè)任務(wù)以在核上并行執(zhí)行以響應(yīng)于來(lái)自內(nèi)容分發(fā)引擎的查詢對(duì)內(nèi)存中數(shù)據(jù)庫(kù)并行執(zhí)行業(yè)務(wù),其中內(nèi)存中數(shù)據(jù)庫(kù)包括存儲(chǔ)在多個(gè)存儲(chǔ)器分區(qū)中的數(shù)據(jù),其中存儲(chǔ)器分區(qū)的每一個(gè)與執(zhí)行核中的不同執(zhí)行核相關(guān)聯(lián)。[0124]在另一實(shí)例中,一種計(jì)算機(jī)可讀存儲(chǔ)設(shè)備包括在執(zhí)行時(shí)使具有多個(gè)執(zhí)行核的多核硬件處理器進(jìn)行以下操作的指令:利用內(nèi)容分發(fā)引擎配置多個(gè)私人數(shù)據(jù)信道以將唯一數(shù)據(jù)分別分發(fā)至多個(gè)數(shù)據(jù)消費(fèi)者中的相應(yīng)數(shù)據(jù)消費(fèi)者,并利用并行化引擎部署多個(gè)任務(wù)以在核上并行執(zhí)行以響應(yīng)于來(lái)自內(nèi)容分發(fā)弓丨擎的查詢對(duì)內(nèi)存中數(shù)據(jù)庫(kù)并行執(zhí)行業(yè)務(wù),其中內(nèi)存中數(shù)據(jù)庫(kù)包括存儲(chǔ)在多個(gè)存儲(chǔ)器分區(qū)中的數(shù)據(jù),其中,存儲(chǔ)器分區(qū)的每一個(gè)與執(zhí)行核中的不同執(zhí)行核相關(guān)聯(lián)。[0125]在另一實(shí)例中,一種設(shè)備包括:具有多個(gè)執(zhí)行核的多核硬件處理器;以及包括存儲(chǔ)在多個(gè)存儲(chǔ)器分區(qū)內(nèi)的數(shù)據(jù)的內(nèi)存中數(shù)據(jù)庫(kù),其中,存儲(chǔ)器分區(qū)的每一個(gè)分別與執(zhí)行核中的不同執(zhí)行核相關(guān)聯(lián)。設(shè)備還包括建立與外部設(shè)備的多個(gè)并行網(wǎng)絡(luò)連接以接收傳入業(yè)務(wù)的數(shù)據(jù)攝取引擎。設(shè)備還包括并行化引擎,其將內(nèi)存中數(shù)據(jù)庫(kù)的傳入業(yè)務(wù)分解為子業(yè)務(wù),將子業(yè)務(wù)部署到與存儲(chǔ)子業(yè)務(wù)數(shù)據(jù)的各存儲(chǔ)器分區(qū)相關(guān)聯(lián)的執(zhí)行核,并在部署有子業(yè)務(wù)的各執(zhí)行核上并行執(zhí)行傳入業(yè)務(wù)的子業(yè)務(wù)。[0126]在另一實(shí)例中,一種方法包括:利用數(shù)據(jù)攝取引擎建立與外部設(shè)備的多個(gè)并行網(wǎng)絡(luò)連接,以及利用數(shù)據(jù)攝取引擎通過(guò)并行網(wǎng)絡(luò)連接接收傳入業(yè)務(wù)。方法還包括利用在具有多個(gè)執(zhí)行核的多核硬件處理器上執(zhí)行的并行化引擎將內(nèi)存中數(shù)據(jù)庫(kù)的傳入業(yè)務(wù)分解為子業(yè)務(wù),其中內(nèi)存中數(shù)據(jù)庫(kù)包括存儲(chǔ)在多個(gè)存儲(chǔ)器分區(qū)中的數(shù)據(jù),其中存儲(chǔ)器分區(qū)的每一個(gè)與執(zhí)行核中的不同執(zhí)行核相關(guān)聯(lián)。方法還包括利用并行化引擎將子業(yè)務(wù)部署到與存儲(chǔ)子業(yè)務(wù)數(shù)據(jù)的各存儲(chǔ)器分區(qū)相關(guān)聯(lián)的執(zhí)行核,并在部署有子業(yè)務(wù)的各執(zhí)行核上并行執(zhí)行傳入業(yè)務(wù)的子業(yè)務(wù)。[0127]在另一實(shí)例中,一種計(jì)算機(jī)可讀存儲(chǔ)設(shè)備包括在執(zhí)行時(shí)使具有多個(gè)執(zhí)行核的多核硬件處理器利用數(shù)據(jù)攝取引擎建立與外部設(shè)備的多個(gè)并行網(wǎng)絡(luò)連接,以及利用數(shù)據(jù)攝取引擎通過(guò)并行網(wǎng)絡(luò)連接接收傳入業(yè)務(wù)。在執(zhí)行時(shí)指令還使多核硬件處理器利用并行化引擎將內(nèi)存中數(shù)據(jù)庫(kù)的傳入業(yè)務(wù)分解為子業(yè)務(wù),其中內(nèi)存中數(shù)據(jù)庫(kù)包括存儲(chǔ)在多個(gè)存儲(chǔ)器分區(qū)中的數(shù)據(jù),其中存儲(chǔ)器分區(qū)的每一個(gè)與執(zhí)行核中的不同執(zhí)行核相關(guān)聯(lián),利用并行化引擎將子業(yè)務(wù)部署到與存儲(chǔ)子業(yè)務(wù)數(shù)據(jù)的各存儲(chǔ)器分區(qū)相關(guān)聯(lián)的執(zhí)行核,并在部署有子業(yè)務(wù)的各執(zhí)行核上并行執(zhí)行傳入業(yè)務(wù)的子業(yè)務(wù)。[0128]已經(jīng)對(duì)本發(fā)明的各個(gè)實(shí)施例進(jìn)行了描述。這些和其他實(shí)施例在所附權(quán)利要求的范圍內(nèi)?!緳?quán)利要求】1.一種設(shè)備,包括:具有多個(gè)執(zhí)行核的多核硬件處理器;分別根據(jù)虛擬指令集進(jìn)行操作的多個(gè)虛擬機(jī),其中,所述虛擬機(jī)的每一個(gè)分別在一個(gè)不同的執(zhí)行核上執(zhí)行;內(nèi)存中數(shù)據(jù)庫(kù),包括存儲(chǔ)在多個(gè)存儲(chǔ)器分區(qū)中的數(shù)據(jù),其中,所述存儲(chǔ)器分區(qū)的每一個(gè)分別與執(zhí)行核中的不同執(zhí)行核相關(guān)聯(lián);多個(gè)任務(wù),在所述虛擬機(jī)上執(zhí)行以將所述內(nèi)存中數(shù)據(jù)庫(kù)的傳入業(yè)務(wù)分解為子業(yè)務(wù),將所述子業(yè)務(wù)部署到與存儲(chǔ)所述子業(yè)務(wù)的數(shù)據(jù)的各個(gè)存儲(chǔ)器分區(qū)相關(guān)聯(lián)的執(zhí)行核,并在被部署所述子業(yè)務(wù)的各執(zhí)行核上并行執(zhí)行所述傳入業(yè)務(wù)的所述子業(yè)務(wù)。2.根據(jù)權(quán)利要求1所述的設(shè)備,進(jìn)一步包括:語(yǔ)句執(zhí)行任務(wù),在所述虛擬機(jī)之一上執(zhí)行以將分配算法應(yīng)用到所述子業(yè)務(wù)以識(shí)別與存儲(chǔ)所述子業(yè)務(wù)的數(shù)據(jù)的分區(qū)相關(guān)聯(lián)的各執(zhí)行核,其中,所述語(yǔ)句執(zhí)行任務(wù)針對(duì)所述子業(yè)務(wù)中的每一個(gè)派生并部署子執(zhí)行任務(wù)以在所述執(zhí)行核的用于子業(yè)務(wù)的經(jīng)識(shí)別的執(zhí)行核上執(zhí)行所述子業(yè)務(wù),其中,相應(yīng)子業(yè)務(wù)的子執(zhí)行任務(wù)在虛擬機(jī)上并行執(zhí)行。3.根據(jù)權(quán)利要求2所述的設(shè)備,其中,所述語(yǔ)句執(zhí)行任務(wù)將所述分配算法應(yīng)用到由所述傳入業(yè)務(wù)引用的多個(gè)數(shù)據(jù),其中,所述分配算法識(shí)別用于由所述傳入業(yè)務(wù)引用的所述多個(gè)數(shù)據(jù)中的每一個(gè)的不同執(zhí)行核,其中,所述子業(yè)務(wù)的每一個(gè)是由所述傳入業(yè)務(wù)引用的多個(gè)數(shù)據(jù)中的相應(yīng)數(shù)據(jù)的業(yè)務(wù),并且其中,所述語(yǔ)句執(zhí)行任務(wù)向所識(shí)別的用于所述多個(gè)數(shù)據(jù)的每一個(gè)的執(zhí)行核之一派生子執(zhí)行任務(wù)以執(zhí)行相應(yīng)子業(yè)務(wù)。4.根據(jù)權(quán)利要求2所述的設(shè)備,進(jìn)一步包括:描述所述內(nèi)存中數(shù)據(jù)庫(kù)的數(shù)據(jù)庫(kù)對(duì)象的模式;包括分別指定可由所述多個(gè)核執(zhí)行的指令的一個(gè)或多個(gè)步進(jìn)程序的步進(jìn)程序庫(kù);以及描述符合所述傳入業(yè)務(wù)的語(yǔ)言的業(yè)務(wù)語(yǔ)法,其中,所述業(yè)務(wù)語(yǔ)法包括引用所述步進(jìn)程序庫(kù)的步進(jìn)程序的一個(gè)或多個(gè)替代法則,其中,所述語(yǔ)句執(zhí)行任務(wù)將所述業(yè)務(wù)語(yǔ)法和所述模式應(yīng)用到所述傳入業(yè)務(wù)以生成分別包括所述步進(jìn)程序庫(kù)的步進(jìn)程序的子業(yè)務(wù)。5.根據(jù)權(quán)利要求1所述的設(shè)備,其中,所述虛擬機(jī)異步執(zhí)行所述多個(gè)任務(wù),所述設(shè)備進(jìn)一步包括:心跳任務(wù),根據(jù)定義的周期在所述虛擬機(jī)的每一個(gè)上執(zhí)行,在執(zhí)行所述心跳任務(wù)時(shí)使相應(yīng)虛擬機(jī)等待執(zhí)行任何額外任務(wù)直至所述相應(yīng)虛擬機(jī)接收到信號(hào)為止。6.根據(jù)權(quán)利要求3所述的設(shè)備,其中,所述心跳任務(wù)包括指定鉤狀任務(wù)的任務(wù)鉤子,其中,所述虛擬機(jī)中的一個(gè)虛擬機(jī)執(zhí)行所述鉤狀任務(wù),并且其中,所述虛擬機(jī)中的所述一個(gè)虛擬機(jī)在完成所述鉤狀任務(wù)之后將所述信號(hào)發(fā)送至其他虛擬機(jī)。7.根據(jù)權(quán)利要求4所述的設(shè)備,其中,所述鉤狀任務(wù)包括在執(zhí)行時(shí)生成并存儲(chǔ)所述內(nèi)存中數(shù)據(jù)庫(kù)的檢查點(diǎn)的檢查點(diǎn)任務(wù)。8.根據(jù)權(quán)利要求1所述的設(shè)備,其中,所述虛擬機(jī)的每一個(gè)均包括用于所述相應(yīng)執(zhí)行核的調(diào)度器,并且其中,所述調(diào)度器的每一個(gè)均保持存儲(chǔ)被調(diào)度為由所述多個(gè)執(zhí)行核中的相應(yīng)執(zhí)行核執(zhí)行的任務(wù)的引用的單獨(dú)運(yùn)行列表數(shù)據(jù)結(jié)構(gòu)。9.根據(jù)權(quán)利要求8所述的設(shè)備,其中,所述虛擬機(jī)中的每一個(gè)均包括存儲(chǔ)分別通過(guò)虛擬機(jī)中的一個(gè)不同虛擬機(jī)的調(diào)度器被遷移至所述虛擬機(jī)的任務(wù)的引用的交叉隊(duì)列數(shù)據(jù)結(jié)構(gòu)。10.根據(jù)權(quán)利要求9所述的設(shè)備,其中,所述虛擬機(jī)的第一虛擬機(jī)的調(diào)度器將第一任務(wù)的引用排隊(duì)到所述虛擬機(jī)中的第二虛擬機(jī)的所述交叉隊(duì)列數(shù)據(jù)結(jié)構(gòu),而所述第二虛擬機(jī)同時(shí)執(zhí)行在由所述第二虛擬機(jī)的所述調(diào)度器保持的所述運(yùn)行列表中引用的第二任務(wù)。11.根據(jù)權(quán)利要求1所述的設(shè)備,其中,所述虛擬機(jī)的每一個(gè)均定義存儲(chǔ)由待機(jī)任務(wù)的剩余待機(jī)時(shí)間排序的待機(jī)任務(wù)的引用的待機(jī)列表數(shù)據(jù)結(jié)構(gòu),其中,所述多個(gè)執(zhí)行核中的每一個(gè)均包括計(jì)時(shí)器,其中,在所述虛擬機(jī)的每一個(gè)上執(zhí)行的報(bào)警任務(wù)至少基于所述虛擬機(jī)的所述待機(jī)列表數(shù)據(jù)結(jié)構(gòu)的所述待機(jī)任務(wù)的最小剩余待機(jī)時(shí)間來(lái)設(shè)置所述相應(yīng)執(zhí)行核的計(jì)時(shí)器的到點(diǎn)時(shí)間,以及其中,所述計(jì)時(shí)器到點(diǎn)使得所述報(bào)警任務(wù)喚醒所述待機(jī)列表的下一待機(jī)任務(wù)。12.根據(jù)權(quán)利要求1所述的設(shè)備,其中,所述傳入業(yè)務(wù)選自由插入到所述內(nèi)存中數(shù)據(jù)庫(kù)中、從所述內(nèi)存中數(shù)據(jù)庫(kù)刪除、以及更新所述內(nèi)存中數(shù)據(jù)庫(kù)組成的組。13.根據(jù)權(quán)利要求1所述的設(shè)備,進(jìn)一步包括:分別包括所述多個(gè)執(zhí)行核的不同非重疊子集的多個(gè)集群機(jī)。14.根據(jù)權(quán)利要求1所述的設(shè)備,其中,所述設(shè)備包括定位在至少一個(gè)數(shù)據(jù)源與至少一個(gè)數(shù)據(jù)消費(fèi)者之間的數(shù)據(jù)庫(kù)加速引擎。15.根據(jù)權(quán)利要求1所述的設(shè)備,其中,所述傳入業(yè)務(wù)包括從所述內(nèi)存中數(shù)據(jù)庫(kù)刪除行的刪除業(yè)務(wù),所述設(shè)備進(jìn)一步包括:多個(gè)垃圾收集器任務(wù),識(shí)別所述內(nèi)存中數(shù)據(jù)庫(kù)的多個(gè)數(shù)據(jù)結(jié)構(gòu)中的行的引用并且并行執(zhí)行以移除所述多個(gè)數(shù)據(jù)結(jié)構(gòu)中的行的引用。16.根據(jù)權(quán)利要求1所述的設(shè)備,進(jìn)一步包括:內(nèi)容分發(fā)引擎,配置多個(gè)私有數(shù)據(jù)信道以分別將唯一數(shù)據(jù)分發(fā)至多個(gè)數(shù)據(jù)消費(fèi)者中的相應(yīng)數(shù)據(jù)消費(fèi)者;以及并行化引擎,部署所述多個(gè)任務(wù)從而響應(yīng)于來(lái)自所述內(nèi)容分發(fā)引擎的查詢以在核上并行執(zhí)行從而對(duì)所述內(nèi)存中數(shù)據(jù)庫(kù)并行執(zhí)行業(yè)務(wù)。17.根據(jù)權(quán)利要求16所述的設(shè)備,進(jìn)一步包括:語(yǔ)句執(zhí)行任務(wù),在所述虛擬機(jī)之一上執(zhí)行以將分配算法應(yīng)用到所述子業(yè)務(wù)從而識(shí)別與存儲(chǔ)所述子業(yè)務(wù)的數(shù)據(jù)的所述各存儲(chǔ)器分區(qū)相關(guān)聯(lián)的各執(zhí)行核,其中,所述語(yǔ)句執(zhí)行任務(wù)針對(duì)所述子業(yè)務(wù)的每一個(gè)派生并部署子執(zhí)行任務(wù)以在所述執(zhí)行核的用于子業(yè)務(wù)的經(jīng)識(shí)別的執(zhí)行核上執(zhí)行所述子業(yè)務(wù)。18.根據(jù)權(quán)利要求16所述的設(shè)備,其中,所述虛擬機(jī)的每一個(gè)均包括相應(yīng)執(zhí)行核的調(diào)度器,并且其中,所述調(diào)度器的每一個(gè)保持存儲(chǔ)被調(diào)度為由所述多個(gè)執(zhí)行核中的所述相應(yīng)執(zhí)行核執(zhí)行的任務(wù)的引用的單獨(dú)運(yùn)行列表數(shù)據(jù)結(jié)構(gòu)。19.根據(jù)權(quán)利要求16所述的設(shè)備,其中,所述內(nèi)容分發(fā)引擎提供允許數(shù)據(jù)消費(fèi)者指定連續(xù)查詢的應(yīng)用程序編程接口(API),所述連續(xù)查詢指示所述內(nèi)容分發(fā)引擎連續(xù)將所述連續(xù)查詢應(yīng)用到由所述設(shè)備新接收的數(shù)據(jù)。20.根據(jù)權(quán)利要求16所述的設(shè)備,其中,所述內(nèi)容分發(fā)引擎接收所述連續(xù)查詢,所述連續(xù)查詢指示所述內(nèi)容分發(fā)引擎連續(xù)將所述連續(xù)查詢應(yīng)用到由所述設(shè)備新接收的數(shù)據(jù)。21.根據(jù)權(quán)利要求20所述的設(shè)備,其中,所述連續(xù)查詢指定未來(lái)令牌。22.根據(jù)權(quán)利要求21所述的設(shè)備,其中,所述內(nèi)容分發(fā)引擎接收請(qǐng)求第一數(shù)據(jù)的第一業(yè)務(wù)和請(qǐng)求第二數(shù)據(jù)的第二業(yè)務(wù),并且其中,所述內(nèi)容分發(fā)引擎計(jì)算請(qǐng)求所述第一數(shù)據(jù)和所述第二數(shù)據(jù)的聚集業(yè)務(wù)并將所述聚集業(yè)務(wù)輸出至另一設(shè)備。23.根據(jù)權(quán)利要求21所述的設(shè)備,其中,所述內(nèi)容分發(fā)引擎接收請(qǐng)求所述第一數(shù)據(jù)和所述第二數(shù)據(jù)的聚集業(yè)務(wù)并指示所述并行化引擎執(zhí)行所述聚集業(yè)務(wù)以聚集所述第一數(shù)據(jù)和所述第二數(shù)據(jù),并且其中,所述內(nèi)容分發(fā)引擎響應(yīng)于所述聚集業(yè)務(wù)輸出由所述并行化引擎聚集的所述第一數(shù)據(jù)和所述第二數(shù)據(jù)。24.根據(jù)權(quán)利要求23所述的設(shè)備,其中,所述多個(gè)任務(wù)將所述聚集業(yè)務(wù)分解為多個(gè)子業(yè)務(wù),以并行執(zhí)行所述子業(yè)務(wù)從而從所述內(nèi)存中數(shù)據(jù)庫(kù)中檢索所述第一數(shù)據(jù)和所述第二數(shù)據(jù),并將所述第一數(shù)據(jù)和所述第二數(shù)據(jù)返回到所述內(nèi)容分發(fā)引擎。25.根據(jù)權(quán)利要求1所述的設(shè)備,進(jìn)一步包括:建立與外部設(shè)備的多個(gè)并行網(wǎng)絡(luò)連接以接收所述傳入業(yè)務(wù)的數(shù)據(jù)攝取引擎;以及執(zhí)行所述多個(gè)任務(wù)的并行化引擎。26.根據(jù)權(quán)利要求25所述的設(shè)備,進(jìn)一步包括:語(yǔ)句執(zhí)行任務(wù),在所述虛擬機(jī)之一上執(zhí)行以將分配算法應(yīng)用到所述子業(yè)務(wù)從而識(shí)別與存儲(chǔ)所述子業(yè)務(wù)的數(shù)據(jù)的各存儲(chǔ)器分區(qū)相關(guān)聯(lián)的執(zhí)行核,其中,所述語(yǔ)句執(zhí)行任務(wù)針對(duì)所述子業(yè)務(wù)的每一個(gè),派生并部署所述子執(zhí)行任務(wù)以在所述執(zhí)行核的用于所述子業(yè)務(wù)的經(jīng)識(shí)別的執(zhí)行核上執(zhí)行所述子業(yè)務(wù)。27.根據(jù)權(quán)利要求26所述的設(shè)備,其中,所述虛擬機(jī)的每一個(gè)均包括用于所述相應(yīng)執(zhí)行核的調(diào)度器,并且其中,所述調(diào)度器的每一個(gè)均保持存儲(chǔ)被調(diào)度為以由多個(gè)執(zhí)行核中的相應(yīng)執(zhí)行核執(zhí)行的任務(wù)的引用的單獨(dú)運(yùn)行列表數(shù)據(jù)結(jié)構(gòu)。28.根據(jù)權(quán)利要求26所述的設(shè)備,其中,所述虛擬機(jī)的每一個(gè)均包括存儲(chǔ)通過(guò)所述虛擬機(jī)中的不同虛擬機(jī)的調(diào)度器被遷移至所述虛擬機(jī)的任務(wù)的引用的交叉隊(duì)列數(shù)據(jù)結(jié)構(gòu)。29.根據(jù)權(quán)利要求25所述的設(shè)備,其中,所述傳入業(yè)務(wù)包括第一業(yè)務(wù)和第二業(yè)務(wù),其中,所述并行化引擎包括并行執(zhí)行的第一編譯器任務(wù)和第二編譯器任務(wù)以分別將所述第一業(yè)務(wù)分解為第一組子業(yè)務(wù)并將所述第二業(yè)務(wù)分解為第二組子業(yè)務(wù),以及其中,所述第一編譯器任務(wù)和所述第二編譯器任務(wù)并行執(zhí)行。30.根據(jù)權(quán)利要求29所述的設(shè)備,進(jìn)一步包括:派生用于所述第一組子業(yè)務(wù)的每一個(gè)的子執(zhí)行任務(wù)的第一語(yǔ)句執(zhí)行任務(wù);以及派生用于所述第二組子業(yè)務(wù)的每一個(gè)的子執(zhí)行任務(wù)的第二語(yǔ)句執(zhí)行任務(wù),其中,所述第一組子業(yè)務(wù)的每一個(gè)的子執(zhí)行任務(wù)和所述第二組子業(yè)務(wù)的每一個(gè)的子執(zhí)行任務(wù)在所述執(zhí)行核中的不同執(zhí)行核上并行執(zhí)行。31.根據(jù)權(quán)利要求30所述的設(shè)備,其中,所述傳入業(yè)務(wù)中的第一傳入業(yè)務(wù)和所述傳入業(yè)務(wù)中的第二傳入業(yè)務(wù)分別包括第一數(shù)據(jù)和第二數(shù)據(jù)用于插入到所述內(nèi)存中數(shù)據(jù)庫(kù),其中,所述第一語(yǔ)句執(zhí)行任務(wù)將分配算法應(yīng)用到所述第一數(shù)據(jù)以識(shí)別所述執(zhí)行核中的第一執(zhí)行核從而執(zhí)行所述第一組子業(yè)務(wù)中的一個(gè),其中,所述第二語(yǔ)句執(zhí)行任務(wù)將分配算法應(yīng)用到所述第二數(shù)據(jù)以識(shí)別所述執(zhí)行核中的第二執(zhí)行核從而執(zhí)行所述第二組子業(yè)務(wù)中的一個(gè),并且其中,所述第一組子業(yè)務(wù)中的一個(gè)和所述第二組子業(yè)務(wù)中的一個(gè)分別在所述執(zhí)行核中的所述第一執(zhí)行核和所述執(zhí)行核中的所述第二執(zhí)行核上并行執(zhí)行。32.根據(jù)權(quán)利要求25所述的設(shè)備,進(jìn)一步包括:內(nèi)容分發(fā)引擎,指示所述并行化引擎執(zhí)行聚集業(yè)務(wù)以聚集在所述傳入業(yè)務(wù)中接收的各數(shù)據(jù),其中,所述內(nèi)容分發(fā)引擎輸出由所述并行化引擎聚集的數(shù)據(jù)。33.根據(jù)權(quán)利要求32所述的設(shè)備,其中,所述并行化引擎將所述聚集業(yè)務(wù)分解為聚集子業(yè)務(wù),所述設(shè)備進(jìn)一步包括:所述語(yǔ)句執(zhí)行任務(wù)在所述虛擬機(jī)中的一個(gè)上執(zhí)行以將分配算法應(yīng)用到所述聚集子業(yè)務(wù)從而識(shí)別與存儲(chǔ)用于所述聚集子業(yè)務(wù)的各數(shù)據(jù)的各存儲(chǔ)器分區(qū)相關(guān)聯(lián)的執(zhí)行核,其中,所述語(yǔ)句執(zhí)行任務(wù)針對(duì)所述聚集子業(yè)務(wù)的每一個(gè),派生并部署子執(zhí)行任務(wù)以在用于所述聚集子業(yè)務(wù)的所述執(zhí)行核中所識(shí)別執(zhí)行核上執(zhí)行所述聚集子業(yè)務(wù),其中,所述聚集子業(yè)務(wù)的每一個(gè)的子執(zhí)行任務(wù)并行執(zhí)行以檢索所述聚集子業(yè)務(wù)的各數(shù)據(jù),并且其中,所述語(yǔ)句執(zhí)行任務(wù)接收并聚集所述各數(shù)據(jù)并將聚集的所述數(shù)據(jù)發(fā)送至所述內(nèi)容分發(fā)引擎。34.一種方法,包括:執(zhí)行分別根據(jù)虛擬指令集進(jìn)行操作的多個(gè)虛擬機(jī),其中,所述虛擬機(jī)中的每一個(gè)在計(jì)算設(shè)備的多核硬件處理器的多個(gè)執(zhí)行核中的一個(gè)不同執(zhí)行核上執(zhí)行;使所述執(zhí)行核中的不同執(zhí)行核與多個(gè)存儲(chǔ)器分區(qū)的每一個(gè)相關(guān)聯(lián),其中,所述存儲(chǔ)器分區(qū)的每一個(gè)均存儲(chǔ)所述內(nèi)存中數(shù)據(jù)庫(kù)的數(shù)據(jù);以及利用所述虛擬機(jī)執(zhí)行多個(gè)任務(wù),其中,所述多個(gè)任務(wù)將所述內(nèi)存中數(shù)據(jù)庫(kù)的傳入業(yè)務(wù)分解為子業(yè)務(wù),將所述子業(yè)務(wù)部署到與存儲(chǔ)用于所述子業(yè)務(wù)的數(shù)據(jù)的各存儲(chǔ)器分區(qū)相關(guān)聯(lián)的執(zhí)行核,并在部署有所述子業(yè)務(wù)的各執(zhí)行核上并行執(zhí)行所述傳入業(yè)務(wù)的所述子業(yè)務(wù)。35.根據(jù)權(quán)利要求34所述的方法,進(jìn)一步包括:利用所述虛擬機(jī)中的一個(gè)上的語(yǔ)句執(zhí)行任務(wù),將分配算法應(yīng)用到所述子業(yè)務(wù)以識(shí)別與存儲(chǔ)所述子業(yè)務(wù)的數(shù)據(jù)的分區(qū)相關(guān)聯(lián)的所述各執(zhí)行核,其中,所述語(yǔ)句執(zhí)行任務(wù)針對(duì)所述子業(yè)務(wù)的每一個(gè)派生并部署子執(zhí)行任務(wù)以在所述執(zhí)行核的用于子業(yè)務(wù)的經(jīng)識(shí)別的執(zhí)行核上執(zhí)行所述子業(yè)務(wù),其中,相應(yīng)子業(yè)務(wù)的子執(zhí)行任務(wù)并行在所述虛擬機(jī)上執(zhí)行。36.根據(jù)權(quán)利要求35所述的方法,其中,所述語(yǔ)句執(zhí)行任務(wù)將所述分配算法應(yīng)用到由所述傳入業(yè)務(wù)引用的多個(gè)數(shù)據(jù),其中,所述分配算法針對(duì)由所述傳入業(yè)務(wù)引用的所述多個(gè)數(shù)據(jù)的每一個(gè)識(shí)別所述執(zhí)行核中的一個(gè)不同執(zhí)行核,其中,所述子業(yè)務(wù)的每一個(gè)均包括由所述傳入業(yè)務(wù)引用的所述多個(gè)數(shù)據(jù)中的相應(yīng)數(shù)據(jù)的業(yè)務(wù),并且其中,所述語(yǔ)句執(zhí)行任務(wù)向用于所述多個(gè)數(shù)據(jù)的每一個(gè)的所述執(zhí)行核的經(jīng)識(shí)別的執(zhí)行核派生子執(zhí)行任務(wù)以執(zhí)行相應(yīng)子業(yè)務(wù)。37.根據(jù)權(quán)利要求35所述的方法,其中,所述語(yǔ)句執(zhí)行任務(wù)將業(yè)務(wù)語(yǔ)法和模式應(yīng)用到所述傳入業(yè)務(wù)以生成均包括步進(jìn)程序庫(kù)的步進(jìn)程序的子業(yè)務(wù),其中,所述模式描述所述內(nèi)存中數(shù)據(jù)庫(kù)的數(shù)據(jù)庫(kù)對(duì)象,其中,所述步進(jìn)程序庫(kù)包括分別指定可由所述多個(gè)核執(zhí)行的指令的一個(gè)或多個(gè)步進(jìn)程序,并且其中,所述業(yè)務(wù)語(yǔ)法描述符合所述傳入業(yè)務(wù)的語(yǔ)言并包括引用所述步進(jìn)程序庫(kù)的步進(jìn)程序的一個(gè)或多個(gè)替代法則。38.根據(jù)權(quán)利要求34所述的方法,其中,所述虛擬機(jī)異步執(zhí)行所述多個(gè)任務(wù),所述方法進(jìn)一步包括:根據(jù)定義周期在所述虛擬機(jī)的每一個(gè)上執(zhí)行心跳任務(wù)以在執(zhí)行所述心跳任務(wù)時(shí)使相應(yīng)虛擬機(jī)等待執(zhí)行任何額外任務(wù)直至所述虛擬機(jī)接收到信號(hào)為止。39.根據(jù)權(quán)利要求38所述的方法,其中,所述心跳任務(wù)包括指定鉤狀任務(wù)的任務(wù)鉤子,其中,所述虛擬機(jī)中的一個(gè)執(zhí)行所述鉤狀任務(wù),并且其中在,所述虛擬機(jī)中的所述一個(gè)完成所述鉤狀任務(wù)之后將所述信號(hào)發(fā)送至其他虛擬機(jī)。40.根據(jù)權(quán)利要求39所述的方法,其中,所述鉤狀任務(wù)包括在執(zhí)行時(shí)生成并存儲(chǔ)所述內(nèi)存中數(shù)據(jù)庫(kù)的檢查點(diǎn)的檢查點(diǎn)任務(wù)。41.根據(jù)權(quán)利要求34所述的方法,其中,所述虛擬機(jī)中的每一個(gè)均包括用于相應(yīng)執(zhí)行核的調(diào)度器,并且其中,所述調(diào)度器的每一個(gè)均保持存儲(chǔ)被調(diào)度為由所述多個(gè)執(zhí)行核中的所述相應(yīng)執(zhí)行核執(zhí)行的任務(wù)的引用的單獨(dú)運(yùn)行列表數(shù)據(jù)結(jié)構(gòu)。42.根據(jù)權(quán)利要求41所述的方法,其中,所述虛擬機(jī)中的每一個(gè)均包括存儲(chǔ)通過(guò)虛擬機(jī)中的一個(gè)不同虛擬機(jī)的調(diào)度器被遷移至所述虛擬機(jī)的任務(wù)的引用的交叉隊(duì)列數(shù)據(jù)結(jié)構(gòu)。43.根據(jù)權(quán)利要求42所述的方法,其中,所述虛擬機(jī)的第一虛擬機(jī)的調(diào)度器將第一任務(wù)的引用排隊(duì)到所述虛擬機(jī)中的第二虛擬機(jī)的所述交叉隊(duì)列數(shù)據(jù)結(jié)構(gòu),而所述第二虛擬機(jī)同時(shí)執(zhí)行在由所述第二虛擬機(jī)的所述調(diào)度器保持的運(yùn)行列表中引用的第二任務(wù)。44.根據(jù)權(quán)利要求34所述的方法,其中,所述虛擬機(jī)的每一個(gè)均定義存儲(chǔ)由待機(jī)任務(wù)的剩余待機(jī)時(shí)間排序的待機(jī)任務(wù)的引用的待機(jī)列表數(shù)據(jù)結(jié)構(gòu),并且其中,所述多個(gè)執(zhí)行核中的每一個(gè)均包括計(jì)時(shí)器,所述方法進(jìn)一步包括:在所述虛擬機(jī)的每一個(gè)上執(zhí)行報(bào)警任務(wù)以至少基于所述虛擬機(jī)的所述待機(jī)列表數(shù)據(jù)結(jié)構(gòu)的待機(jī)任務(wù)的最小剩余待機(jī)時(shí)間來(lái)設(shè)置相應(yīng)執(zhí)行核的所述計(jì)時(shí)器的到點(diǎn)時(shí)間,以及其中,所述計(jì)時(shí)器到點(diǎn)使得所述報(bào)警任務(wù)喚醒待機(jī)列表的下一待機(jī)任務(wù)。45.根據(jù)權(quán)利要求34所述的方法,其中,所述傳入業(yè)務(wù)包括插入到所述內(nèi)存中數(shù)據(jù)庫(kù)、從所述內(nèi)存中數(shù)據(jù)庫(kù)刪除、以及更新所述內(nèi)存中數(shù)據(jù)庫(kù)中的一個(gè)。46.根據(jù)權(quán)利要求34所述的方法,其中,所述計(jì)算設(shè)備的數(shù)據(jù)庫(kù)加速引擎被定位在至少一個(gè)數(shù)據(jù)源與至少一個(gè)數(shù)據(jù)消費(fèi)者之間。47.根據(jù)權(quán)利要求34所述的方法,其中,所述傳入業(yè)務(wù)包括刪除業(yè)務(wù)以從所述內(nèi)存中數(shù)據(jù)庫(kù)中刪除行,所述方法進(jìn)一步包括:執(zhí)行多個(gè)垃圾收集器任務(wù)以識(shí)別所述內(nèi)存中數(shù)據(jù)庫(kù)的多個(gè)數(shù)據(jù)結(jié)構(gòu)中的行的引用以及并行移除所述多個(gè)數(shù)據(jù)結(jié)構(gòu)中的行的引用。48.根據(jù)權(quán)利要求34所述的方法,進(jìn)一步包括:利用內(nèi)容分發(fā)引擎配置多個(gè)私人數(shù)據(jù)信道以分別將唯一數(shù)據(jù)分發(fā)至多個(gè)數(shù)據(jù)消費(fèi)者中的相應(yīng)數(shù)據(jù)消費(fèi)者。49.根據(jù)權(quán)利要求48所述的方法,進(jìn)一步包括:利用在虛擬機(jī)中的一個(gè)上執(zhí)行的語(yǔ)句執(zhí)行任務(wù)將分配算法應(yīng)用到所述子業(yè)務(wù)以識(shí)別與存儲(chǔ)所述子業(yè)務(wù)的數(shù)據(jù)的各存儲(chǔ)器分區(qū)相關(guān)聯(lián)的各執(zhí)行核,其中,所述語(yǔ)句執(zhí)行任務(wù)針對(duì)所述子業(yè)務(wù)的每一個(gè)派生并部署子執(zhí)行任務(wù)以在所述子業(yè)務(wù)的執(zhí)行核中所識(shí)別的一個(gè)執(zhí)行核上執(zhí)行所述子業(yè)務(wù)。50.根據(jù)權(quán)利要求48所述的方法,其中,所述虛擬機(jī)的每一個(gè)均包括相應(yīng)執(zhí)行核的調(diào)度器,并且其中,所述調(diào)度器的每一個(gè)均保持存儲(chǔ)被調(diào)度為由所述多個(gè)執(zhí)行核中的相應(yīng)執(zhí)行核執(zhí)行的任務(wù)的引用的單獨(dú)運(yùn)行列表數(shù)據(jù)結(jié)構(gòu)。51.根據(jù)權(quán)利要求48所述的方法,其中,所述內(nèi)容分發(fā)引擎提供允許數(shù)據(jù)消費(fèi)者指定連續(xù)查詢的應(yīng)用程序編程接口(API),所述連續(xù)查詢指示所述內(nèi)容分發(fā)引擎連續(xù)將所述連續(xù)查詢應(yīng)用到由所述設(shè)備新接收的數(shù)據(jù)。52.根據(jù)權(quán)利要求48所述的方法,進(jìn)一步包括:利用內(nèi)容分發(fā)引擎接收連續(xù)查詢,所述連續(xù)查詢指示內(nèi)容分發(fā)引擎連續(xù)將連續(xù)查詢應(yīng)用到由設(shè)備新接收的數(shù)據(jù)。53.根據(jù)權(quán)利要求52所述的方法,其中,所述連續(xù)查詢指定未來(lái)令牌。54.根據(jù)權(quán)利要求53所述的方法,進(jìn)一步包括:利用所述內(nèi)容分發(fā)引擎接收請(qǐng)求第一數(shù)據(jù)的第一業(yè)務(wù)和請(qǐng)求第二數(shù)據(jù)的第二業(yè)務(wù);利用所述內(nèi)容分發(fā)引擎計(jì)算請(qǐng)求所述第一數(shù)據(jù)和所述第二數(shù)據(jù)的聚集業(yè)務(wù);以及將所述聚集業(yè)務(wù)輸出至另一設(shè)備。55.根據(jù)權(quán)利要求53所述的方法,利用所述內(nèi)容分發(fā)引擎接收請(qǐng)求第一數(shù)據(jù)和第二數(shù)據(jù)的聚集業(yè)務(wù);指示并行化引擎執(zhí)行聚集業(yè)務(wù)以聚集所述第一數(shù)據(jù)和所述第二數(shù)據(jù);以及利用所述內(nèi)容分發(fā)引擎響應(yīng)于所述聚集業(yè)務(wù)輸出由所述并行化引擎聚集的所述第一數(shù)據(jù)和所述第二數(shù)據(jù)。56.根據(jù)權(quán)利要求55所述的方法,其中,所述多個(gè)任務(wù)將所述聚集業(yè)務(wù)分解為多個(gè)子業(yè)務(wù)、并行執(zhí)行所述子業(yè)務(wù)以從所述內(nèi)存中數(shù)據(jù)庫(kù)中檢索所述第一數(shù)據(jù)和所述第二數(shù)據(jù),并將所述第一數(shù)據(jù)和所述第二數(shù)據(jù)返回到所述內(nèi)容分發(fā)引擎。57.根據(jù)權(quán)利要求34所述的方法,進(jìn)一步包括:利用數(shù)據(jù)攝取引擎建立與外部設(shè)備的多個(gè)并行網(wǎng)絡(luò)連接;利用所述數(shù)據(jù)攝取引擎通過(guò)所述并行網(wǎng)絡(luò)連接接收傳入業(yè)務(wù);以及利用并行化引擎在所述多核硬件處理器上執(zhí)行所述多個(gè)任務(wù)而將所述內(nèi)存中數(shù)據(jù)庫(kù)的所述傳入業(yè)務(wù)分解為子業(yè)務(wù)。58.根據(jù)權(quán)利要求57所述的方法,進(jìn)一步包括:利用所述虛擬機(jī)中的一個(gè)上的語(yǔ)句執(zhí)行任務(wù)將分配算法應(yīng)用到所述子業(yè)務(wù)以識(shí)別與存儲(chǔ)所述子業(yè)務(wù)的數(shù)據(jù)的各存儲(chǔ)器分區(qū)相關(guān)聯(lián)的執(zhí)行核,其中,所述語(yǔ)句執(zhí)行任務(wù)針對(duì)所述子業(yè)務(wù)中的每一個(gè)派生并部署子執(zhí)行任務(wù)以在所述子業(yè)務(wù)的執(zhí)行核中所識(shí)別的一個(gè)執(zhí)行核上執(zhí)行所述子業(yè)務(wù)。59.根據(jù)權(quán)利要求58所述的方法,其中,所述虛擬機(jī)的每一個(gè)均包括相應(yīng)執(zhí)行核的調(diào)度器,并且其中,所述調(diào)度器的每一個(gè)均保持存儲(chǔ)被調(diào)度為由多個(gè)執(zhí)行核中的相應(yīng)執(zhí)行核執(zhí)行的任務(wù)的引用的單獨(dú)運(yùn)行列表數(shù)據(jù)結(jié)構(gòu)。60.根據(jù)權(quán)利要求59所述的方法,其中,所述虛擬機(jī)的每一個(gè)均包括存儲(chǔ)通過(guò)所述虛擬機(jī)中的一個(gè)不同虛擬機(jī)的調(diào)度器被遷移至所述虛擬機(jī)的任務(wù)的引用的交叉隊(duì)列數(shù)據(jù)結(jié)構(gòu)。61.根據(jù)權(quán)利要求57所述的方法,其中,所述傳入業(yè)務(wù)包括第一業(yè)務(wù)和第二業(yè)務(wù),所述方法進(jìn)一步包括:與將所述第一業(yè)務(wù)分解為第一組子業(yè)務(wù)并將所述第二業(yè)務(wù)分解為第二組子業(yè)務(wù)平行地,并行執(zhí)行所述并行化引擎的第一編譯器任務(wù)和第二編譯器任務(wù)。62.根據(jù)權(quán)利要求61所述的方法,進(jìn)一步包括:利用第一語(yǔ)句執(zhí)行任務(wù)派生所述第一組子業(yè)務(wù)的每一個(gè)的子執(zhí)行任務(wù);以及利用第二語(yǔ)句執(zhí)行任務(wù)派生所述第二組子業(yè)務(wù)的每一個(gè)的子執(zhí)行任務(wù),其中,所述第一組子業(yè)務(wù)的每一個(gè)的所述子執(zhí)行任務(wù)和所述第二組子業(yè)務(wù)的每一個(gè)的所述子執(zhí)行任務(wù)在所述執(zhí)行核中的不同執(zhí)行核上并行地執(zhí)行。63.根據(jù)權(quán)利要求62所述的方法,其中,所述傳入業(yè)務(wù)中的第一傳入業(yè)務(wù)和所述傳入業(yè)務(wù)中的第二傳入業(yè)務(wù)分別包括第一數(shù)據(jù)和第二數(shù)據(jù)用于插入到所述內(nèi)存中數(shù)據(jù)庫(kù),其中,所述第一語(yǔ)句執(zhí)行任務(wù)將分配算法應(yīng)用到所述第一數(shù)據(jù)以識(shí)別所述執(zhí)行核中的第一執(zhí)行核以執(zhí)行所述第一組子業(yè)務(wù)中的一個(gè),其中,所述第二語(yǔ)句執(zhí)行任務(wù)將分配算法應(yīng)用到所述第二數(shù)據(jù)以識(shí)別所述執(zhí)行核中的第二執(zhí)行核以執(zhí)行所述第二組子業(yè)務(wù)中的一個(gè),并且其中,所述第一組子業(yè)務(wù)中的一個(gè)和所述第二組子業(yè)務(wù)中的一個(gè)分別在所述執(zhí)行核中的所述第一執(zhí)行核和所述執(zhí)行核中的所述第二執(zhí)行核上并行執(zhí)行。64.根據(jù)權(quán)利要求57所述的方法,進(jìn)一步包括:利用內(nèi)容分發(fā)引擎指示所述并行化引擎執(zhí)行聚集業(yè)務(wù)以聚集在所述傳入業(yè)務(wù)中接收的各數(shù)據(jù);利用所述內(nèi)容分發(fā)引擎輸出由所述并行化引擎聚集的數(shù)據(jù)。65.根據(jù)權(quán)利要求64所述的方法,其中,所述并行化引擎將所述聚集業(yè)務(wù)分解為聚集子業(yè)務(wù),所述方法進(jìn)一步包括:在所述虛擬機(jī)中的一個(gè)上執(zhí)行語(yǔ)句執(zhí)行任務(wù)以將分配算法應(yīng)用到所述聚集子業(yè)務(wù)以識(shí)別與存儲(chǔ)所述聚集子業(yè)務(wù)的各數(shù)據(jù)的各存儲(chǔ)器分區(qū)相關(guān)聯(lián)的執(zhí)行核,其中,所述語(yǔ)句執(zhí)行任務(wù)針對(duì)所述聚集子業(yè)務(wù)的每一個(gè)派生并部署子執(zhí)行任務(wù)以在所述聚集子業(yè)務(wù)的執(zhí)行核中所識(shí)別的一個(gè)執(zhí)行核上執(zhí)行所述聚集子業(yè)務(wù),其中,所述聚集子業(yè)務(wù)的每一個(gè)的子執(zhí)行任務(wù)并行執(zhí)行以檢索所述聚集子業(yè)務(wù)的各數(shù)據(jù),以及其中,所述語(yǔ)句執(zhí)行任務(wù)接收并聚集各數(shù)據(jù)并將所述聚集數(shù)據(jù)發(fā)送至所述內(nèi)容分發(fā)引擎。66.一種計(jì)算機(jī)可讀存儲(chǔ)設(shè)備,包括在執(zhí)行時(shí)使具有多個(gè)執(zhí)行核的多核硬件處理器進(jìn)行以下項(xiàng)的指令:執(zhí)行根據(jù)虛擬指令集操作的多個(gè)虛擬機(jī),其中,所述虛擬機(jī)的每一個(gè)在所述多個(gè)執(zhí)行核中的一個(gè)不同執(zhí)行核上執(zhí)行;使所述執(zhí)行核中的不同執(zhí)行核與多個(gè)存儲(chǔ)器分區(qū)的每一個(gè)相關(guān)聯(lián),其中,所述存儲(chǔ)器分區(qū)的每一個(gè)均存儲(chǔ)用于內(nèi)存中數(shù)據(jù)庫(kù)的數(shù)據(jù);以及利用所述虛擬機(jī)執(zhí)行多個(gè)任務(wù),其中,所述多個(gè)任務(wù)將用于所述內(nèi)存中數(shù)據(jù)庫(kù)的傳入業(yè)務(wù)分解為子業(yè)務(wù),將所述子業(yè)務(wù)部署到與存儲(chǔ)所述子業(yè)務(wù)的數(shù)據(jù)的各存儲(chǔ)器分區(qū)相關(guān)聯(lián)的執(zhí)行核,并在部署有所述子業(yè)務(wù)的各執(zhí)行核上并行執(zhí)行所述傳入業(yè)務(wù)的所述子業(yè)務(wù)。67.根據(jù)權(quán)利要求66所述的計(jì)算機(jī)可讀存儲(chǔ)設(shè)備,其中,所述指令在執(zhí)行時(shí)進(jìn)一步使所述多核硬件處理器進(jìn)行以下項(xiàng):利用內(nèi)容分發(fā)引擎配置多個(gè)私人數(shù)據(jù)信道以分別將唯一數(shù)據(jù)分發(fā)至多個(gè)數(shù)據(jù)消費(fèi)者中的相應(yīng)數(shù)據(jù)消費(fèi)者;以及利用并行化引擎部署多個(gè)任務(wù)以在核上并行執(zhí)行從而響應(yīng)于來(lái)自所述內(nèi)容分發(fā)引擎的查詢對(duì)所述內(nèi)存中數(shù)據(jù)庫(kù)并行執(zhí)行業(yè)務(wù)。68.根據(jù)權(quán)利要求67所述的計(jì)算機(jī)可讀存儲(chǔ)設(shè)備,其中,所述指令在執(zhí)行時(shí)進(jìn)一步使所述多核硬件處理器進(jìn)行以下項(xiàng):在虛擬機(jī)中的一個(gè)上執(zhí)行語(yǔ)句執(zhí)行任務(wù)以將分配算法應(yīng)用到子業(yè)務(wù)以識(shí)別與存儲(chǔ)所述子業(yè)務(wù)的數(shù)據(jù)的各存儲(chǔ)器分區(qū)相關(guān)聯(lián)的各執(zhí)行核,其中,所述語(yǔ)句執(zhí)行任務(wù)針對(duì)所述子業(yè)務(wù)的每一個(gè)派生并部署子執(zhí)行任務(wù)以在所述子業(yè)務(wù)的執(zhí)行核中所識(shí)別的執(zhí)行核上執(zhí)行所述子業(yè)務(wù)。69.根據(jù)權(quán)利要求66所述的計(jì)算機(jī)可讀存儲(chǔ)設(shè)備,其中,所述指令在執(zhí)行時(shí)進(jìn)一步使所述多核硬件處理器進(jìn)行以下項(xiàng):利用數(shù)據(jù)攝取引擎建立與外部設(shè)備的多個(gè)并行網(wǎng)絡(luò)連接;利用所述數(shù)據(jù)攝取引擎通過(guò)所述并行網(wǎng)絡(luò)連接接收傳入業(yè)務(wù);利用并行化引擎執(zhí)行多個(gè)任務(wù)將內(nèi)存中數(shù)據(jù)庫(kù)的傳入業(yè)務(wù)分解為子業(yè)務(wù),其中,所述內(nèi)存中數(shù)據(jù)庫(kù)包括存儲(chǔ)在多個(gè)存儲(chǔ)器分區(qū)中的數(shù)據(jù),其中,所述存儲(chǔ)器分區(qū)的每一個(gè)分別與所述執(zhí)行核中的不同執(zhí)行核相關(guān)聯(lián);利用所述并行化引擎將所述子業(yè)務(wù)部署到與存儲(chǔ)所述子業(yè)務(wù)的數(shù)據(jù)的各存儲(chǔ)器分區(qū)相關(guān)聯(lián)的執(zhí)行核;以及在部署有所述子業(yè)務(wù)的各執(zhí)行核上并行執(zhí)行所述傳入業(yè)務(wù)的所述子業(yè)務(wù)。70.根據(jù)權(quán)利要求69所述的計(jì)算機(jī)可讀存儲(chǔ)設(shè)備,其中,所述指令在執(zhí)行時(shí)進(jìn)一步使所述多核硬件處理器進(jìn)行以下項(xiàng):利用所述虛擬機(jī)中的一個(gè)上的語(yǔ)句執(zhí)行任務(wù),將分配算法應(yīng)用到所述子業(yè)務(wù)以識(shí)別與存儲(chǔ)所述子業(yè)務(wù)的數(shù)據(jù)的各存儲(chǔ)器分區(qū)相關(guān)聯(lián)的各執(zhí)行核,其中,所述語(yǔ)句執(zhí)行任務(wù)針對(duì)所述子業(yè)務(wù)的每一個(gè)派生并部署子執(zhí)行任務(wù)以在所述子業(yè)務(wù)的執(zhí)行核中所識(shí)別的執(zhí)行核上執(zhí)行所述子業(yè)務(wù)?!疚臋n編號(hào)】G06F9/50GK103930875SQ201280039092【公開(kāi)日】2014年7月16日申請(qǐng)日期:2012年6月15日優(yōu)先權(quán)日:2011年6月16日【發(fā)明者】雷蒙德·J·許特爾,阿爾卡·亞馬提申請(qǐng)人:尤塞瑞斯公司
      網(wǎng)友詢問(wèn)留言 已有0條留言
      • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1