[發(fā)明專利]一種基于向量化執(zhí)行的數(shù)據(jù)庫排序方法及系統(tǒng)有效
| 申請?zhí)枺?/td> | 201810588554.6 | 申請日: | 2018-06-08 |
| 公開(公告)號: | CN109002467B | 公開(公告)日: | 2021-04-27 |
| 發(fā)明(設計)人: | 申毅杰;熊勁 | 申請(專利權)人: | 中國科學院計算技術研究所 |
| 主分類號: | G06F16/2455 | 分類號: | G06F16/2455 |
| 代理公司: | 北京律誠同業(yè)知識產權代理有限公司 11006 | 代理人: | 祁建國;梁揮 |
| 地址: | 100080 北*** | 國省代碼: | 北京;11 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 基于 量化 執(zhí)行 數(shù)據(jù)庫 排序 方法 系統(tǒng) | ||
1.一種向量化執(zhí)行的數(shù)據(jù)庫排序方法,其特征在于,包括:
步驟1,將輸入數(shù)據(jù)向量化為多個輸入數(shù)據(jù)行組;
步驟2,在計算節(jié)點的內存中開辟大小為最適粒度的緩沖區(qū);該最適粒度的大小為該計算節(jié)點的處理器緩存大小除以最大排序/重排寬度所得的值;其中該最大排序/重排寬度為所有該輸入數(shù)據(jù)行組的所有排序列寬度總和與最大單列寬度中的最大值;
步驟3,將該輸入數(shù)據(jù)行組依次追加至該緩沖區(qū)的末尾空位;僅當該緩沖區(qū)滿或所有該輸入數(shù)據(jù)行組均已追加至該緩沖區(qū)時,將存入該緩沖區(qū)的輸入數(shù)據(jù)行組調入該處理器緩存進行排序以得到緩存輸出數(shù)據(jù)行組,將該緩存輸出數(shù)據(jù)行組輸出至該內存并清空該緩沖區(qū);重復步驟3直到所有該輸入數(shù)據(jù)行組均已完成排序;
步驟4,當該內存滿或所有該緩存輸出數(shù)據(jù)行組均已輸出至該內存時,將該內存中的該緩存輸出行組排序以生成輸出數(shù)據(jù)行組,將該輸出數(shù)據(jù)行組保存至該計算節(jié)點的磁盤并釋放該內存;重復步驟4直到所有該緩存輸出數(shù)據(jù)行組均已完成排序;
步驟5,合并所有該輸出數(shù)據(jù)行組以得到順序排列的全序輸出數(shù)據(jù)行組。
2.如權利要求1所述的數(shù)據(jù)庫排序方法,其特征在于,所述步驟3的排序過程具體包括:
步驟31,以該緩沖區(qū)中的輸入數(shù)據(jù)行組為第一行組,將該第一行組調入該處理器緩存,并對該第一行組進行排序獲得對應該第一行組的每行的排序行號以生成第一行號數(shù)組;
步驟32,根據(jù)該第一行號數(shù)組對該第一行組進行重新組織,以生成順序排列的該緩存輸出行組;
步驟33,將該緩存輸出行組輸出至內存并清空該緩沖區(qū)。
3.如權利要求1所述的數(shù)據(jù)庫排序方法,其特征在于,所述步驟4的排序過程具體包括:
步驟41,以該內存中的緩存輸出行組為第二行組,對該第二行組進行排序以獲得對應該第二行組的每行的排序行號并生成第二行號數(shù)組;
步驟42,根據(jù)該第二行號數(shù)組對該第二行組進行重新組織,以生成順序排列的該輸出數(shù)據(jù)行組;
步驟43,將該輸出數(shù)據(jù)行組保存至該磁盤并釋放該內存。
4.如權利要求1所述的數(shù)據(jù)庫排序方法,其特征在于,步驟3中采用逐列拷貝將該輸入數(shù)據(jù)行組追加至該緩沖區(qū)。
5.一種向量化執(zhí)行的數(shù)據(jù)庫排序系統(tǒng),其特征在于,包括:
向量化模塊,用于將輸入數(shù)據(jù)向量化為多個輸入數(shù)據(jù)行組;
緩沖區(qū)模塊,用于在計算節(jié)點的內存中開辟大小為最適粒度的緩沖區(qū);該最適粒度的大小為該計算節(jié)點的處理器緩存大小除以最大排序/重排寬度所得的值;其中該最大排序/重排寬度為所有該輸入數(shù)據(jù)行組的所有排序列寬度總和與最大單列寬度中的最大值;
數(shù)據(jù)輸入模塊,用于將該輸入數(shù)據(jù)行組拷貝并依次追加至該緩沖區(qū)的末尾空位;
緩沖區(qū)數(shù)據(jù)排序模塊,用于對緩沖區(qū)內的輸入數(shù)據(jù)行組進行排序;其中僅當該緩沖區(qū)滿時,對存入該緩沖區(qū)的輸入數(shù)據(jù)行組進行排序以得到緩存輸出數(shù)據(jù)行組,將該緩存輸出數(shù)據(jù)行組輸出至該內存并清空該緩沖區(qū);
緩沖區(qū)數(shù)據(jù)輸出模塊,用于將該緩沖區(qū)數(shù)據(jù)排序模塊獲得的多個該緩存輸出數(shù)據(jù)行組輸出至該內存;其中將該緩存輸出數(shù)據(jù)行組依次追加至該內存的末尾空位;
內存數(shù)據(jù)排序模塊,用于對該內存中的緩存輸出行組進行排序以生成輸出數(shù)據(jù)行組;其中當該內存滿或所有該緩存輸出數(shù)據(jù)行組均已追加至該內存時,將該內存中的緩存輸出行組排序以生成輸出數(shù)據(jù)行組。
6.如權利要求5所述的數(shù)據(jù)庫排序系統(tǒng),其特征在于,該緩沖區(qū)數(shù)據(jù)排序模塊包括:
緩存排序模塊,用于對該緩沖區(qū)中的輸入數(shù)據(jù)行組進行排序;其中以該緩沖區(qū)中的輸入數(shù)據(jù)行組為第一行組,將該第一行組調入該處理器緩存,并對該第一行組進行排序獲得對應該第一行組的每行的排序行號以生成第一行號數(shù)組;
緩存重排序模塊,用于獲取該緩存輸出行組;其中根據(jù)該第一行號數(shù)組對該第一行組進行重新組織,以生成順序排列的該緩存輸出行組;
緩存輸出模塊,用于將該緩存輸出行組輸出至內存并清空該緩沖區(qū)。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于中國科學院計算技術研究所,未經(jīng)中國科學院計算技術研究所許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業(yè)授權和技術合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201810588554.6/1.html,轉載請聲明來源鉆瓜專利網(wǎng)。
- 以注射方式執(zhí)行死刑的自動執(zhí)行車的執(zhí)行床
- 過程執(zhí)行裝置、過程執(zhí)行方法以及過程執(zhí)行程序
- 用以執(zhí)行跳舞電子游戲的執(zhí)行系統(tǒng)及其執(zhí)行方法
- 策略執(zhí)行系統(tǒng)及其執(zhí)行方法
- 腳本執(zhí)行系統(tǒng)和腳本執(zhí)行方法
- 命令執(zhí)行設備、命令執(zhí)行系統(tǒng)、命令執(zhí)行方法以及命令執(zhí)行程序
- 程序執(zhí)行裝置、程序執(zhí)行系統(tǒng)以及程序執(zhí)行方法
- 處理執(zhí)行設備和由該處理執(zhí)行設備執(zhí)行的方法
- 有序任務的執(zhí)行方法、執(zhí)行裝置和執(zhí)行系統(tǒng)
- 執(zhí)行器(閥門執(zhí)行器)
- 數(shù)據(jù)庫
- 數(shù)據(jù)庫管理系統(tǒng)及數(shù)據(jù)庫
- 數(shù)據(jù)庫構筑裝置、數(shù)據(jù)庫檢索裝置、數(shù)據(jù)庫裝置、數(shù)據(jù)庫構筑方法、以及數(shù)據(jù)庫檢索方法
- 數(shù)據(jù)庫和數(shù)據(jù)庫處理方法
- 數(shù)據(jù)庫系統(tǒng)、數(shù)據(jù)庫更新方法、數(shù)據(jù)庫以及數(shù)據(jù)庫更新程序
- 容器數(shù)據(jù)庫
- 數(shù)據(jù)庫同步方法及數(shù)據(jù)庫
- 一種MongoDB數(shù)據(jù)庫對象復制延遲監(jiān)控方法和裝置
- 數(shù)據(jù)分布式存儲方法、裝置、電子設備及存儲介質
- 數(shù)據(jù)庫語句執(zhí)行方法及裝置





