日韩成人黄色,透逼一级毛片,狠狠躁天天躁中文字幕,久久久久久亚洲精品不卡,在线看国产美女毛片2019,黄片www.www,一级黄色毛a视频直播

用于針對存儲器內(nèi)的多個存儲區(qū)域掃描指定量的結(jié)果的方法、系統(tǒng)和計算機程序的制作方法

文檔序號:10663603閱讀:570來源:國知局
用于針對存儲器內(nèi)的多個存儲區(qū)域掃描指定量的結(jié)果的方法、系統(tǒng)和計算機程序的制作方法
【專利摘要】根據(jù)本發(fā)明的實施例,提供用于針對存儲器內(nèi)的多個存儲區(qū)域掃描指定量的結(jié)果的方法、系統(tǒng)和計算機可讀介質(zhì),其中每個存儲區(qū)域與一區(qū)間關(guān)聯(lián),所述區(qū)間包括指示該存儲區(qū)域內(nèi)的值的值范圍的第一和第二區(qū)間值。所述技術(shù)包括:將第一區(qū)間值按次序排序,其中第一區(qū)間值的次序確定所述多個存儲區(qū)域的掃描次序;確定結(jié)果值,其中所述結(jié)果值是上界、下界或在所述指定量的結(jié)果之外;以及檢查已排序的第一區(qū)間值,并且響應(yīng)于確定的結(jié)果值與該存儲區(qū)域的第一區(qū)間值的比較而掃描對應(yīng)個體存儲區(qū)域。在一些實施例中,在確立已實現(xiàn)所述指定量的結(jié)果并且已排序的第一區(qū)間值的列表中的第一區(qū)間值大于確定的結(jié)果值時退出掃描。
【專利說明】
用于針對存儲器內(nèi)的多個存儲區(qū)域掃描指定量的結(jié)果的方法、系統(tǒng)和計算機程序
技術(shù)領(lǐng)域
[0001]本發(fā)明實施例涉及減少用于查詢評估的計算工作負荷,并且更具體地講,涉及通過使用區(qū)域圖中的信息控制從表掃描的條件退出來減少計算工作負荷。
【背景技術(shù)】
[0002]使用查詢搜索信息可導致搜索大數(shù)據(jù)庫表。由于與排序和重新組織關(guān)聯(lián)的較大的計算成本,通常不按照已排序形式保持存儲在大數(shù)據(jù)庫表中的信息。將一組數(shù)據(jù)值映射到與那些數(shù)據(jù)值相關(guān)的一組記錄的索引可被用于提供按照已排序次序存儲數(shù)據(jù)的效果。然而,存儲大數(shù)據(jù)庫表的分布式數(shù)據(jù)倉庫可在多個存儲盤上分割一組記錄,并且把將給定數(shù)據(jù)值與和該數(shù)據(jù)值相關(guān)的記錄進行映射的索引的一部分布置在同一位置可能需要另外的網(wǎng)絡(luò)開銷,導致較差的延時和增加的計算工作負荷。
[0003]當查詢評估需要掃描大表時,一些數(shù)據(jù)倉庫管理系統(tǒng)可保持關(guān)于表存儲的每個區(qū)域的元數(shù)據(jù)。
[0004]US 8572091公開了:一種實現(xiàn)可縮放數(shù)據(jù)存儲服務(wù)的系統(tǒng)可代表服務(wù)客戶機在非關(guān)系數(shù)據(jù)倉庫中保持表。請參見摘要、附圖1-25、第I欄第5-26行、第45欄第1-67行和權(quán)利要求1-35。
[0005]US 8296306涉及一種在與數(shù)據(jù)集的大小成線性比例的時間中僅從數(shù)據(jù)集檢索具有最大(或最小)鍵值的k個數(shù)據(jù)元素(S卩,前k個結(jié)果)的算法。請參見摘要、附圖1-2、第2欄第5_67彳丁、第3欄第1-67彳丁和權(quán)利要求1-14。
[0006]US 8239404描述了一種圖遍歷,所述圖遍歷高效地識別同時具有入口、出口和對應(yīng)的邊的強連通分量。通過在強連通分量已被識別之后掃描每個節(jié)點能夠識別入口節(jié)點和出口節(jié)點,但重新訪問這些節(jié)點導致不想要的開銷。請參見摘要、附圖1-4、第I欄第5-67行、第2欄第1-5行和權(quán)利要求1_11。
[0007]US 8204873公開了一種用于在數(shù)據(jù)庫服務(wù)器的數(shù)據(jù)庫引擎上優(yōu)化查詢表達式的方法。請參見摘要、附圖1 -20、第I欄第5-43行、第12欄第1-67行和權(quán)利要求1 -15。
[0008]US 8010766公開了一種用于管理表掃描處理的方法、信息處理系統(tǒng)和計算機可讀介質(zhì)。請參見摘要、附圖1-10、第2欄第65-67行、第8欄第1-67行和權(quán)利要求1-20。
[0009]US 6154740公開了一種用于在顯示裝置上顯示已排序列表的系統(tǒng)和方法以及一種包括所述系統(tǒng)或所述方法的計算機。請參見摘要、附圖1-3、第I欄第5-67行、第2欄第1-47行和權(quán)利要求1-20。
[0010]US 6973452公開了:大信息空間被劃分成許多較小的信息盤區(qū)(extent)。利用關(guān)于這些盤區(qū)包含的信息的統(tǒng)計對這些盤區(qū)做注解。當對信息的搜索包括基于值的限制時,能夠?qū)⑾胍闹捣秶c每個盤區(qū)的值范圍進行比較。如果想要的值范圍位于所述盤區(qū)的范圍外部,則所述盤區(qū)不會持有所述想要的值并且不需要被包括在所述搜索中。
[0011]US 20130251235公開了一種用于自動地對與游戲相關(guān)的文檔進行處理和排序的系統(tǒng)。請參見摘要、附圖1-5、第
[0018]-
[0052]、
[0055]-
[0062]行和權(quán)利要求1-38。
[0012]US 20130046784公開了一種將符號串與規(guī)則集進行匹配的方法和系統(tǒng)。請參見摘要、附圖 1-4、第
[0005]-
[0007]、
[0044]-
[0050]行和權(quán)利要求 1-10。
[0013]在US20120330954中,一種實現(xiàn)可縮放數(shù)據(jù)存儲服務(wù)的系統(tǒng)可代表客戶機在非關(guān)系數(shù)據(jù)倉庫中保持表。請參見摘要、附圖1-25、第[0001 ] - [ 0003 ]、[ 0170 ] -[ 0178 ]行和權(quán)利要求1-35。
[0014]US 20120317128公開了用于最佳地處理多范圍掃描中的N個排序查詢的方法和設(shè)備,包括:基于查詢中所包括的第一數(shù)量的提取的記錄分配緩沖器;在查詢中所包括的第一列表中提取與第一屬性相關(guān)的第一數(shù)據(jù)并且將提取的第一數(shù)據(jù)存儲在所述緩沖器中;在查詢中所包括的第一列表中提取未提取的與第一屬性相關(guān)的第二數(shù)據(jù);以及通過將存儲在所述緩沖器中的數(shù)據(jù)與第二數(shù)據(jù)進行比較來更新所述緩沖器以滿足所述查詢,其中所述查詢是用于基于第一屬性和第二屬性排序的至少一個記錄的多范圍掃描中的N個排序查詢。請參見摘要、附圖1-7、第
[0003]-
[0018]、
[0029]-
[0092]行和權(quán)利要求1-20。
[0015]US 20110082854公開了用于多租戶數(shù)據(jù)庫系統(tǒng)的查詢優(yōu)化的方法和系統(tǒng)。請參見摘要、附圖 1-9、第
[0002]-
[0010]、
[0106]-
[0125]行和權(quán)利要求 1-45。
[0016]以下列出其它感興趣的文檔:
[0017]HER0D0T0U等,“A SQL-Tuning-Aware Query Optimizer”,Proceedings of theVLDB Endowment,Vol 3,N0.1,2010年9月13-17,第1-12頁。
[0018]IP.COM等,“Method And System of Restructuring Imperfect Loop Nest WithEarly Exits to Facilitate Locality Transformat1ns”,IPC0M000232309D,2013年10月,第卜7頁。
[0019]IP.COM等,“System And Method For GROUP BY With IN-LIST SubqueryOptimizat1n”,IPC0M000229573D,2013年8月6日,第 1-6頁。
[0020]GRAEFE , uFast Loads and Fast Queries,,,Springer-Verlag,Berl in,Heidelberg,DaWaK 2009,LNCS 5691,第111-124頁。

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

