TWI801601B - 資料庫處理系統及用於卸載資料庫操作的方法 - Google Patents
資料庫處理系統及用於卸載資料庫操作的方法 Download PDFInfo
- Publication number
- TWI801601B TWI801601B TW108120107A TW108120107A TWI801601B TW I801601 B TWI801601 B TW I801601B TW 108120107 A TW108120107 A TW 108120107A TW 108120107 A TW108120107 A TW 108120107A TW I801601 B TWI801601 B TW I801601B
- Authority
- TW
- Taiwan
- Prior art keywords
- key
- database
- address
- circuit
- read
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
- G06F3/0656—Data buffering arrangements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2372—Updates performed during offline database operations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24553—Query execution of query operations
- G06F16/24554—Unary operations; Data partitioning operations
- G06F16/24556—Aggregation; Duplicate elimination
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/24569—Query processing with adaptation to specific hardware, e.g. adapted for using GPUs or SSDs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/061—Improving I/O performance
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Human Computer Interaction (AREA)
- Computational Linguistics (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Advance Control (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
Abstract
一種包括資料庫卸載引擎的資料庫處理系統。在一些實
施例中,所述資料庫卸載引擎包括:向量化加法器,包括多個讀取-修改-寫入電路;多個總和緩衝器,分別連接到所述讀取-修改-寫入電路;金鑰位址表;以及控制電路。所述控制電路可被配置為:接收第一金鑰以及對應的第一值;搜索所述金鑰位址表尋找所述第一金鑰;以及回應於在所述金鑰位址表中找到對應於所述第一金鑰的位址,將所述位址及所述第一值路由到所述多個讀取-修改-寫入電路中與所述位址對應的讀取-修改-寫入電路。也提供一種用於卸載資料庫操作的方法。
Description
本申請主張在2018年9月24號提出申請的標題為“用於(K,V)聚合及資料表掃描的可高度縮放資料庫卸載引擎(HIGHLY SCALABLE DATABASE OFFLOADING ENGINE FOR(K,V)AGGREGATION AND TABLE SCAN)”的美國臨時申請第62/735,688號的優先權及權益,所述美國臨時申請的全部內容併入本文供參考。
根據本揭露的實施例的一個或多個方面涉及資料庫處理,並且更具體來說涉及資料庫卸載引擎。
資料表掃描操作(table scan operation)及總和聚合操作(sum aggregation operation)-當作為資料庫中查詢處理操作的一部分由主機CPU執行時-可能顯著地成為CPU的負擔,消耗CPU週期的相當大的部分,並占CPU消耗的功率的相當大的部分。
因此,需要一種用於在資料庫中執行資料表掃描操作及
總和聚合操作的經改進的系統及方法。
根據本發明的實施例,提供一種包括資料庫卸載引擎的資料庫處理系統,所述資料庫卸載引擎包括:向量化加法器,包括多個讀取-修改-寫入電路;多個總和緩衝器,分別連接到所述讀取-修改-寫入電路;金鑰位址表;以及控制電路,所述控制電路被配置為:接收第一金鑰以及對應的第一值;搜索所述金鑰位址表尋找所述第一金鑰;以及回應於在所述金鑰位址表中找到對應於所述第一金鑰的位址,將所述位址及所述第一值路由到所述多個讀取-修改-寫入電路中與所述位址對應的讀取-修改-寫入電路。
在一些實施例中,所述控制電路被進一步配置為:接收第二金鑰以及對應的第二值;搜索所述金鑰位址表尋找所述第二金鑰;以及回應於在所述金鑰位址表中未找到對應於所述第二金鑰的位址:選擇新位址,在所述金鑰位址表中不存在所述新位址;將所述第二金鑰及所述新位址儲存在所述金鑰位址表中;並將所述新位址及所述第二值路由到所述多個讀取-修改-寫入電路中與所述新位址對應的讀取-修改-寫入電路。
在一些實施例中,所述資料庫卸載引擎具有用於建立與主機的連接的非揮發性雙列直插式儲存模組-P(Non-Volatile Dual In-line Memory Module-P,NVDIMM-P)介面。
在一些實施例中,所述資料庫卸載引擎具有用於建立與主機的連接的周邊元件連接快速(Peripheral Component Interconnect express,PCIe)介面。
在一些實施例中:所述向量化加法器是一個時脈域內的同步電路,所述時脈域是由共用系統時脈定義的,所述多個讀取-修改-寫入電路中的一個讀取-修改-寫入電路被配置為管線,所述管線包括:用於執行讀取操作的第一級、用於執行加法運算的第二級以及用於執行寫入操作的第三級,且所述管線被配置為以所述共用系統時脈的每一週期接收位址以及對應的值。
在一些實施例中:所述控制電路是一個時脈域內的同步電路,所述時脈域由共用系統時脈定義,所述控制電路包括用於搜索所述金鑰位址表尋找金鑰的查找電路,所述查找電路被配置為包括用於搜索所述金鑰位址表的多個級的管線,所述管線被配置為以所述共用系統時脈的每一週期接收金鑰。
在一些實施例中,所述資料庫處理系統還包括連接到所述資料庫卸載引擎的主機,所述主機包括儲存資料庫應用指令及驅動層指令的非暫時性儲存介質,所述資料庫應用指令包括函式呼叫,當所述函式呼叫被所述主機執行時,所述函式呼叫使得所述主機執行驅動層指令,所述驅動層指令使所述主機控制所述資料庫卸載引擎執行總和聚合操作。
在一些實施例中,所述資料庫卸載引擎還包括多個資料表掃描電路;所述多個資料表掃描電路中的一個資料表掃描電路包括可用條件程式化的條件測試電路、輸入緩衝器及輸出緩衝器,所述條件測試電路被配置為:判斷所述輸入緩衝器中的第一位址處的第一條目是否滿足所述條件,且回應於判斷出所述第一條目滿足所述條件,將相應的結果寫入所述輸出緩衝器中。
在一些實施例中,所述條件測試電路被配置為響應於判
斷出所述第一條目滿足所述條件,將一寫入到所述輸出緩衝器中的輸出向量的相應元素。
在一些實施例中,所述條件測試電路被配置為響應於判斷出所述第一條目滿足所述條件,將所述第一位址寫入到所述輸出緩衝器中的輸出向量的相應元素。
在一些實施例中:所述向量化加法器是一個時脈域內的同步電路,所述時脈域是由共用系統時脈定義的,所述多個讀取-修改-寫入電路中的一個讀取-修改-寫入電路被配置為管線,所述管線包括:用於執行讀取操作的第一級、用於執行加法運算的第二級以及用於執行寫入操作的第三級,且所述管線被配置為以所述系統時脈的每一週期接收位址以及對應的值。
在一些實施例中:所述控制電路是一個時脈域內的同步電路,所述時脈域由共用系統時脈定義,所述控制電路包括用於搜索所述金鑰位址表尋找金鑰的查找電路,所述查找電路被配置為包括用於搜索所述金鑰位址表的多個級的管線,所述管線被配置為以所述系統時脈的每一週期接收金鑰。
在一些實施例中,所述資料庫卸載引擎具有用於建立與主機的連接的NVDIMM-P介面。
根據本發明的實施例,提供一種包括資料庫卸載引擎的資料庫處理系統,所述資料庫卸載引擎包括:多個資料表掃描電路;所述多個資料表掃描電路中的一個資料表掃描電路包括可用條件程式化的條件測試電路、輸入緩衝器及輸出緩衝器,所述條件測試電路被配置為:判斷所述輸入緩衝器中的第一位址處的第一條目是否滿足所述條件,且回應於判斷出所述第一條目滿足所
述條件,將相應的結果寫入所述輸出緩衝器中。
在一些實施例中,所述條件測試電路被配置為響應於判斷出所述第一條目滿足所述條件,將一寫入到所述輸出緩衝器中的輸出向量的相應元素。
在一些實施例中,所述條件測試電路被配置為響應於判斷出所述第一條目滿足所述條件,將所述第一位址寫入到所述輸出緩衝器中的輸出向量的相應元素。
在一些實施例中,所述資料庫卸載引擎具有用於建立與主機的連接的NVDIMM-P介面。
在一些實施例中,所述資料庫卸載引擎具有用於建立與主機的連接的PCIe介面。
根據本發明的實施例,提供一種用於從主機卸載資料庫操作的方法,所述方法包括:由在所述主機上運行的應用調用驅動程式函數執行總和聚合操作;以及由資料庫卸載引擎執行所述總和聚合操作,所述資料庫卸載引擎包括:向量化加法器,包括多個讀取-修改-寫入電路;多個總和緩衝器,分別連接到所述多個讀取-修改-寫入電路;金鑰位址表;以及控制電路,所述執行所述總和聚合操作包括:接收第一金鑰以及對應的第一值;搜索所述金鑰位址表尋找所述第一金鑰;回應於在所述金鑰位址表中找到對應於所述第一金鑰的位址,將所述位址及所述第一值路由到所述多個讀取-修改-寫入電路中與所述位址對應的讀取-修改-寫入電路;接收第二金鑰以及對應的第二值;搜索所述金鑰位址表尋找所述第二金鑰;回應於在所述金鑰位址表中未找到對應於所述第二金鑰的位址:選擇在所述金鑰位址表中不存在的新位址;將
所述金鑰及所述新位址儲存在所述金鑰位址表中;並將所述新位址及所述第二值路由到所述多個讀取-修改-寫入電路中與所述新位址對應的讀取-修改-寫入電路。
在一些實施例中,所述方法還包括:由所述應用調用驅動程式函數執行資料表掃描操作;以及由所述資料庫卸載引擎執行所述資料表掃描操作,所述執行所述資料表掃描操作包括:由所述資料庫卸載引擎的條件測試電路判斷所述資料庫卸載引擎的輸入緩衝器中的第一位址處的第一條目是否滿足條件,以及回應於判斷出所述輸入緩衝器中的所述第一條目滿足所述條件,將相應的結果寫入所述資料庫卸載引擎的輸出緩衝器中。
105:主機
110:資料庫卸載引擎
305:第一步驟
310:第二步驟
315:第三步驟
320:第四步驟
325:隨後的步驟
405:資料庫應用
410:驅動層
415:周邊元件連接快速介面
420:第一並行器
425:資料庫卸載電路/卸載電路
430:第二並行器
435:記憶體介面電路
440:記憶體
505:一組控制暫存器
510:向量化資料表掃描電路
515:資料表掃描電路
520:總和聚合電路
525:預取電路
530:記憶體讀取電路
535:記憶體寫入電路
605:條件測試電路
610:輸入緩衝器
615:輸出緩衝器
620:暫存器
705:控制電路
710:向量化加法器
715:預取緩衝器
720:讀取-修改-寫入電路
725:總和緩衝器
730:查找電路
735:金鑰位址表緩衝器
740:金鑰位址表/位址表
745:第一8×8縱橫開關
750:第二8×8縱橫開關
805:資料庫應用
810:作業系統
815:主機CPU
820:控制器
825:主機主記憶體
參照說明書、權利要求書及附圖,將瞭解及理解本揭露的這些以及其他特徵及優點,在附圖中:圖1是根據本揭露的實施例的資料庫處理系統的方塊圖。
圖2是根據本揭露的實施例的資料表掃描操作的處理流程圖。
圖3是根據本揭露的實施例的資料庫處理操作的次序的處理流程圖。
圖4是根據本揭露的實施例的資料庫處理系統的方塊圖。
圖5是根據本揭露的實施例的資料庫卸載引擎的方塊圖。
圖6是根據本揭露的實施例的資料表掃描電路的方塊圖。
圖7是根據本揭露的實施例的總和聚合電路的方塊圖。
圖8是根據本揭露的實施例的資料庫處理系統的硬體-軟體
方塊圖。
圖9A是根據本揭露的實施例的資料庫處理操作的處理流程圖。
圖9B是根據本揭露的實施例的資料庫處理操作的處理流程圖。
以下結合附圖所述的詳細說明旨在作為對根據本揭露所提供的資料庫卸載引擎的示例性實施例的說明,而非旨在表示其中可構造或利用本發明的僅有形式。所述說明結合所示的實施例陳述本發明的特徵。然而,應理解,可通過也旨在涵蓋于本發明的範圍內的不同實施例來實現相同的或等效的功能及結構。如本文中別處所示,相同的元件編號旨在指示相同的元件或特徵。
參照圖1,在一些實施例中,資料庫處理系統包括主機105及資料庫卸載引擎110;資料庫卸載引擎110可以是主機的一部分,或者資料庫卸載引擎110可連接到主機,如圖所示。舉例來說,主機105可以是電腦或伺服器,包括中央處理單元(central processing unit,CPU)、主記憶體及持久性儲存器(例如,硬碟驅動器或固態驅動器)。資料庫卸載引擎110可包括或連接到持久性記憶體。持久性記憶體是一類平衡速度、容量及持久性的記憶體。卸載更接近資料的聚合操作及資料表掃描操作的優點之一是這些操作是資料密集型的(data intensive)而不是計算密集型的(compute intensive)。資料庫卸載引擎110可包括處理電路(以下進一步詳細論述)及記憶體。資料庫卸載引擎110可通過若干
介面(包括NVDIMM-p(經由記憶體通道)及PCIe)中的任一者連接到主機。主機可執行各種資料庫處理操作,包括執行查詢。
資料庫處理操作的一個實例是資料表掃描操作。參照圖2,資料表掃描操作可包括搜索資料庫的表的整個列以尋找滿足條件的條目。所述條件可以是主機正在執行的查詢的一部分或可從所述查詢匯出。在圖2的實例中,待執行的資料表掃描需要識別列中對應於“紐約”的每個條目,其中名稱“紐約”根據字典(也儲存在資料庫中)對應於整數772。待被搜索的列可以壓縮形式儲存,每個條目具有17位元。為執行資料表掃描,資料庫處理系統解壓縮待被搜索的列(將每個17位元數轉換為32位元數),並且針對每個條目測試所述條目是否滿足條件(在此種情況下,解壓縮的整數是否等於772)。掃描的結果可以兩種格式中的一者來表示,所述兩種格式為(i)作為向量,具有與被搜索的列相同數量的元素(在圖2的實例中為257個元素),針對滿足條件的每個條目含有一且針對不滿足條件的每個條目含有零,或者(ii)作為在滿足條件的列中的每一元素在列中的索引(或位址)的向量。在一些實施例中,向量相反含有不滿足條件的每個元素的位址。
資料庫處理操作的另一實例是總和聚合操作。可在金鑰值表上執行此種操作,所述金鑰值表可以是兩列表,其中一列包括一組金鑰(其中例如每一金鑰是4位元組數),而另一列包括一組相應的值(其中例如每個值是8位元組數)。一些金鑰可以重複(以任何順序);舉例來說,金鑰23876可在表中出現27次,具有多達27個不同的各對應值。總和聚合操作從第一金鑰值表產生第二金鑰值表,在所述第二金鑰值表中,每個金鑰恰好出現一次
(例如,按排列的昇冪),並且對應於每個金鑰的值是在第一金鑰值表中對應於所述金鑰的所有值的總和。
資料表掃描操作及總和聚合操作以及其他資料庫處理操作(例如,分組(GroupBy)操作)可由主機一起執行。應理解,分組(GroupBy)操作的實例僅僅是一個實例,並且一般來說主機可對資料執行任何操作。當主機執行資料表掃描操作及總和聚合操作時,資料表掃描操作及總和聚合操作可能消耗主機的處理週期的相當大的部分;因此,如果這些操作改為由(即,由主機卸載到)資料庫卸載引擎執行,那麼可顯著提高資料庫處理系統的整體處理速度。此外,舉例來說,如果資料庫卸載引擎採用為例如資料表掃描操作及總和聚合操作而設計的專用硬體,那麼可降低功耗,其中所述專用硬體可能需要比主機CPU的通用硬體更少的能量來執行給定操作。
圖3示出說明用於性能改進的此種卸載的處理流程。在第一步驟305中,主機CPU產生查詢計畫,所述查詢計畫包括資料表掃描操作及總和聚合操作。在第二步驟310中,資料庫卸載引擎(或“加速器”)執行資料表掃描操作。在第三步驟315中,主機CPU執行包括分組(GroupBy)操作的額外資料庫操作。在第四步驟320中,資料庫卸載引擎執行總和聚合操作。在隨後的步驟325中並且可能在其他隨後的步驟中,主機CPU然後使用資料表掃描操作和/或總和聚合操作的結果來執行額外的資料庫操作。
圖4示出根據一個實施例的資料庫卸載引擎、以及與其交互作用的兩個軟體層的方塊圖。資料庫應用405(例如,SAP
高性能分析設備(High-performance ANalytic Appliance,HANA)資料庫應用)在主機上運行,且使用對驅動層410的適當調用將資料庫操作(例如,資料表掃描操作及總和聚合操作)卸載到資料庫卸載引擎110。資料庫卸載引擎110包括用於與主機通訊的PCIe介面415、用於將卸載的資料庫操作路由到若干(在圖4的實例中,兩個)資料庫卸載電路425中的任一者的第一並行器420、以及用於在卸載電路425與多個記憶體介面電路435(例如,馬赫介面產生器(mach interface generator,mig))之間建立連接的第二並行器430。資料庫卸載引擎110可如圖所示連接到多個記憶體440,或者,在一些實施例中,記憶體440可以是資料庫卸載引擎110的一部分。在一些實施例中,資料庫卸載引擎110包括多於兩個卸載電路425,例如,資料庫卸載引擎110可包括8個或多於8個、16個或多於16個、或32個或多於32個此種電路。
參照圖5,卸載電路425可包括一組控制暫存器505,主機可採用所述一組控制暫存器505來控制卸載電路425的操作。卸載電路425還可包括向量化資料表掃描電路510,所述向量化資料表掃描電路510包括多個資料表掃描電路(vsearch)515、總和聚合電路(例如,轉換後援緩衝器(Translation Lookaside Buffer,TLB)、向量化加法器(vadder)、掃描(scan))520及預取電路525。資料表掃描電路515及總和聚合電路520可分別執行資料表掃描操作及總和聚合操作,如以下進一步詳細論述,並且在資料表掃描電路515及總和聚合電路520中執行資料庫處理操作的同時,預取電路525可從記憶體440取出資料,並將取出的資料保存在資料表掃描電路515及總和聚合電路520中的相應緩
衝器中。向量化資料表掃描電路510可接收壓縮資料並在進一步對其進行處理之前對其進行解壓縮。預取電路525可使用記憶體讀取電路530從記憶體440取出資料,且可使用記憶體寫入電路535將資料表掃描操作及總和聚合操作的結果寫入到記憶體440。
參照圖6,資料表掃描電路515中的每一者可包括條件測試電路605、輸入緩衝器610、輸出緩衝器615及一組暫存器620。暫存器620可包括進入輸入緩衝器610的指示器(pointer)、進入輸出緩衝器615的指示器以及指定待測試的條件的一個或多個暫存器。指定所述條件的暫存器可包括指定參考值的一個或多個值暫存器、以及指定關係的一個或多個關係暫存器。舉例來說,如果第一關係暫存器含有對應於關係“等於”的值並且對應的值暫存器包含值37,那麼條件測試電路605可在當前輸入緩衝器值(在輸入緩衝器610中由進入輸入緩衝器610的指示器識別的位址處的值)等於37時產生一。如果正在執行的掃描的結果將被格式化為針對滿足條件的每個條目含有一且針對不滿足條件的每個條目含有零的向量,那麼條件測試電路605然後可將當前結果(例如,一)寫入輸出緩衝器615中位於輸出緩衝器615中由進入輸出緩衝器615的指示器識別的位址處。每當條件測試電路605執行測試之後,進入輸入緩衝器610中的指示器以及進入輸出緩衝器615中的指示器二者都可遞增。相反,如果正在執行的掃描的結果將被格式化為滿足條件的列中每個元素在列內的索引(或位址)的向量,那麼條件測試電路605可僅在當前結果是一時(即,當條件被滿足時)寫入輸出緩衝器615,並且在那些情況下條件測試電路605可將當前條目(正在測試的條目)在正被掃描的列中
的索引(或位址)寫入輸出緩衝器615。每當條件測試電路605執行測試之後,進入輸入緩衝器610的指示器便可遞增,並且每當條件測試電路605寫入輸出緩衝器615之後,進入輸出緩衝器615的指示器便可遞增。一些其他可能的關係包括“大於”和“小於”。暫存器620中的一些或全部暫存器可連結到所述一組控制暫存器505或在所述一組控制暫存器505內,且可由主機設定(即,寫入)。
如上所述,向量化資料表掃描電路510可包括多個資料表掃描電路515。舉例來說,如果表要被掃描若干次(針對相應的多個條件)、如果若干表待被掃描、或者如果將通過將表分成多個部分並且使資料表掃描電路515中的每一者對相應的部分執行資料表掃描操作來加速對表的掃描,那麼可採用這些資料表掃描電路515並行地執行多個資料表掃描操作。資料表掃描電路515可以是管線式的,使得對每個時脈週期執行一個測試,並且它們可被向量化以便並行地執行比較。
參照圖7,在一些實施例中,總和聚合電路520包括控制電路705、向量化加法器710及預取緩衝器715。總和聚合電路520可以是單個時脈域(具有單個時脈,被稱為電路的“系統時脈”)中的同步電路。向量化加法器710包括多個讀取-修改-寫入電路720,所述多個讀取-修改-寫入電路720中的每一者可連接到相應的總和緩衝器725。在操作中,預取電路525將金鑰值表(或此表的一部分)複製到預取緩衝器715中。預取緩衝器715中的每一金鑰值對(key-value pair)可通過以下進一步詳細描述的位址轉換處理被轉變為位址值對(address-value pair),並且位址值
對可被發送到讀取-修改-寫入電路720中的相應一者。然後,讀取-修改-寫入電路720從總和緩衝器725中的(位址值對的)位址中取出當前值總和,通過將來自位址值對的值與之相加來更新值總和,並將經更新的值總和保存回位址值對的位址處的總和緩衝器725中(重寫先前儲存在此位址處的值總和)。讀取-修改-寫入電路720中的每一者可被管線化,使得例如管線中的第一級執行讀取操作,管線中的第二級執行加法,且管線中的第三級執行寫入操作,且使得讀取-修改-寫入電路720可能夠在系統時脈的每一週期期間接收新的位址值對。一旦已經處理了整個金鑰值表,便可通過將對應于儲存有總和的位址的金鑰與儲存在總和緩衝器725中的每個總和相關聯來形成含有總和的新的金鑰值表。
上述位址轉換處理可能是有利的,因為對應於所有可能的4位元組數(如果每個金鑰是4位元組數)的金鑰空間可能相當大,但是任一金鑰值表可僅包括可能的4位元組數的小的子集。因此,控制電路705可執行位址轉換以將每個金鑰轉換為相應的位址,所述位址形成一組連續的位址。控制電路705可包括多個查找電路730以及一起形成金鑰位址表740的多個金鑰位址表緩衝器735。在操作中,每個查找電路730可一次一個地接收金鑰值對,並且(i)如果已經分配了一個位址,那麼通過搜索金鑰位址表緩衝器735來查找金鑰的位址,或者(ii)如果尚未分配位址給金鑰,那麼產生新的位址並將其分配給所述金鑰。下一位址暫存器(其可位於所述一組控制暫存器505(圖5)中)可含有下一可用位址,且每當位址被分配到先前未分配位址的金鑰時便可遞增。每一金鑰位址表緩衝器735可與可能的(4位元組)金鑰的子
集相關聯(例如,基於金鑰的三個最低有效位元,如以下進一步詳細討論),使得為了在金鑰位址表740中搜索金鑰,可能只需要搜索金鑰位址表緩衝器735中的一者。金鑰可按(遞增或遞減)順序儲存在每個金鑰位址表緩衝器735中,以便可使用日誌搜索(log search)來搜索金鑰位址表緩衝器735。查找電路730可以是包括用於搜索金鑰位址表的多個級的管線,每個級對應于日誌搜索中的步驟,使得查找電路730可以系統時脈的每個週期接收金鑰。
位址表740可包括例如8個金鑰位址表緩衝器735,所述8個金鑰位址表緩衝器735中的每一者可用於基於金鑰的三個最低有效位元來儲存金鑰的位址。舉例來說,第一金鑰位址表緩衝器(圖7中的PTLB0)可用於儲存以000結尾(即,具有000作為三個最低有效位元)的金鑰的位址,第二金鑰位址表緩衝器可用於儲存以001結尾的金鑰的位址,第三金鑰位址表緩衝器可用於儲存以010結尾的金鑰的位址,等等。第一8×8縱橫開關(cross-bar)745可用於使查找電路730中的每一者能夠存取所有金鑰位址表緩衝器735。舉例來說,在操作中,查找電路730中的一者(例如,第八個)可接收具有以000作為三個最低有效位元的金鑰的金鑰值對。然後,其可搜索PTLB0尋找此金鑰;如果所述金鑰在PTLB0中,那麼其可取出對應的位址,並將位址值對發送到被分配位址的讀取-修改-寫入電路720。
如果存在八個讀取-修改-寫入電路720,那麼對讀取-修改-寫入電路720的位址分配也可基於最低有效位元(例如,基於位址的三個最低有效位元)來完成,例如在圖7的實施例中。舉
例來說,如果從PTLB0讀取的位址以010結束,那麼第八查找電路可將所述位址及值發送到讀取-修改-寫入電路720中的第三個讀取-修改-寫入電路。位址及值的路由可由第二8×8縱橫開關750完成。如果在PTLB0中搜索金鑰的結果是未找到金鑰,那麼第八查找電路可將金鑰連同下一位址暫存器中的位址一起儲存在PTLB0中,使下一位址暫存器遞增,且將金鑰及位址發送到被分配位址的讀取-修改-寫入電路720。每當啟始新的總和聚合操作時,下一位址暫存器便可被初始化為零。可通過在競爭輸出處進行仲裁來解決縱橫開關內的衝突。衝突發生的速率可取決於輸入金鑰的時間局部性。將順序金鑰擴展到八個層面中使得能夠實現並行性,並且可減少衝突。
在一些實施例中,資料庫卸載引擎具有與主機的NVDIMM-P(或記憶體通道)介面(並且資料庫卸載引擎可以NVDIMM-P形狀因數(form factor)封裝)。然後,主機可通過適應對記憶體的非同步存取的作業系統調用來與資料庫卸載引擎交互作用。此種非同步介面可便於在資料庫卸載引擎中執行操作(此可引入在使用同步記憶體介面時可能無法接受的延遲)。當在對主機呈現為記憶體的硬體元件中執行時,這種操作可被稱為“記憶體中函數(function-in-memory,FIM)”處理。參照圖8,在一些此類實施例中,資料庫應用805(例如,SAP HANA資料庫應用)在作業系統810內執行,所述作業系統810包括作為記憶體中函數軟體介面(function-in-memory software interface)操作的驅動層410。主機CPU 815可通過控制器820(如果資料庫卸載引擎具有NVDIMM-P介面,那麼控制器820可以是支援動態隨機存取記
憶體(DRAM)雙列直插式儲存模組(DIMM)記憶體及NVDIMM-P記憶體兩者的記憶體控制器,或者如果資料庫卸載引擎具有PCIe介面,那麼控制器820可以是記憶體控制器及PCIe控制器的組合)與主機主記憶體825以及與資料庫卸載引擎進行通訊。
如果資料庫卸載引擎具有NVDIMM-P介面,那麼在主機上運行的資料庫應用805可使用資料庫卸載引擎的記憶體(例如,記憶體410(圖4))來儲存資料庫表,而無論將對它們執行資料表掃描操作還是總和聚合操作。可對表執行各種資料庫操作,並將結果儲存在資料庫卸載引擎的記憶體中的其他表中。當需要資料表掃描操作或總和聚合操作時,主機CPU可簡單地指示資料庫卸載引擎對資料庫卸載引擎的記憶體中已有的表執行操作。
相反,如果資料庫卸載引擎具有PCIe介面,那麼一般將表儲存在資料庫卸載引擎的記憶體中可能是低效的,因為由於需要通過PCIe介面向主機CPU傳輸資料以及從主機CPU傳輸資料,對表中的資料執行主機CPU操作的速度可能會大大降低。因此,如果資料庫卸載引擎具有PCIe介面,那麼資料庫的表通常可儲存在主機主記憶體825中,並視需要複製到資料庫卸載引擎的記憶體中用於在資料庫卸載引擎中執行資料表掃描操作或總和聚合操作。由於在此類實施例中需要將表複製到資料庫卸載引擎並且從資料庫卸載引擎複製表,因此也許資料庫卸載引擎具有NVDIMM-P介面的實施例的性能通常可優於資料庫卸載引擎具有PCIe介面的實施例。
參照圖9A,在資料庫卸載引擎具有NVDIMM-p介面的
實施例中,臨時(或“時間”)資料可儲存在主機主記憶體825中。資料庫主儲存(或“Hana主儲存(Hana Main Store)”)可儲存在資料庫卸載引擎的記憶體440(或儲存在連接到資料庫卸載引擎的記憶體440)中,主機CPU以及在主機CPU上運行的資料庫應用805及一個或多個驅動層410通過一組控制暫存器505與所述記憶體進行介面。資料庫操作可包括解壓資料庫主儲存中的一個或多個表以形成來源資料,以及處理來源資料(使用由主機CPU執行的資料庫操作,或者在資料表掃描操作或總和聚合操作的情況下,由資料庫卸載引擎執行的資料庫操作)以形成目的資料。在此種實施例中,主機可產生查詢計畫,並且在卸載應用程式化介面(API)中調用函數,所述函數使得裝置驅動程式(device driver)命令卸載引擎執行總和聚合操作或資料表掃描操作。然後,資料庫卸載引擎可根據需要從資料庫主儲存解壓縮表資料,將未壓縮的資料保存在記憶體的源區域中,以管線式、向量化的方式執行總和聚合操作或資料表掃描操作,並將總和聚合操作或資料表掃描操作的結果儲存在記憶體的目的區域中。然後,主機可從記憶體的目的區域讀取結果,並視需要執行額外的資料庫操作。
參照圖9B,在資料庫卸載引擎具有PCIe介面的實施例中,資料庫主儲存可相反位於主機主記憶體825中。為了執行資料表掃描操作或總和聚合操作,被壓縮的資料可使用直接記憶體存取(direct memory access,DMA)(例如,由資料庫卸載引擎啟始的直接記憶體存取)從主機主記憶體825複製到資料庫卸載引擎的記憶體440(或複製到連接到資料庫卸載引擎的記憶體440),
在資料庫卸載引擎中解壓縮以形成來源資料,並被處理(使用資料表掃描操作或總和聚合操作)以形成目的資料。在此種實施例中,主機可產生查詢計畫,並且在卸載API中調用函數,所述函數使得裝置驅動程式命令卸載引擎執行總和聚合操作或資料表掃描操作。然後,資料庫卸載引擎可使用直接記憶體存取將來自主機主記憶體825中的資料庫主儲存的資料複製到資料庫卸載引擎的記憶體的源區域中。然後,資料庫卸載引擎可根據需要從記憶體的源區域解壓縮表資料,將未壓縮的資料保存在記憶體的源區域中,以管線式、向量化的方式執行總和聚合操作或資料表掃描操作,並將總和聚合操作或資料表掃描操作的結果儲存在記憶體的目的區域中。然後,主機可通過PCIe介面從記憶體的目的區域讀取結果,並視需要執行額外的資料庫操作。
用語“處理電路”在本文中用於意指處理資料或數位訊號所採用的硬體、韌體及軟體的任一組合。處理電路硬體可例如包括專用積體電路(application specific integrated circuit,ASIC)、通用或專用中央處理器(CPU)、數位訊號處理器(digital signal processor,DSP)、圖形處理器(graphics processing unit,GPU)及可程式化邏輯裝置(例如現場可程式化閘陣列(field programmable gate array,FPGA))。在本文所使用的處理電路中,每一功能由被配置(即,被硬連線)成執行所述功能的硬體執行,或者由被配置為執行儲存在非暫時性儲存媒體中的指令的更通用硬體(例如CPU)執行。處理電路可製作在單個印刷電路板(printed circuit board,PCB)上,或者分佈在若干經互連的PCB上。處理電路可包含其他處理電路;例如,處理電路可包括在PCB上被互
連的兩個處理電路,即FPGA及CPU。
應理解,雖然本文中可使用用語“第一”、“第二”、“第三”等來闡述各種元件、元件、區域、層及/或區段,然而這些元件、元件、區域、層及/或區段不應受這些用語限制。這些用語僅用於將一個元件、元件、區域、層或區段與另一元件、元件、區域、層或區段區分開。因此,在不背離本發明概念的精神及範圍的條件下,本文中所述的第一元件、第一元件、第一區域、第一層或第一區段可被稱為第二元件、第二元件、第二區域、第二層或第二區段。
本文中所使用的用語僅用於闡述特定實施例,而非旨在限制本發明概念。如本文中所使用,用語“大體上(substantially)”、“約(about)”及類似用語用作近似用語而非用作程度用語,且旨在考慮到所屬領域中的普通技術人員將認識到的所測量值或所計算值的固有偏差。如本文中所使用,用語“主要組分(major component)”指代以比組合物、聚合物或產物中的任何其他單一組分的量大的量存在於所述組合物或產物中的組分。相比之下,用語“主組分(primary component)”指代構成組合物、聚合物或產物的按重量計至少50%或更多的組分。如本文中所使用,用語“主要部分(major portion)”在應用于多個項時意指各項的至少一半。
如本文中所使用,除非上下文另有清楚指示,否則單數形式“一個(a及an)”旨在也包括複數形式。應進一步理解,在本說明書中所使用的用語“包括(comprises及/或comprising)”指明所陳述特徵、整數、步驟、操作、元件及/或元件的存在,但
並不排除一個或多個其他特徵、整數、步驟、操作、元件、元件及/或其群組的存在或添加。如本文中所使用,用語“及/或(and/or)”包括相關聯所列各項中的一者或多者的任意及所有組合。當位於一系列元件之前時,例如“...中的至少一者(at least one of)”等表達語修飾整個所述一系列元件且不修飾所述一系列中的個別元件。此外,在闡述本發明概念的實施例時所使用的“可(may)”指代“本發明概念的一個或多個實施例”。此外,用語“示例性(exemplary)”旨在指代實例或例證。如本文中所使用,用語“使用(use)”、“正使用(using)”、“被使用(used)”可被視為分別與用語“利用(utilize、utilizing及utilized)”、“正利用(utilizing)”、“被利用(utilized)”同義。
應理解,當將元件或層稱為“位於”另一元件或層“上”、“連接到”、“耦合到”或“相鄰於”另一元件或層時,所述元件或層可直接位於所述另一元件或層上、直接連接到、直接耦合到或直接相鄰於所述另一元件或層,或者可存在一個或多個中間元件或層。相比之下,當將元件或層稱為“直接位於”另一元件或層“上”、“直接連接到”、“直接耦合到”或“緊鄰於”另一元件或層時,不存在中間元件或層。
本文所敘述的任何數值範圍都旨在包括在所敘述的範圍內的同一數值精度的所有子範圍。舉例來說,“1.0至10.0”的範圍旨在包括位於所敘述的最小值1.0與所敘述的最大值10.0之間(且包括所敘述的最小值1.0及所敘述的最大值10.0)的所有子範圍,即最小值等於或大於1.0且最大值等於或小於10.0,例如2.4至7.6。本文所敘述的任何最大數值限制均旨在包括其中包含
的所有更低數值限制,且本說明書中所敘述的任何最小數值限制均旨在包括其中包含的所有更高數值限制。
雖然本文中已具體闡述及示出了資料庫卸載引擎的示例性實施例,然而對於所屬領域中的技術人員來說,許多修改及變化形式將為顯而易見的。因此,應理解,根據本揭露的原理所構造的資料庫卸載引擎可以除本文中所具體闡述的方式之外的方式來實施。本發明還在以上權利要求書及其等效內容中被界定。
105:主機
110:資料庫卸載引擎
Claims (20)
- 一種資料庫處理系統,包括資料庫卸載引擎,所述資料庫卸載引擎包括:向量化加法器,包括多個讀取-修改-寫入電路;多個總和緩衝器,分別連接到所述讀取-修改-寫入電路;金鑰位址表;以及控制電路,所述控制電路被配置為:接收第一金鑰以及對應的第一值;在所述金鑰位址表中搜索所述第一金鑰,以及回應於在所述金鑰位址表中找到對應於所述第一金鑰的位址,將所述位址及所述第一值路由到所述多個讀取-修改-寫入電路中與所述位址對應的讀取-修改-寫入電路。
- 如申請專利範圍第1項所述的資料庫處理系統,其中所述控制電路更配置為:接收第二金鑰以及對應的第二值;在所述金鑰位址表中搜索所述第二金鑰,以及回應於在所述金鑰位址表中未找到對應於所述第二金鑰的位址,選擇在所述金鑰位址表中不存在的新位址,將所述第二金鑰及所述新位址儲存在所述金鑰位址表中,並將所述新位址及所述第二值路由到所述多個讀取-修改-寫入電路中與所述新位址對應的讀取-修改-寫入電路。
- 如申請專利範圍第1項所述的資料庫處理系統,其中所述資料庫卸載引擎具有用於建立與主機的連接的非揮發性雙列直插式儲存模組-P介面。
- 如申請專利範圍第1項所述的資料庫處理系統,其中所述資料庫卸載引擎具有用於建立與主機的連接的周邊元件連接快速介面。
- 如申請專利範圍第1項所述的資料庫處理系統,其中:所述向量化加法器是一個時脈域內的同步電路,所述一個時脈域是由共用系統時脈定義的,所述多個讀取-修改-寫入電路中的一個讀取-修改-寫入電路被配置為管線,所述管線包括:用於執行讀取操作的第一級,用於執行加法運算的第二級,以及用於執行寫入操作的第三級,且所述管線被配置為以所述共用系統時脈的每一週期接收位址以及對應的值。
- 如申請專利範圍第1項所述的資料庫處理系統,其中:所述控制電路是一個時脈域內的同步電路,所述一個時脈域是由共用系統時脈定義的,所述控制電路包括用於在所述金鑰位址表中搜索金鑰的查找電路,所述查找電路被配置為包括用於搜索所述金鑰位址表的多個級的管線, 所述管線被配置為以所述共用系統時脈的每一週期接收金鑰。
- 如申請專利範圍第1項所述的資料庫處理系統,更包括連接到所述資料庫卸載引擎的主機,所述主機包括儲存下述的非暫時性儲存介質:資料庫應用指令,以及驅動層指令,所述資料庫應用指令包括函式呼叫,當所述函式呼叫被所述主機執行時,所述函式呼叫使得所述主機執行驅動層指令,所述驅動層指令使所述主機控制所述資料庫卸載引擎執行總和聚合操作。
- 如申請專利範圍第1項所述的資料庫處理系統,其中所述資料庫卸載引擎還包括多個表掃描電路,其中所述多個表掃描電路中的一個表掃描電路包括:可用條件程式化的條件測試電路,輸入緩衝器,以及輸出緩衝器,所述條件測試電路被配置為:判斷所述輸入緩衝器中的第一位址處的第一條目是否滿足所述條件,且回應於判斷出所述第一條目滿足所述條件,將相應的結果寫入所述輸出緩衝器中。
- 如申請專利範圍第8項所述的資料庫處理系統,其中所述條件測試電路被配置為回應於判斷出所述第一條目滿足所述條件,將一寫入到所述輸出緩衝器中的輸出向量的相應元素。
- 如申請專利範圍第8項所述的資料庫處理系統,其中所述條件測試電路被配置為回應於判斷出所述第一條目滿足所述條件,將所述第一位址寫入到所述輸出緩衝器中的輸出向量的相應元素。
- 如申請專利範圍第8項所述的資料庫處理系統,其中:所述向量化加法器是一個時脈域內的同步電路,所述一個時脈域是由共用的系統時脈定義的,所述多個讀取-修改-寫入電路中的一個讀取-修改-寫入電路被配置為管線,所述管線包括:用於執行讀取操作的第一級,用於執行加法運算的第二級,以及用於執行寫入操作的第三級,且所述管線被配置為以所述系統時脈的每一週期接收位址以及對應的值。
- 如申請專利範圍第8項所述的資料庫處理系統,其中:所述控制電路是一個時脈域內的同步電路,所述一個時脈域是由共用系統時脈定義的,所述控制電路包括用於在所述金鑰位址表中搜索金鑰的查找電路,所述查找電路被配置為包括用於搜索所述金鑰位址表的多個 級的管線,所述管線被配置為以所述共用系統時脈的每一週期接收金鑰。
- 如申請專利範圍第8項所述的資料庫處理系統,其中所述資料庫卸載引擎具有用於建立與主機的連接的非揮發性雙列直插式儲存模組-P介面。
- 一種資料庫處理系統,包括資料庫卸載引擎,所述資料庫卸載引擎包括:多個表掃描電路;所述多個表掃描電路中的一個表掃描電路包括:可用條件程式化的條件測試電路,輸入緩衝器,以及輸出緩衝器,且所述條件測試電路被配置為:判斷所述輸入緩衝器中的第一位址處的第一條目是否滿足所述條件,且回應於判斷出所述第一條目滿足所述條件,將相應的結果寫入所述輸出緩衝器中。
- 如申請專利範圍第14項所述的資料庫處理系統,其中所述條件測試電路被配置為回應於判斷出所述第一條目滿足所述條件,將一寫入到所述輸出緩衝器中的輸出向量的相應元素。
- 如申請專利範圍第14項所述的資料庫處理系統,其中所述條件測試電路被配置為回應於判斷出所述第一條目滿足所述 條件,將所述第一位址寫入到所述輸出緩衝器中的輸出向量的相應元素。
- 如申請專利範圍第14項所述的資料庫處理系統,其中所述資料庫卸載引擎具有用於建立與主機的連接的非揮發性雙列直插式儲存模組-P介面。
- 如申請專利範圍第14項所述的資料庫處理系統,其中所述資料庫卸載引擎具有用於建立與主機的連接的周邊元件連接快速介面。
- 一種用於從主機卸載資料庫操作的方法,所述方法包括:由在所述主機上運行的應用調用驅動程式函數執行總和聚合操作;以及由資料庫卸載引擎執行所述總和聚合操作,所述資料庫卸載引擎包括:向量化加法器,包括多個讀取-修改-寫入電路;多個總和緩衝器,分別連接到所述讀取-修改-寫入電路;金鑰位址表;以及控制電路,且執行所述總和聚合操作包括:接收第一金鑰以及對應的第一值;在所述金鑰位址表中搜索所述第一金鑰;回應於在所述金鑰位址表中找到對應於所述第一金鑰的位址,將所述位址及所述第一值路由到所述多個讀取-修改-寫 入電路中與所述位址對應的讀取-修改-寫入電路;接收第二金鑰以及對應的第二值;在所述金鑰位址表中搜索所述第二金鑰;回應於在所述金鑰位址表中未找到對應於所述第二金鑰的位址:選擇在所述金鑰位址表中不存在的新位址;將所述第二金鑰及所述新位址儲存在所述金鑰位址表中;以及將所述新位址及所述第二值路由到所述多個讀取-修改-寫入電路中與所述新位址對應的讀取-修改-寫入電路。
- 如申請專利範圍第19項所述的方法,更包括:由所述應用調用驅動程式函數執行表掃描操作;以及由所述資料庫卸載引擎執行所述表掃描操作,執行所述表掃描操作包括:由所述資料庫卸載引擎的條件測試電路判斷所述資料庫卸載引擎的輸入緩衝器中的第一位址處的第一條目是否滿足條件,以及回應於判斷出所述輸入緩衝器中的所述第一條目滿足所述條件,將相應的結果寫入所述資料庫卸載引擎的輸出緩衝器中。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201862735688P | 2018-09-24 | 2018-09-24 | |
US62/735,688 | 2018-09-24 | ||
US16/195,732 | 2018-11-19 | ||
US16/195,732 US11334284B2 (en) | 2018-09-24 | 2018-11-19 | Database offloading engine |
Publications (2)
Publication Number | Publication Date |
---|---|
TW202030622A TW202030622A (zh) | 2020-08-16 |
TWI801601B true TWI801601B (zh) | 2023-05-11 |
Family
ID=69884183
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW108120107A TWI801601B (zh) | 2018-09-24 | 2019-06-11 | 資料庫處理系統及用於卸載資料庫操作的方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US11334284B2 (zh) |
JP (1) | JP7187410B2 (zh) |
KR (1) | KR102551033B1 (zh) |
CN (1) | CN110941600A (zh) |
TW (1) | TWI801601B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117075966B (zh) * | 2023-08-31 | 2024-04-19 | 中科驭数(北京)科技有限公司 | 指令处理方法、装置、设备及可读存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW201502548A (zh) * | 2013-02-04 | 2015-01-16 | Alcatel Lucent Usa Inc | 動態掃描排程之系統及方法 |
US20160011791A1 (en) * | 2014-07-08 | 2016-01-14 | Fujitsu Limited | Storage control apparatus, storage system, and program |
TW201629687A (zh) * | 2014-10-31 | 2016-08-16 | 慧與發展有限責任合夥企業 | 組合式備用電力 |
US20170255508A1 (en) * | 2016-03-04 | 2017-09-07 | Samsung Electronics Co., Ltd. | Object storage system managing error-correction-code-related data in key-value mapping information |
Family Cites Families (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7093092B2 (en) * | 2002-12-10 | 2006-08-15 | Isic Corporation | Methods and apparatus for data storage and retrieval |
KR100870180B1 (ko) * | 2007-02-12 | 2008-11-25 | 삼성전자주식회사 | 와이맥스 네트워크에서의 효율적인 버퍼링을 위한 핸드오버제어 방법 및 그 제어 장치 |
US8468151B2 (en) | 2010-06-29 | 2013-06-18 | Teradata Us, Inc. | Methods and systems for hardware acceleration of database operations and queries based on multiple hardware accelerators |
US8700822B2 (en) | 2011-07-08 | 2014-04-15 | Hewlett-Packard Development Company, L.P. | Parallel aggregation system |
JP5524144B2 (ja) * | 2011-08-08 | 2014-06-18 | 株式会社東芝 | key−valueストア方式を有するメモリシステム |
US8660985B2 (en) * | 2012-04-11 | 2014-02-25 | Renmin University Of China | Multi-dimensional OLAP query processing method oriented to column store data warehouse |
US8762407B2 (en) * | 2012-04-17 | 2014-06-24 | Renmin University Of China | Concurrent OLAP-oriented database query processing method |
US9501550B2 (en) * | 2012-04-18 | 2016-11-22 | Renmin University Of China | OLAP query processing method oriented to database and HADOOP hybrid platform |
US9811476B2 (en) * | 2013-02-28 | 2017-11-07 | Panasonic Intellectual Property Management Co., Ltd. | Encryption and recording apparatus, encryption and recording system, and encryption and recording method |
CN105190762B (zh) * | 2013-03-13 | 2018-06-12 | 长瀬产业株式会社 | 半导体装置及写入/读取登录位址于半导体装置中的方法 |
US9792063B2 (en) | 2014-01-15 | 2017-10-17 | Intel Corporation | Deduplication-based data security |
US10198293B2 (en) | 2014-09-29 | 2019-02-05 | Samsung Electronics Co., Ltd. | Distributed real-time computing framework using in-storage processing |
KR102646619B1 (ko) * | 2016-02-05 | 2024-03-11 | 삼성전자주식회사 | 컴포지트 메모리 장치를 포함하는 전자 장치에 파일 시스템을 제공하는 시스템 및 방법 |
KR102667783B1 (ko) * | 2016-03-04 | 2024-05-23 | 삼성전자주식회사 | Ecc 관련 데이터를 키-밸류 맵핑 정보에서 관리하는 오브젝트 스토리지 시스템 |
US11036734B2 (en) | 2016-03-08 | 2021-06-15 | Oracle International Corporation | Fusing global reporting aggregate computation with the underlying operation in the query tree for efficient evaluation |
US9966152B2 (en) | 2016-03-31 | 2018-05-08 | Samsung Electronics Co., Ltd. | Dedupe DRAM system algorithm architecture |
US20180089074A1 (en) * | 2016-09-28 | 2018-03-29 | Intel Corporation | Techniques to Manage Key-Value Storage at a Memory or Storage Device |
US10416896B2 (en) | 2016-10-14 | 2019-09-17 | Samsung Electronics Co., Ltd. | Memory module, memory device, and processing device having a processor mode, and memory system |
US9910618B1 (en) | 2017-04-10 | 2018-03-06 | Pure Storage, Inc. | Migrating applications executing on a storage system |
KR102406666B1 (ko) * | 2017-09-20 | 2022-06-08 | 삼성전자주식회사 | 스냅샷 기능을 지원하는 키-밸류 스토리지 장치 및 상기 키-밸류 스토리지 장치의 동작 방법 |
US10831734B2 (en) * | 2018-05-07 | 2020-11-10 | Intel Corporation | Update-insert for key-value storage interface |
-
2018
- 2018-11-19 US US16/195,732 patent/US11334284B2/en active Active
-
2019
- 2019-06-05 KR KR1020190066512A patent/KR102551033B1/ko active IP Right Grant
- 2019-06-11 TW TW108120107A patent/TWI801601B/zh active
- 2019-08-20 CN CN201910770236.6A patent/CN110941600A/zh active Pending
- 2019-09-12 JP JP2019165985A patent/JP7187410B2/ja active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TW201502548A (zh) * | 2013-02-04 | 2015-01-16 | Alcatel Lucent Usa Inc | 動態掃描排程之系統及方法 |
US20160011791A1 (en) * | 2014-07-08 | 2016-01-14 | Fujitsu Limited | Storage control apparatus, storage system, and program |
TW201629687A (zh) * | 2014-10-31 | 2016-08-16 | 慧與發展有限責任合夥企業 | 組合式備用電力 |
US20170255508A1 (en) * | 2016-03-04 | 2017-09-07 | Samsung Electronics Co., Ltd. | Object storage system managing error-correction-code-related data in key-value mapping information |
Also Published As
Publication number | Publication date |
---|---|
KR102551033B1 (ko) | 2023-07-04 |
KR20200034922A (ko) | 2020-04-01 |
US20200097210A1 (en) | 2020-03-26 |
CN110941600A (zh) | 2020-03-31 |
JP2020053041A (ja) | 2020-04-02 |
JP7187410B2 (ja) | 2022-12-12 |
TW202030622A (zh) | 2020-08-16 |
US11334284B2 (en) | 2022-05-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10769065B2 (en) | Systems and methods for performing memory compression | |
US8766827B1 (en) | Parallel apparatus for high-speed, highly compressed LZ77 tokenization and Huffman encoding for deflate compression | |
US20200004549A1 (en) | Multi-threaded instruction buffer design | |
WO2021061269A1 (en) | Storage control apparatus, processing apparatus, computer system, and storage control method | |
GB2513987A (en) | Parallel apparatus for high-speed, highly compressed LZ77 tokenization and huffman encoding for deflate compression | |
US7483283B2 (en) | Apparatus for efficient streaming data access on reconfigurable hardware and method for automatic generation thereof | |
CN116860665A (zh) | 由处理器执行的地址翻译方法及相关产品 | |
TWI801601B (zh) | 資料庫處理系統及用於卸載資料庫操作的方法 | |
JPH08249178A (ja) | プロセッサのアネックス内において修飾ビットを形成する方法及び装置 | |
US6801988B2 (en) | Data buffer for block unit data transfer to SDRAM | |
US11500638B1 (en) | Hardware compression and decompression engine | |
US10083124B1 (en) | Translating virtual memory addresses to physical addresses | |
US8001358B2 (en) | Microprocessor and method of processing data including peak value candidate selecting part and peak value calculating part | |
US6990556B2 (en) | System and method for simultaneous access of the same doubleword in cache storage | |
CN116841920B (zh) | 用于执行存储器压缩的系统和方法 | |
JPH03189749A (ja) | アドレス変換装置 | |
US10740098B2 (en) | Aligning most significant bits of different sized elements in comparison result vectors | |
US20220137960A1 (en) | System and method for processing large datasets | |
US10579375B2 (en) | Method to build reconfigurable variable length comparators | |
US8117383B2 (en) | Hardware accelerator based method and device for string searching | |
WO2009136402A2 (en) | Register file system and method thereof for enabling a substantially direct memory access | |
JPH11259292A (ja) | データ処理装置、データ処理方法及びプロセッサ |