[0021]根據(jù)第一方面,提供一種用于針對存儲器內(nèi)的多個存儲區(qū)域掃描指定量的結(jié)果的計算機實現(xiàn)的方法,其中每個存儲區(qū)域與一區(qū)間關(guān)聯(lián),該區(qū)間包括指示該存儲區(qū)域內(nèi)的值的值范圍的第一和第二區(qū)間值,所述計算機實現(xiàn)的方法包括:將第一區(qū)間值按一次序排序,其中第一區(qū)間值的次序確定所述多個存儲區(qū)域的掃描次序;確定結(jié)果值,其中所述結(jié)果值是上界、下界或在所述指定量的結(jié)果之外;以及檢查已排序的第一區(qū)間值,并且根據(jù)需要響應(yīng)于該存儲區(qū)域的第一區(qū)間值與確定的結(jié)果值的比較而掃描對應(yīng)的個體存儲區(qū)域。
[0022]根據(jù)第二方面,提供一種系統(tǒng),所述系統(tǒng)包括:存儲器,包括多個存儲區(qū)域,其中每個存儲區(qū)域與一區(qū)間關(guān)聯(lián),所述區(qū)間包括指示該存儲區(qū)域內(nèi)的值的值范圍的第一和第二區(qū)間值;網(wǎng)絡(luò)接口;和處理器,被配置為:將第一區(qū)間值按一定次序排序,其中第一區(qū)間值的次序確定所述多個存儲區(qū)域的掃描次序;確定結(jié)果值,其中所述結(jié)果值是上界、下界或在指定量的結(jié)果之外;以及檢查已排序的第一區(qū)間值,并且根據(jù)需要響應(yīng)于該存儲區(qū)域的第一區(qū)間值與確定的結(jié)果值的比較而針對存儲器內(nèi)的對應(yīng)的個體存儲區(qū)域掃描所述指定量的結(jié)果O
[0023]根據(jù)第三方面,提供一種用于向用戶提供信息的計算機程序產(chǎn)品,包括包含計算機可讀程序代碼的計算機可讀存儲介質(zhì),所述計算機可讀程序代碼當由處理器執(zhí)行時使處理器:對于存儲器內(nèi)的多個存儲區(qū)域,將第一區(qū)間值按一定次序排序,其中第一區(qū)間值的次序確定存儲區(qū)域的掃描次序,每個存儲區(qū)域與一區(qū)間關(guān)聯(lián),所述區(qū)間包括指示該存儲區(qū)域內(nèi)的值的值范圍的第一和第二區(qū)間值;確定結(jié)果值,其中所述結(jié)果值是上界、下界或在指定量的結(jié)果之外;以及檢查已排序的第一區(qū)間值,并且根據(jù)需要響應(yīng)于該存儲區(qū)域的第一區(qū)間值與確定的結(jié)果值的比較而針對存儲器中的對應(yīng)的個體存儲區(qū)域掃描所述指定量的結(jié)果O
[0024]在其它實施例中,這里公開的技術(shù)可包括對第二區(qū)間值進行排序。
[0025]根據(jù)實施例,提供一種用于使用幾乎已排序的映射圖較早退出松散地排序和/或分組的關(guān)系的表掃描的解決方案。
【附圖說明】
[0026]通常,各種附圖中的相同的標號被用于指定相同的部件。
[0027]現(xiàn)在將僅作為例子并且參照下面的附圖描述本發(fā)明的實施例:
[0028]圖1是用于與本發(fā)明的實施例一起使用的示例性計算環(huán)境的示圖;
[0029]圖2A是根據(jù)本發(fā)明的實施例的表存儲的區(qū)域(盤區(qū))的例子的示圖;
[0030]圖2B是根據(jù)本發(fā)明的實施例的與表存儲的區(qū)域?qū)?yīng)的元數(shù)據(jù)的例子的示圖;
[0031]圖3是一般地示出根據(jù)本發(fā)明的實施例的使用與存儲區(qū)域關(guān)聯(lián)的元數(shù)據(jù)確定是否掃描該存儲區(qū)域的過程流程圖;
[0032]圖4A-4B是根據(jù)本發(fā)明的實施例的基于圖3的流程圖的更具體的過程流程圖并且示出元數(shù)據(jù)可被用于控制從表掃描的條件退出的方式;
[0033]圖5是示出根據(jù)本發(fā)明的實施例的與存儲區(qū)域關(guān)聯(lián)的元數(shù)據(jù)可在存儲區(qū)域中的記錄被添加或刪除時被更新的方式的另一過程流程圖;
[0034]圖6是根據(jù)本發(fā)明的實施例的系統(tǒng)/設(shè)備的例子。
【具體實施方式】
[0035]數(shù)據(jù)倉庫查詢可頻繁地對一組結(jié)果值進行排序并且將所述一組結(jié)果值限制為結(jié)果值的子集。典型方法包括:響應(yīng)于查詢而掃描大數(shù)據(jù)表以發(fā)現(xiàn)結(jié)果,對結(jié)果進行排序和/或聚合,并且丟棄除例如一組前N個結(jié)果(其中N是任何整數(shù)(例如50))之外的所有結(jié)果。
[0036]當大表被存儲在盤上時,它可足夠大或足夠碎片化,從而將盤磁頭移動到許多不同盤區(qū)域以搜索所述大表變得耗時。與存儲區(qū)域?qū)?yīng)的元數(shù)據(jù)可被用于描繪所述存儲區(qū)域內(nèi)所包含的表數(shù)據(jù)。例如,第一區(qū)間值可代表針對行的每個范圍的每個列的最小數(shù)據(jù)值,并且第二區(qū)間值可代表針對行的每個范圍的每個列的最大數(shù)據(jù)值。第一和第二區(qū)間值都代表可針對各種存儲區(qū)域確定的元數(shù)據(jù)的類型,并且(結(jié)合另外的信息的類型)也可被稱為“區(qū)域圖(zone map)”。根據(jù)本發(fā)明實施例,使用區(qū)域圖識別存儲區(qū)域內(nèi)的特定數(shù)據(jù)范圍減少盤掃描時間和計算負荷。應(yīng)該注意的是,區(qū)域圖的最小值和最大值可以是保守的。換句話說,區(qū)域圖條目的最小值可小于數(shù)據(jù)的對應(yīng)存儲區(qū)域的實際最小值(例如,由于記錄刪除等),并且類似地,區(qū)域圖條目的最大值可大于數(shù)據(jù)的對應(yīng)存儲區(qū)域的實際最大值。
[0037]本發(fā)明的實施例提供用于使用區(qū)域圖在滿足指定條件時較早退出查詢評估的技術(shù)。通過對區(qū)域圖的最小數(shù)據(jù)值(也被稱為第一區(qū)間值)的列表(或者替代地,最大數(shù)據(jù)值(也被稱為第二區(qū)間值)的列表)進行排序,表掃描可在確定可能是前N排序的一部分的所有結(jié)果已被識別之后退出,例如停止讀取表。因此,這里公開的技術(shù)可從I/O操作(諸如,讀/寫操作)減少計算需求。在優(yōu)選實施例中,這里提供的技術(shù)適用于包括前N排序的查詢,即后面跟隨有“L頂IT”子句的“ORDER BY”子句。
[0038]現(xiàn)在參照圖1,示出用于與本發(fā)明實施例一起使用的示例性計算環(huán)境。具體地講,該環(huán)境包括一個或多個客戶機或終端用戶系統(tǒng)100和一個或多個服務(wù)器系統(tǒng)110和120。主機服務(wù)器系統(tǒng)110和信息服務(wù)器120可彼此遠離,并且通過網(wǎng)絡(luò)130通信。源于客戶機系統(tǒng)100的查詢請求可被發(fā)送給信息服務(wù)器120以搜索數(shù)據(jù)庫存儲單元140上的存儲的數(shù)據(jù)。網(wǎng)絡(luò)130可由任何數(shù)量的任何合適的通信介質(zhì)(例如,廣域網(wǎng)(WAN)、局域網(wǎng)(LAN)、互聯(lián)網(wǎng)、內(nèi)聯(lián)網(wǎng)等)實現(xiàn)。替代地,服務(wù)器系統(tǒng)110和120可相對于彼此位于本地,并且經(jīng)任何合適的本地通信介質(zhì)(例如,局域網(wǎng)(LAN)、硬連線、無線鏈路、內(nèi)聯(lián)網(wǎng)等)通信。在112和122示出網(wǎng)絡(luò)接口單元。
[0039]客戶機系統(tǒng)100使用戶能夠向信息服務(wù)器系統(tǒng)120提交文檔(例如,用于文檔收集的文檔、用于分析的文檔等)以便存儲在數(shù)據(jù)庫存儲單元中。如這里所討論,文檔(或其它信息)可被添加到作為存儲區(qū)域(也被稱為盤區(qū))的已有數(shù)據(jù)庫存儲。
[0040]數(shù)據(jù)庫存儲單元140可存儲用于分析的信息(例如,前N搜索的結(jié)果等),并且可由任何傳統(tǒng)或其它數(shù)據(jù)庫或存儲單元實現(xiàn)。數(shù)據(jù)庫存儲單元140可相對于信息服務(wù)器120位于本地或位于遠處,并且可經(jīng)任何合適的通信介質(zhì)(例如,局域網(wǎng)(LAN)、廣域網(wǎng)(WAN)、互聯(lián)網(wǎng)、硬連線、無線鏈路、內(nèi)聯(lián)網(wǎng)等)通信。客戶機系統(tǒng)100可提供圖形用戶(例如,GUI等)或其它接口(例如,命令行提示、菜單屏幕等)以從用戶請求關(guān)于想要的文檔和分析的信息,并且可提供包括結(jié)果的分析的報告(例如,文本分析、搜索結(jié)果、概況得分等)。
[0041]多個數(shù)據(jù)庫存儲單元140可存在于數(shù)據(jù)倉庫中。信息服務(wù)器120可按照主機服務(wù)器110的指示存儲信息并且從數(shù)據(jù)庫存儲單元140檢索信息。主機服務(wù)器110從客戶機系統(tǒng)100接收請求并且答復客戶機系統(tǒng)100。在一個實施例中,數(shù)據(jù)庫存儲單元140內(nèi)的存儲空間可被劃分為幾個分區(qū),包括:主分區(qū),用于存儲用戶信息;鏡像分區(qū),用于存儲主信息的備份拷貝;臨時分區(qū),用于按照信息服務(wù)器120的指示保存中間結(jié)果;和核心分區(qū),用于保存關(guān)于數(shù)據(jù)庫存儲單元140內(nèi)的信息的物理布局的信息。
[0042 ]參照圖2A,本發(fā)明的實施例通過將大信息空間160劃分成多個較小的信息區(qū)域170和180(也被稱為“盤區(qū)”或“存儲區(qū)域”)來操作。每個盤區(qū)可被進一步細分為許多連續(xù)的固定大小或可變大小子盤區(qū)塊。使用固定大小的優(yōu)點在于:某些計算變得更快并且不那么復雜。在本發(fā)明的替代實施例中,基于總體數(shù)據(jù)庫的大小或其它特性,固定大小也可被動態(tài)地改變?;诶鐚傩缘念愋?,可變塊大小可被動態(tài)地修改。例如,如果最小數(shù)據(jù)值(也被稱為第一區(qū)間值)和最大數(shù)據(jù)值(也被稱為第二區(qū)間值)表示時間戳數(shù)據(jù),則盤區(qū)的大小可被改變,以使得特定時間段期間的所有數(shù)據(jù)被存儲在一個數(shù)據(jù)塊中。塊是保存整個信息空間的數(shù)據(jù)庫存儲單元140和能夠檢查并且操縱信息的信息服務(wù)器120之間傳送的最小單位。在一個實施例中,塊可以是128K字節(jié),但其它大小也能夠工作。
[0043]盤區(qū)170、180是方便的存儲分配的單位,從而當信息空間增長時,它的增長被量化為盤區(qū)單位。盡管盤區(qū)內(nèi)的地址空間是連續(xù)的(即,沒有孔),但信息空間160可包括不連續(xù)的盤區(qū),因為不存在較晚的盤區(qū)的分配應(yīng)該產(chǎn)生與任何較早的分配的地址范圍具有任何固定關(guān)系的地址范圍的要求。
[0044]參照圖2B,本發(fā)明的實施例利用關(guān)于盤區(qū)包含的信息的統(tǒng)計(例如,元數(shù)據(jù))對盤區(qū)做注解,并且這種信息可被作為條目存儲在幾乎已排序的映射表或列表200中。如圖2B中所示,幾乎已排序的映射表200顯示包括表標識符210、列索引220、最小數(shù)據(jù)值230、最大數(shù)據(jù)值240和盤區(qū)標識符250的結(jié)構(gòu)。在260(1)-260(N)顯示元數(shù)據(jù)的多個條目。表標識符210唯一地指定可與例如關(guān)系數(shù)據(jù)庫表對應(yīng)的信息空間。在一個實施例中,它是唯一地識別關(guān)系數(shù)據(jù)庫表的4字節(jié)數(shù)值。列索引220唯一地識別由表標識符210識別的信息空間內(nèi)的特定類的信息。在一個實施例中,列索引220是表示由表標識符210識別的關(guān)系表中的列的2字節(jié)數(shù)值。在另一實施例中,列索引值220可對應(yīng)于在關(guān)系表內(nèi)定義列的次序。
[0045]在本發(fā)明的一個實施例中,最小數(shù)據(jù)值230和最大數(shù)據(jù)值240可以是能夠保存不同類型的數(shù)據(jù)值(包括日期、時間、日期-時間、整數(shù)值等)的8字節(jié)量。在由列索引220表示的列的定義中指定由最小數(shù)據(jù)值和最大數(shù)據(jù)值保存的數(shù)據(jù)的實際類型。在一個實施例中,盤區(qū)標識符250可以是指定由表標識符210指定的信息空間內(nèi)的特定盤區(qū)的2字節(jié)數(shù)值。較大存儲分區(qū)將會使用4字節(jié)盤區(qū)標識符或較大盤區(qū)。
[0046]最小數(shù)據(jù)值230和最大數(shù)據(jù)值240對應(yīng)于盤區(qū)內(nèi)的特定種類的信息的最小數(shù)據(jù)值和最大數(shù)據(jù)值。當對信息的查詢評估包括基于值的限制時,能夠?qū)⑺鲋蹬c和每個盤區(qū)關(guān)聯(lián)的元數(shù)據(jù)(例如,每個盤區(qū)的最小數(shù)據(jù)值)進行比較以確定該盤區(qū)是否應(yīng)該被搜索。以下結(jié)合圖3和4描述這些技術(shù)。
[0047]區(qū)域圖通常使用少量的盤空間,可與它們描述的對應(yīng)數(shù)據(jù)位于同一位置,將最小量的計算延時引入到所述系統(tǒng)中,并且可在沒有復雜的數(shù)據(jù)庫管理經(jīng)驗的情況下被保持。要注意的是,區(qū)域圖的概念不限于圖2中示出的特定類型的元數(shù)據(jù)信息。用于描繪存儲區(qū)域(盤區(qū))的另外的類型的元數(shù)據(jù)信息被理解為落在這里公開的實施例的范圍內(nèi)。
[0048]圖3提供本發(fā)明的實施例的一般概述。操作310針對存儲器內(nèi)的多個存儲區(qū)域掃描指定量的結(jié)果,其中每個存儲區(qū)域與一區(qū)間關(guān)聯(lián),所述區(qū)間包括指示該存儲區(qū)域內(nèi)的值的值范圍的第一和第二區(qū)間值。在操作320,第一區(qū)間值按次序排序,其中第一區(qū)間值的次序確定所述多個存儲區(qū)域的掃描次序,例如按照升序或降序。在操作330,確定結(jié)果值,其中所述結(jié)果值是上界、下界或在所述指定量的結(jié)果之外。在操作340,檢查已排序的第一區(qū)間值,并且對于對應(yīng)的各個存儲區(qū)域,響應(yīng)于確定的結(jié)果值與該存儲區(qū)域的第一區(qū)間值的比較來進行掃描。
[0049]參照圖4A-4B,示出在圖3的流程圖中提供的更詳細的一系列操作的示例性流程圖。應(yīng)該理解,這里提供的技術(shù)可包括圖4A-4B中示出的操作中的一個或多個操作的替代排序。例如,可發(fā)生操作的不同排序以實現(xiàn)相同結(jié)果,并且這里公開的技術(shù)包括所述操作的不同排序。
[0050]本發(fā)明實施例可被應(yīng)用于包括前N排序的查詢(例如,經(jīng)與“LIMITN”子句組合的“ORDER BY”)。前N排序通常使用部分排序算法對m個元素的陣列進行排序,從而前N個結(jié)果包含例如按照升序(如果已排序)的元素m的最小值。通常,如果元素m的數(shù)量大于前N個元素的數(shù)量,則前N排序包含m個元素的陣列的元素的子集。盡管當僅想要靠前的結(jié)果時部分排序算法節(jié)省與排序關(guān)聯(lián)的許多工作,但這種算法不減少關(guān)于I/O操作(諸如,讀/寫)的工作負荷。
[0051]如果像前N排序中一樣保持聚合數(shù)據(jù)結(jié)構(gòu),則本發(fā)明實施例也可被應(yīng)用于包括后面跟隨有前N排序的分組操作的查詢(例如,經(jīng)“GROUP BY”、“ORDER BY”和/或“UMIT N”子句,其中由分組列的任何子集確定次序)。
[0052]本發(fā)明實施例還可包括使用保留最好的N組的前N排序數(shù)據(jù)結(jié)構(gòu)執(zhí)行分組。例如,查詢可對一個或多個列執(zhí)行分組操作,例如“SELECT...GROUP BY A,B”。分組操作的結(jié)果可被排序,從而排序鍵是分組鍵的子集-例如“ORDER BY A”、“ORDER BY B”或“ORDER BY A,B”。最后,像“LIMIT 10”中一樣,可限制結(jié)果。(通過找到新的記錄所屬于的已有組,或通過創(chuàng)建新組,新的記錄可被分組)??苫谝粋€或多個排序鍵(例如,諸如等于一個或多個排序鍵)識別組,并且指定量的結(jié)果包括不同的組(例如,通常指定量的結(jié)果將是指定量的不同的組)。類似于沒有“GROUP BY”操作的前N排序,在升序排序的存儲區(qū)域的最小值超過前N數(shù)據(jù)結(jié)構(gòu)中的當前最差分組鍵的情況下,或者在存儲區(qū)域的最大值小于前N排序數(shù)據(jù)結(jié)構(gòu)中的當前最差分組鍵的降序排序中,能夠避免掃描存儲區(qū)域。
[0053]還應(yīng)該理解,區(qū)域圖不是意圖局限于單個第一區(qū)間值或單個第二區(qū)間值,而是可包含多個區(qū)間,每個區(qū)間對應(yīng)于特定類型的數(shù)據(jù)的最小值和最大值。
[0054]再次參照圖4A,在操作410,接收查詢請求。在操作420,確定是否已針對每個存儲區(qū)域創(chuàng)建元數(shù)據(jù)(例如,區(qū)域圖)并且確定元數(shù)據(jù)(例如,區(qū)域圖)是否是最新的。在操作425,如果不存在區(qū)域圖,則創(chuàng)建/更新區(qū)域圖。在操作430,確定與查詢相關(guān)的存儲區(qū)域/盤區(qū)(待掃描),并且建立/創(chuàng)建包含描繪這些相關(guān)存儲區(qū)域的元數(shù)據(jù)的列表。在操作440,在執(zhí)行1/0操作之前,可按照升序或降序使用作為前N排序的主排序鍵的列對區(qū)域的這個列表進行排序。作為產(chǎn)生待處理的存儲區(qū)域的列表的例子,如果已知存儲區(qū)域包含具有100和200之間的列值的記錄(例如,如區(qū)域圖元數(shù)據(jù)中所指示),則當評估具有已知范圍之外的范圍值的查詢(例如,具有值500的查詢)時,該評估能夠排除從而不掃描該整個存儲區(qū)域。如這里所討論,區(qū)域圖存儲例如針對每個范圍的行的、每個列的最小數(shù)據(jù)值和最大數(shù)據(jù)值。因此,正是已排序列表中的區(qū)域圖數(shù)據(jù)的次序確定表掃描的次序。信息空間內(nèi)所包含的數(shù)據(jù)不需要相對于排序列被排序、部分排序或整理。
[0055]如果前N排序優(yōu)選小值(例如,升序排序),則存儲區(qū)域的列表可被按照最小數(shù)據(jù)值(即,第一區(qū)間值)排序,并且沒有小值的區(qū)域?qū)灰苿拥搅斜淼哪┪?。如果前N排序優(yōu)選大值(例如,降序排序),則存儲區(qū)域的列表可被按照最大數(shù)據(jù)值(即,第二區(qū)間值)排序,并且沒有大值的區(qū)域?qū)灰苿拥搅斜淼哪┪病?br>[0056]在圖4B的操作450(從圖4A的操作440繼續(xù)),選擇與已排序列表中的第一條目對應(yīng)的存儲區(qū)域。在操作455,基于查詢處理選擇的存儲區(qū)域。在操作460,確定前N排序中的值中的結(jié)果值X或最差值x(假設(shè)存在至少N個結(jié)果)。要注意的是,為了簡單,這個步驟假設(shè)處理單個存儲區(qū)域?qū)⒗弥辽貼個值填充前N個結(jié)果。如果情況并非如此,則另外的存儲區(qū)域?qū)惶幚恚敝翝M足這個條件。在操作462,確定已排序列表的第一條目的區(qū)域的最小數(shù)據(jù)值min(Rl)。操作462提供用于將結(jié)果值X與存儲區(qū)域的最小數(shù)據(jù)值進行比較的條件表達式。當處理前N排序時,如果第N個值是x(當前“最差”值),則包含大于X的最小數(shù)據(jù)值的區(qū)域不需要被掃描(針對升序排序)。如果不滿足這個條件,則在操作470選擇已排序列表的下一個條目。在操作475,基于查詢處理該存儲區(qū)域。在操作480,最差值X被更新。重復這一系列的操作,直至滿足指定的條件。一旦滿足這個條件,不存在與前N個結(jié)果交疊的另外的值。如果前N搜索的第N個值是X并且區(qū)域的最小數(shù)據(jù)值min(Rl)大于X的值,則該整個存儲區(qū)域可被丟棄。
[0057]此外,通過按照最小數(shù)據(jù)值對選擇的存儲區(qū)域的列表進行排序,一旦找到存儲區(qū)域Rl從而Rl的最小數(shù)據(jù)值大于前N排序的最差值X,則所有隨后的區(qū)域R2、R3等也會具有大于X的最小數(shù)據(jù)值。作為結(jié)果,掃描可較早退出并且停止讀取數(shù)據(jù),如以下參照式I以及在操作465所示。
[0058]如果min(Rl)>x,(式I)
[0059]則min(R2)>=min(Rl)>x
[0060]具有超過X的最小數(shù)據(jù)值的存儲區(qū)域在前N個結(jié)果內(nèi)沒有結(jié)果,因此,整個存儲區(qū)域能夠被丟棄,因為它不需要被包括在該搜索中。此外,一旦列表中的一個存儲區(qū)域已被丟棄,列表中的所有隨后的存儲區(qū)域可被丟棄(假設(shè)存儲區(qū)域的列表已被排序)。在許多情況下,當達到剩余區(qū)域都不可能持有將會在前N排序之后留下的值的點時,這將會允許較早退出表掃描。對于小的N,這里提供的技術(shù)有效地將答復查詢所需的I/O減少到絕對最小值,導致顯著性能影響。
[0061]應(yīng)該注意的是,在具有多個排序鍵的情況下,以上比較(例如,式I)適用-具有等于X的值的區(qū)域圖條目不能自動地被丟棄,因為較低優(yōu)先級排序鍵(例如,第二排序鍵)可確定應(yīng)該包括該條目。然而,在使用單個排序鍵的情況下,則可如式2所示改進以上比較。
[0062]如果min(Rl)>= x,(式2)
[0063]則min(R2)>=min(Rl)> = x
[0064]當前最差結(jié)果也可被稱為“結(jié)果值”。盡管圖4將結(jié)果值表示為前N排序的當前最差值(即,升序排序的上界和降序排序的下界),但要注意,本發(fā)明實施例也可包括所述指定量的結(jié)果之外的值。所述指定量的結(jié)果之外的值包括大于實際上界的值以及小于實際下界的值。上界是前N排序的值中的最大值。下界是前N排序的值中的最小值。
[0065]還應(yīng)該注意的是,當掃描繼續(xù)進行時,結(jié)果值通常隨著時間過去而改進(例如,如果結(jié)果值是最小值,則結(jié)果值可隨著掃描繼續(xù)進行而進一步減小并且識別新的最小值)。改進結(jié)果值允許在掃描繼續(xù)進行時跳過甚至更多的數(shù)據(jù),并且因此,進一步減少來自I/O操作的計算工作負荷。
[0066]從前N排序算法,本發(fā)明實施例向I/O層提供反饋,以便減少計算工作負荷。如上所述的較早退出的決定允許停止關(guān)聯(lián)的I/O操作,并且因此,向I/O層提供一種形式的反饋。對區(qū)域圖條目的列表進行排序提供優(yōu)化-一確定較早退出前N排序,就可避免來自I/O操作的關(guān)聯(lián)的計算工作負荷。
[0067]因此,當查詢針對大信息空間掃描指定范圍中的值時,根據(jù)本發(fā)明實施例,與每個存儲區(qū)域關(guān)聯(lián)的區(qū)域圖數(shù)據(jù)的列表被創(chuàng)建、排序和檢查以確定存儲區(qū)域是否可能包含前N排序的所述指定范圍中的值。僅能夠包含所述指定范圍內(nèi)的值的區(qū)域被掃描;不需要考慮其它區(qū)域。這里描述的技術(shù)允許顯著減少掃描大信息空間所需的時間的量。
[0068]這里提供的技術(shù)也允許預測前N個結(jié)果的最好的可能的早期估計。例如,如果第一存儲區(qū)域具有指示1-5的值的范圍的對應(yīng)區(qū)域圖條目,并且第二存儲區(qū)域具有指示3-20的值的范圍的對應(yīng)區(qū)域圖條目,則相關(guān)數(shù)據(jù)將會更可能落在第一區(qū)域內(nèi)(假設(shè)使用升序排序),并且這個區(qū)域?qū)皇紫茸x取。因此,已排序元數(shù)據(jù)的使用允許以最佳方式識別相關(guān)結(jié)果。
[0069]在其它實施例中,這里提供的技術(shù)可被用于在下游操作是總聚合min(column)或max(C0lumn)操作時獲得最佳地較早退出表掃描;這是限制是I并且選擇的列是排序鍵的前N排序的退化情況。
[0070]在這種情況下,部分排序操作可退化至僅保存一個記錄(例如,具有排序鍵的最小值的記錄或具有排序鍵的最大值的記錄)的操作或由該操作替換。對于保存具有排序鍵的最小值的記錄的操作,由對應(yīng)區(qū)域圖條目指示的其最小值高于排序鍵的任何存儲區(qū)域可被跳過。(替代地,如果操作保存具有排序鍵的最大值的記錄,則其最大值小于排序鍵的任何存儲區(qū)域可被跳過)。即使當數(shù)據(jù)部分地或完全地無序時,這種優(yōu)化也可以是有效的,并且在評估區(qū)域圖的初始處理中排除非常少的存儲區(qū)域。如果存在單個排序鍵,則一找到小于或等于每個剩余區(qū)域圖條目的最小值的值,操作就可退出。如果存在多個排序鍵,則一找到小于每個剩余區(qū)域圖條目的最小值的值,操作就可退出。
[0071 ] 在其它實施例中,對于min(reg1n)_max(reg1n)幾乎是每個區(qū)域的列的整個范圍的較差地組織的列,仍然將會存在端點的某種變化。因此,最小的幾個值可能僅出現(xiàn)在幾個存儲區(qū)域中。這些存儲區(qū)域?qū)⒈皇紫葤呙枰赃x擇將排除剩余存儲區(qū)域的足夠小的“結(jié)果值”。因此,對于前N排序中的足夠小的N,這里提供的技術(shù)通常產(chǎn)生良好的結(jié)果。
[0072]本發(fā)明實施例不限于特定類型的計算環(huán)境。例如,本發(fā)明實施例可適用于包括幾個計算機或處理的系統(tǒng),每個計算機或處理可獨立地執(zhí)行前N排序以產(chǎn)生前N個結(jié)果的局部列表。每個獨立列表可被合并,從而保存合并之后的前N個結(jié)果。因此,在這種情況下,每個計算機或處理可獨立地產(chǎn)生前N個結(jié)果的列表,并且可彼此獨立地較早退出前N排序。
[0073]替代地,本發(fā)明實施例也適用于多個計算機可協(xié)作保持全局結(jié)果值的系統(tǒng),其中全局結(jié)果值對應(yīng)于由多個計算機執(zhí)行的多個前N排序的當前全局最差結(jié)果值(例如,全局最小值或全局最大值)。因此,每個計算機可基于這個全局結(jié)果值修剪它的對應(yīng)掃描列表和/或確定較早退出前N排序。還應(yīng)該注意的是,不存在掃描少量的另外的存儲區(qū)域的顯著性能損失。因此,全局結(jié)果值可被異步地計算,或者可很少被更新,從而這種優(yōu)化不引入或需要該系統(tǒng)內(nèi)的同步的點。
[0074]圖5是用于由于存儲區(qū)域內(nèi)的記錄的添加或刪除而更新先前的區(qū)域圖條目的過程的概括流程圖。當記錄被從信息空間刪除時,如果該記錄包含作為該記錄的盤區(qū)中的所有列的最小值的列值,則該盤區(qū)中的該列的新的最小值可實際上大于區(qū)域圖條目中的記錄的最小值。類似地,如果該記錄包含作為該記錄的盤區(qū)中的所有列的最大值的列值,則該盤區(qū)中的該列的新的最大值可實際上小于區(qū)域圖條目中的記錄的最大值。換句話說,刪除記錄能夠具有縮窄盤區(qū)內(nèi)的列的值的范圍的效果。同樣地,創(chuàng)建記錄能夠具有擴大盤區(qū)內(nèi)的列的值的范圍的效果。
[0075]在圖5的操作510,添加或刪除記錄。在操作520,確定添加或刪除的記錄是否包含作為該記錄的盤區(qū)中的所有列的最小值的列值和/或添加或刪除的記錄是否包含作為該記錄的盤區(qū)中的所有列的最大值的列值。在操作530,區(qū)域圖被更新以反映新的最小值(例如,至少下降至在添加的記錄中指定的值或上升以反映存儲區(qū)域中的最低值)和/或被更新以反映新的最大值(例如,至少上升至在添加的記錄中指定的值或下降以反映存儲區(qū)域中的最高值)。在其它實施例中,區(qū)域圖可能不需要被更新以反映記錄刪除,因為通常以保守方式使用區(qū)域圖。
[0076]參照圖6,信息服務(wù)器120的示例性實施例可包括網(wǎng)絡(luò)接口 112、處理器620和存儲器630。網(wǎng)絡(luò)接口單元112被配置為能夠?qū)崿F(xiàn)經(jīng)網(wǎng)絡(luò)130的網(wǎng)絡(luò)通信以便例如方便關(guān)于來自客戶機系統(tǒng)100的查詢請求的信息服務(wù)器120和主機服務(wù)器110之間的通信,如圖1中所示。
[0077]處理器620可由一個或多個微處理器或微控制器實現(xiàn),并且執(zhí)行存儲在存儲器630中的計算機可讀程序指令以執(zhí)行以上結(jié)合圖1-5描述的操作。
[0078]存儲器630可包括用包括計算機可讀程序指令的軟件編碼的計算機可讀存儲介質(zhì),并且當由處理器620執(zhí)行所述軟件時,處理器620可操作以執(zhí)行這里結(jié)合區(qū)域圖創(chuàng)建、排序和評估邏輯635描述的操作。
[0079]服務(wù)器系統(tǒng)110和120以及客戶機系統(tǒng)100可由任何傳統(tǒng)或其它計算機系統(tǒng)實現(xiàn),所述傳統(tǒng)或其它計算機系統(tǒng)優(yōu)選地裝備有:顯示器或監(jiān)視器、基體(例如,包括至少一個處理器、一個或多個存儲器和/或內(nèi)部或外部網(wǎng)絡(luò)接口或通信裝置(例如,調(diào)制解調(diào)器、網(wǎng)卡等))、可選的輸入裝置(例如,鍵盤、鼠標或其它輸入裝置)和任何可商購獲得和定制的軟件(例如,服務(wù)器/通信軟件、模塊、瀏覽器/接口軟件等)。
[0080]替代地,當作為獨立單元操作時,一個或多個客戶機系統(tǒng)100可分析文檔。在獨立操作模式下,客戶機系統(tǒng)存儲或訪問數(shù)據(jù)(例如,數(shù)據(jù)庫存儲單元140),并且包括用于形成查詢請求和/或向主機服務(wù)器110發(fā)送查詢請求的模塊。圖形用戶(例如,GUI等)或其它接口(例如,命令行提示、菜單屏幕等)從對應(yīng)用戶請求關(guān)于想要的文檔和分析的信息,并且可提供包括分析結(jié)果的報告。
[0081]模塊可包括用于執(zhí)行這里描述的本發(fā)明實施例的各種功能的一個或多個模塊或單元。所述各種模塊(例如,邏輯模塊635等)可由任何量的軟件和/或硬件模塊或單元的任何組合實現(xiàn),并且可位于信息服務(wù)器120的存儲器630內(nèi)以由處理器620執(zhí)行。
[0082]將會理解,以上描述并且在附圖中示出的實施例僅代表實現(xiàn)實施例的許多方式中的幾種方式。
[0083]本發(fā)明實施例的環(huán)境可包括以任何想要的方式布置的任何數(shù)量的計算機或其它處理系統(tǒng)(例如,客戶機或終端用戶系統(tǒng)、服務(wù)器系統(tǒng)等)和數(shù)據(jù)庫或其它存儲庫,其中本發(fā)明實施例可被應(yīng)用于任何想要的類型的計算環(huán)境(例如,云計算、客戶機-服務(wù)器、網(wǎng)絡(luò)計算、大型計算機、獨立系統(tǒng)等)。由本發(fā)明實施例采用的計算機或其它處理系統(tǒng)可由任何數(shù)量的任何個人或其它類型的計算機或處理系統(tǒng)(例如,桌上型計算機、膝上型計算機、PDA、移動裝置等)實現(xiàn),并且可包括任何可商購獲得的操作系統(tǒng)以及可商購獲得和定制的軟件(例如,瀏覽器軟件、通信軟件、服務(wù)器軟件、概況產(chǎn)生模塊、概況比較模塊等)的任何組合。這些系統(tǒng)可包括任何類型的監(jiān)視器和輸入裝置(例如,鍵盤、鼠標、語音識別等)以輸入和/或觀看信息。
[0084]應(yīng)該理解,可按照任何想要的計算機語言實現(xiàn)本發(fā)明實施例的軟件(例如,邏輯635),并且能夠由計算機領(lǐng)域的普通技術(shù)人員基于說明書中所包含的功能描述和附圖中示出的流程圖開發(fā)本發(fā)明實施例的軟件(例如,邏輯635)。另外,這里對執(zhí)行各種功能的軟件的任何提及通常表示在軟件控制下執(zhí)行那些功能的計算機系統(tǒng)或處理器。本發(fā)明實施例的計算機系統(tǒng)可替代地由任何類型的硬件和/或其它處理電路實現(xiàn)。
[0085]計算機或其它處理系統(tǒng)的各種功能可按照任何方式分布在任何數(shù)量的軟件和/或硬件模塊或單元、處理或計算機系統(tǒng)和/或電路之中,其中計算機或處理系統(tǒng)可相對于彼此被布置在本地或相對于彼此被遠程地布置,并且經(jīng)任何合適的通信介質(zhì)(例如,LAN、WAN、內(nèi)聯(lián)網(wǎng)、互聯(lián)網(wǎng)、硬連線、調(diào)制解調(diào)器連接、無線等)通信。例如,本發(fā)明實施例的功能可按照任何方式分布在各種最終用戶/客戶機和服務(wù)器系統(tǒng)和/或任何其它中間處理裝置之中。以上描述并且在流程圖中示出的軟件和/或算法可被按照完成這里描述的功能的任何方式修改。另外,可按照完成想要的操作的任何次序執(zhí)行流程圖或描述中的功能。
[0086]本發(fā)明實施例的軟件(例如,與邏輯635對應(yīng)的軟件等)可存在于用于與獨立系統(tǒng)或由網(wǎng)絡(luò)或其它通信介質(zhì)連接的系統(tǒng)一起使用的靜止或便攜式程序產(chǎn)品設(shè)備或裝置的非暫態(tài)計算機可用介質(zhì)(例如,磁或光學介質(zhì)、磁光介質(zhì)、軟盤、⑶_R0M、DVD、存儲裝置等)上。
[0087]通信網(wǎng)絡(luò)可由任何數(shù)量的任何類型的通信網(wǎng)絡(luò)(例如,LAN、WAN、互聯(lián)網(wǎng)、內(nèi)聯(lián)網(wǎng)、VPN等)實現(xiàn)。本發(fā)明實施例的計算機或其它處理系統(tǒng)可包括任何傳統(tǒng)或其它通信裝置以便經(jīng)任何傳統(tǒng)或其它協(xié)議在網(wǎng)絡(luò)上通信。計算機或其它處理系統(tǒng)可使用用于接入網(wǎng)絡(luò)的任何類型的連接(例如,有線、無線等)。局部通信介質(zhì)可由任何合適的通信介質(zhì)(例如,局域網(wǎng)(LAN)、硬連線、無線鏈路、內(nèi)聯(lián)網(wǎng)等)實現(xiàn)。
[0088]該系統(tǒng)可采用任何數(shù)量的任何傳統(tǒng)或其它數(shù)據(jù)庫、數(shù)據(jù)倉庫或存儲結(jié)構(gòu)(例如,文件、數(shù)據(jù)庫、數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)或其它存儲庫等)以存儲信息(例如,數(shù)據(jù)庫存儲單元140、區(qū)域圖、前N個結(jié)果等)。該數(shù)據(jù)庫系統(tǒng)可由任何數(shù)量的任何傳統(tǒng)或其它數(shù)據(jù)庫、數(shù)據(jù)倉庫或存儲結(jié)構(gòu)(例如,文件、數(shù)據(jù)庫、數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)或其它存儲庫等)實現(xiàn)以存儲信息(例如,數(shù)據(jù)庫存儲單元140、區(qū)域圖、前N個結(jié)果等)。數(shù)據(jù)庫系統(tǒng)可被包括在服務(wù)器和/或客戶機系統(tǒng)內(nèi)或耦接到服務(wù)器和/或客戶機系統(tǒng)。數(shù)據(jù)庫系統(tǒng)和/或存儲結(jié)構(gòu)可相對于計算機或其它處理系統(tǒng)位于遠處或者位于本地,并且可存儲任何想要的數(shù)據(jù)。
[0089]本發(fā)明實施例可采用任何數(shù)量的任何類型的用戶接口(例如,圖形用戶接口(GUI)、命令行、提示等)以獲得或提供信息(例如,來自客戶機100的查詢請求、前N個結(jié)果等),其中所述接口可包括以任何方式布置的任何信息。所述接口可包括布置在任何位置的任何數(shù)量的任何類型的輸入或致動機構(gòu)(例如,按鈕、圖標、欄、框、鏈接等)以便經(jīng)任何合適的輸入裝置(例如,鼠標、鍵盤等)輸入/顯示信息以及發(fā)起想要的動作。所述接口屏幕可包括任何合適的致動器(例如,鏈接、標簽等)以按照任何方式在屏幕之間導航。
[0090]所述報告可包括以任何方式布置的任何信息,并且可基于規(guī)則或其它準則而被配置以向用戶提供想要的信息(例如,文本分析、概況得分、關(guān)于文檔作者的人口統(tǒng)計信息等)O
[0091]本發(fā)明實施例不限于上述特定任務(wù)或算法。
[0092]這里使用的術(shù)語僅用于描述特定實施例的目的,并且不是意圖限制本發(fā)明。如這里所使用,單數(shù)形式“a”、“an”和“the”旨在也包括復數(shù)形式,除非上下文清楚地指示不是這樣。還將會理解,當在本說明書中使用時,術(shù)語“包括”、“包含”、“具有”等指定存在所陳述的特征、整數(shù)、步驟、操作、元件和/或部件,但不排除存在或添加一個或多個其它特征、整數(shù)、步驟、操作、元件、部件和/或它們的組合。
[0093]以下權(quán)利要求中的所有裝置或步驟加功能元件的對應(yīng)結(jié)構(gòu)、材料、動作和等同物旨在包括用于結(jié)合具體要求保護的其它權(quán)利要求要素執(zhí)行功能的任何結(jié)構(gòu)、材料或動作。本發(fā)明的描述用于說明和描述的目的,而不是意圖窮盡的或者局限于公開的形式的本發(fā)明。在不脫離本發(fā)明的范圍和精神的情況下,對于本領(lǐng)域普通技術(shù)人員而言,許多修改和變化將會是清楚的。選擇并描述實施例以便最好地解釋本發(fā)明的原理和實際應(yīng)用,并且使其他本領(lǐng)域普通技術(shù)人員能夠理解本發(fā)明的具有適合設(shè)想的特定用途的各種修改的各種實施例。
[0094]本發(fā)明的各種實施例的描述用于說明的目的,而不是意圖窮盡的或者局限于公開的實施例。在不脫離描述的實施例的范圍和精神的情況下,對于本領(lǐng)域普通技術(shù)人員而言,許多修改和變化將會是清楚的。選擇這里使用的術(shù)語以便最好地解釋實施例的原理、實際應(yīng)用或相對于在市場中找到的技術(shù)的技術(shù)改進,或者能夠使其他本領(lǐng)域普通技術(shù)人員理解這里公開的實施例。
[0095]本發(fā)明可以是系統(tǒng)、方法和/或計算機程序產(chǎn)品。計算機程序產(chǎn)品可以包括計算機可讀存儲介質(zhì),其上載有用于使處理器實現(xiàn)本發(fā)明的各個方面的計算機可讀程序指令。
[0096]計算機可讀存儲介質(zhì)可以是可以保持和存儲由指令執(zhí)行設(shè)備使用的指令的有形設(shè)備。計算機可讀存儲介質(zhì)例如可以是一一但不限于一一電存儲設(shè)備、磁存儲設(shè)備、光存儲設(shè)備、電磁存儲設(shè)備、半導體存儲設(shè)備或者上述的任意合適的組合。計算機可讀存儲介質(zhì)的更具體的例子(非窮舉的列表)包括:便攜式計算機盤、硬盤、隨機存取存儲器(RAM)、只讀存儲器(ROM)、可擦式可編程只讀存儲器(EPROM或閃存)、靜態(tài)隨機存取存儲器(SRAM)、便攜式壓縮盤只讀存儲器(CD-ROM)、數(shù)字多功能盤(DVD)、記憶棒、軟盤、機械編碼設(shè)備、例如其上存儲有指令的打孔卡或凹槽內(nèi)凸起結(jié)構(gòu)、以及上述的任意合適的組合。這里所使用的計算機可讀存儲介質(zhì)不被解釋為瞬時信號本身,諸如無線電波或者其他自由傳播的電磁波、通過波導或其他傳輸媒介傳播的電磁波(例如,通過光纖電纜的光脈沖)、或者通過電線傳輸?shù)碾娦盘枴?br>[0097]這里所描述的計算機可讀程序指令可以從計算機可讀存儲介質(zhì)下載到各個計算/處理設(shè)備,或者通過網(wǎng)絡(luò)、例如因特網(wǎng)、局域網(wǎng)、廣域網(wǎng)和/或無線網(wǎng)下載到外部計算機或外部存儲設(shè)備。網(wǎng)絡(luò)可以包括銅傳輸電纜、光纖傳輸、無線傳輸、路由器、防火墻、交換機、網(wǎng)關(guān)計算機和/或邊緣服務(wù)器。每個計算/處理設(shè)備中的網(wǎng)絡(luò)適配卡或者網(wǎng)絡(luò)接口從網(wǎng)絡(luò)接收計算機可讀程序指令,并轉(zhuǎn)發(fā)該計算機可讀程序指令,以供存儲在各個計算/處理設(shè)備中的計算機可讀存儲介質(zhì)中。
[0098]用于執(zhí)行本發(fā)明操作的計算機程序指令可以是匯編指令、指令集架構(gòu)(ISA)指令、機器指令、機器相關(guān)指令、微代碼、固件指令、狀態(tài)設(shè)置數(shù)據(jù)、或者以一種或多種編程語言的任意組合編寫的源代碼或目標代碼,所述編程語言包括面向?qū)ο蟮木幊陶Z言一諸如Smalltalk、C++等,以及常規(guī)的過程式編程語言一諸如“C”語言或類似的編程語言。計算機可讀程序指令可以完全地在用戶計算機上執(zhí)行、部分地在用戶計算機上執(zhí)行、作為一個獨立的軟件包執(zhí)行、部分在用戶計算機上部分在遠程計算機上執(zhí)行、或者完全在遠程計算機或服務(wù)器上執(zhí)行。在涉及遠程計算機的情形中,遠程計算機可以通過任意種類的網(wǎng)絡(luò)一包括局域網(wǎng)(LAN)或廣域網(wǎng)(WAN)—連接到用戶計算機,或者,可以連接到外部計算機(例如利用因特網(wǎng)服務(wù)提供商來通過因特網(wǎng)連接)。在一些實施例中,通過利用計算機可讀程序指令的狀態(tài)信息來個性化定制電子電路,例如可編程邏輯電路、現(xiàn)場可編程門陣列(FPGA)或可編程邏輯陣列(PLA),該電子電路可以執(zhí)行計算機可讀程序指令,從而實現(xiàn)本發(fā)明的各個方面。
[0099]這里參照根據(jù)本發(fā)明實施例的方法、裝置(系統(tǒng))和計算機程序產(chǎn)品的流程圖和/或框圖描述了本發(fā)明的各個方面。應(yīng)當理解,流程圖和/或框圖的每個方框以及流程圖和/或框圖中各方框的組合,都可以由計算機可讀程序指令實現(xiàn)。
[0100]這些計算機可讀程序指令可以提供給通用計算機、專用計算機或其它可編程數(shù)據(jù)處理裝置的處理器,從而生產(chǎn)出一種機器,使得這些指令在通過計算機或其它可編程數(shù)據(jù)處理裝置的處理器執(zhí)行時,產(chǎn)生了實現(xiàn)流程圖和/或框圖中的一個或多個方框中規(guī)定的功能/動作的裝置。也可以把這些計算機可讀程序指令存儲在計算機可讀存儲介質(zhì)中,這些指令使得計算機、可編程數(shù)據(jù)處理裝置和/或其他設(shè)備以特定方式工作,從而,存儲有指令的計算機可讀介質(zhì)則包括一個制造品,其包括實現(xiàn)流程圖和/或框圖中的一個或多個方框中規(guī)定的功能/動作的各個方面的指令。
[0101]也可以把計算機可讀程序指令加載到計算機、其它可編程數(shù)據(jù)處理裝置、或其它設(shè)備上,使得在計算機、其它可編程數(shù)據(jù)處理裝置或其它設(shè)備上執(zhí)行一系列操作步驟,以產(chǎn)生計算機實現(xiàn)的過程,從而使得在計算機、其它可編程數(shù)據(jù)處理裝置、或其它設(shè)備上執(zhí)行的指令實現(xiàn)流程圖和/或框圖中的一個或多個方框中規(guī)定的功能/動作。
[0102]附圖中的流程圖和框圖顯示了根據(jù)本發(fā)明的多個實施例的系統(tǒng)、方法和計算機程序產(chǎn)品的可能實現(xiàn)的體系架構(gòu)、功能和操作。在這點上,流程圖或框圖中的每個方框可以代表一個模塊、程序段或指令的一部分,所述模塊、程序段或指令的一部分包含一個或多個用于實現(xiàn)規(guī)定的邏輯功能的可執(zhí)行指令。在有些作為替換的實現(xiàn)中,方框中所標注的功能也可以以不同于附圖中所標注的順序發(fā)生。例如,兩個連續(xù)的方框?qū)嶋H上可以基本并行地執(zhí)行,它們有時也可以按相反的順序執(zhí)行,這依所涉及的功能而定。也要注意的是,框圖和/或流程圖中的每個方框、以及框圖和/或流程圖中的方框的組合,可以用執(zhí)行規(guī)定的功能或動作的專用的基于硬件的系統(tǒng)來實現(xiàn),或者可以用專用硬件與計算機指令的組合來實現(xiàn)。
【主權(quán)項】
1.一種用于針對存儲器內(nèi)的多個存儲區(qū)域掃描指定量的結(jié)果的計算機實現(xiàn)的方法,其中每個存儲區(qū)域與一區(qū)間關(guān)聯(lián),所述區(qū)間包括指示該存儲區(qū)域內(nèi)的值的值范圍的第一區(qū)間值和第二區(qū)間值,所述計算機實現(xiàn)的方法包括: 將第一區(qū)間值按次序排序,其中第一區(qū)間值的次序確定所述多個存儲區(qū)域的掃描次序; 確定結(jié)果值,其中所述結(jié)果值是上界、下界或在所述指定量的結(jié)果之外;以及檢查已排序的第一區(qū)間值,并且根據(jù)需要響應(yīng)于確定的結(jié)果值與該存儲區(qū)域的第一區(qū)間值的比較而掃描對應(yīng)個體存儲區(qū)域。2.如權(quán)利要求1所述的計算機實現(xiàn)的方法,其中所述掃描對應(yīng)個體存儲區(qū)域包括: 確定不滿足所述比較的初始第一區(qū)間值,并且從所述掃描省略與所述初始第一區(qū)間值和已排序的第一區(qū)間值內(nèi)的后續(xù)第一區(qū)間值對應(yīng)的對應(yīng)個體存儲區(qū)域。3.如權(quán)利要求1所述的計算機實現(xiàn)的方法,其中所述指定量的結(jié)果與升序排序關(guān)聯(lián),并且每個存儲區(qū)域的所述第一區(qū)間值包括該存儲區(qū)域的最小值,并且所述掃描對應(yīng)個體存儲區(qū)域包括: 響應(yīng)于確定的結(jié)果值大于個體存儲區(qū)域的第一區(qū)間值而掃描該存儲區(qū)域。4.如權(quán)利要求1所述的計算機實現(xiàn)的方法,其中所述指定量的結(jié)果與降序排序關(guān)聯(lián),并且每個存儲區(qū)域的所述第二區(qū)間值包括該存儲區(qū)域的最大值,并且所述掃描對應(yīng)個體存儲區(qū)域包括: 響應(yīng)于確定的結(jié)果值小于個體存儲區(qū)域的第二區(qū)間值而掃描該存儲區(qū)域。5.如權(quán)利要求1所述的計算機實現(xiàn)的方法,還包括:在確立按照升序排序的已排序的第一區(qū)間值的列表中的存儲區(qū)域的第一區(qū)間值大于所確定的值時,退出掃描。6.如權(quán)利要求1所述的計算機實現(xiàn)的方法,還包括: 將記錄添加到存儲區(qū)域或刪除記錄; 確定添加或刪除的記錄是否包含作為最小值的第一區(qū)間值或作為存儲區(qū)域的最大值的第二區(qū)間值;以及 更新第一區(qū)間值或第二區(qū)間值以反映新的最小值或新的最大值。7.如權(quán)利要求1所述的計算機實現(xiàn)的方法,還包括:在基于一個或多個排序鍵識別組的情況下執(zhí)行分組操作,并且其中所述指定量的結(jié)果是指定量的不同的組。8.如權(quán)利要求1所述的計算機實現(xiàn)的方法,還包括: 確定全局結(jié)果值,其中所述全局結(jié)果值代表由多個計算機確定的多個結(jié)果值中的最小值;以及 在確立按照升序排序的已排序的第一區(qū)間值的列表中的存儲區(qū)域的第一區(qū)間值大于所確定的全局結(jié)果值時,退出掃描。9.一種系統(tǒng),包括: 存儲器,包括多個存儲區(qū)域,其中每個存儲區(qū)域與一區(qū)間關(guān)聯(lián),所述區(qū)間包括指示該存儲區(qū)域內(nèi)的值的值范圍的第一區(qū)間值和第二區(qū)間值; 網(wǎng)絡(luò)接口;和 處理器,被配置為: 將第一區(qū)間值按次序排序,其中第一區(qū)間值的次序確定所述多個存儲區(qū)域的掃描次序; 確定結(jié)果值,其中所述結(jié)果值是上界、下界或在指定量的結(jié)果之外;以及 檢查已排序的第一區(qū)間值,并且根據(jù)需要響應(yīng)于確定的結(jié)果值與該存儲區(qū)域的第一區(qū)間值的比較而針對存儲器內(nèi)的對應(yīng)個體存儲區(qū)域掃描所述指定量的結(jié)果。10.如權(quán)利要求9所述的系統(tǒng),其中所述處理器被配置為確定不滿足所述比較的初始第一區(qū)間值,并且從所述掃描省略與所述初始第一區(qū)間值和已排序的第一區(qū)間值內(nèi)的后續(xù)第一區(qū)間值對應(yīng)的對應(yīng)個體存儲區(qū)域。11.如權(quán)利要求9所述的系統(tǒng),其中所述指定量的結(jié)果與升序排序關(guān)聯(lián),并且每個存儲區(qū)域的所述第一區(qū)間值包括該存儲區(qū)域的最小值,并且其中所述處理器被配置為響應(yīng)于確定的結(jié)果值大于個體存儲區(qū)域的第一區(qū)間值而掃描該存儲區(qū)域。12.如權(quán)利要求9所述的系統(tǒng),其中所述指定量的結(jié)果與降序排序關(guān)聯(lián),并且每個存儲區(qū)域的所述第二區(qū)間值包括該存儲區(qū)域的最大值,并且其中所述處理器被配置為響應(yīng)于確定的結(jié)果值小于個體存儲區(qū)域的第二區(qū)間值而掃描該存儲區(qū)域。13.如權(quán)利要求9所述的系統(tǒng),其中所述處理器被配置為在確立按照升序排序的已排序的第一區(qū)間值的列表中的存儲區(qū)域的第一區(qū)間值大于所確定的值時退出掃描。14.如權(quán)利要求9所述的系統(tǒng),其中所述處理器被配置為: 將記錄增加到存儲區(qū)域或刪除記錄; 確定添加或刪除的記錄是否包含作為最小值的第一區(qū)間值或作為存儲區(qū)域的最大值的第二區(qū)間值;以及 更新第一區(qū)間值或第二區(qū)間值以反映新的最小值或新的最大值。15.如權(quán)利要求9所述的系統(tǒng),其中所述處理器被配置為在基于一個或多個排序鍵識別組的情況下執(zhí)行分組操作,并且其中所述指定量的結(jié)果是指定量的不同的組。16.如權(quán)利要求9所述的系統(tǒng),其中所述處理器被配置為: 確定全局結(jié)果值,其中所述全局結(jié)果值代表由多個計算機確定的多個結(jié)果值中的最小值;以及 在確立按照升序排序的已排序的第一區(qū)間值的列表中的存儲區(qū)域的第一區(qū)間值大于所確定的全局值時,退出掃描。17.—種用于向用戶提供信息的計算機程序產(chǎn)品,包括實施有計算機可讀程序代碼的計算機可讀存儲介質(zhì),所述計算機可讀程序代碼當由處理器執(zhí)行時使處理器: 對于存儲器內(nèi)的多個存儲區(qū)域,將第一區(qū)間值按次序排序,其中第一區(qū)間值的次序確定存儲區(qū)域的掃描次序,每個存儲區(qū)域與一區(qū)間關(guān)聯(lián),所述區(qū)間包括指示該存儲區(qū)域內(nèi)的值的值范圍的第一區(qū)間值和第二區(qū)間值; 確定結(jié)果值,其中所述結(jié)果值是上界、下界或在指定量的結(jié)果之外;以及 檢查已排序的第一區(qū)間值,并且根據(jù)需要響應(yīng)于確定的結(jié)果值與該存儲區(qū)域的第一區(qū)間值的比較而針對存儲器中的對應(yīng)個體存儲區(qū)域掃描所述指定量的結(jié)果。18.如權(quán)利要求17所述的計算機程序產(chǎn)品,所述計算機可讀程序代碼還被配置為使處理器確定不滿足所述比較的初始第一區(qū)間值,并且從所述掃描省略與所述初始第一區(qū)間值和已排序的第一區(qū)間值內(nèi)的后續(xù)第一區(qū)間值對應(yīng)的對應(yīng)個體存儲區(qū)域。19.如權(quán)利要求17所述的計算機程序產(chǎn)品,其中所述指定量的結(jié)果與升序排序關(guān)聯(lián),并且每個存儲區(qū)域的所述第一區(qū)間值包括該存儲區(qū)域的最小值,并且所述計算機可讀程序代碼還被配置為使處理器響應(yīng)于確定的結(jié)果值大于個體存儲區(qū)域的第一區(qū)間值而掃描該存儲區(qū)域。20.如權(quán)利要求17所述的計算機程序產(chǎn)品,其中所述指定量的結(jié)果與降序排序關(guān)聯(lián),并且每個存儲區(qū)域的所述第二區(qū)間值包括該存儲區(qū)域的最大值,并且所述計算機可讀程序代碼還被配置為使處理器響應(yīng)于確定的結(jié)果值小于個體存儲區(qū)域的第二區(qū)間值而掃描該存儲區(qū)域。21.如權(quán)利要求17所述的計算機程序產(chǎn)品,所述計算機可讀程序代碼還被配置為使處理器在確立按照升序排序的已排序的第一區(qū)間值的列表中的存儲區(qū)域的第一區(qū)間值大于所確定的值時退出掃描。22.一種計算機程序,包括程序代碼裝置,所述程序代碼裝置適于當在計算機上運行所述程序時執(zhí)行如權(quán)利要求1至8中任一項所述的方法。
【文檔編號】G06F17/30GK106030579SQ201580010338
【公開日】2016年10月12日
【申請日】2015年1月30日
【發(fā)明人】G·A·迪凱, D·萊婷
【申請人】國際商業(yè)機器公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1