CN114816322B - SSD external ordering method, SSD external ordering device and SSD memory - Google Patents
SSD external ordering method, SSD external ordering device and SSD memory Download PDFInfo
- Publication number
- CN114816322B CN114816322B CN202210466201.5A CN202210466201A CN114816322B CN 114816322 B CN114816322 B CN 114816322B CN 202210466201 A CN202210466201 A CN 202210466201A CN 114816322 B CN114816322 B CN 114816322B
- Authority
- CN
- China
- Prior art keywords
- data
- ordered
- ssd
- flash memory
- memory
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/22—Arrangements for sorting or merging computer data on continuous record carriers, e.g. tape, drum, disc
- G06F7/24—Sorting, i.e. extracting data from one or more carriers, rearranging the data in numerical or other ordered sequence, and rerecording the sorted data on the original carrier or on a different carrier or set of carriers sorting methods in general
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0877—Cache access modes
- G06F12/0882—Page mode
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/0638—Organizing or formatting or addressing of data
- G06F3/0643—Management of files
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Computer Hardware Design (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Description
技术领域Technical Field
本申请涉及新型非易失性存储技术领域,特别是涉及一种SSD的外部排序方法、装置和SSD存储器。The present application relates to the field of novel non-volatile storage technology, and in particular to an SSD external sorting method, device and SSD memory.
背景技术Background Art
随着新型非易失性存储技术的发展,闪存已经广泛应用到大型服务器、个人移动设备、嵌入式传感设备以及高性能计算系统中。闪存是块寻址的持久性外存,读写的最小粒度是闪存块,新型非易失性存储器的读写粒度更小。从闪存类型来看,闪存可以分为NANDFlash和NOR Flash。基于闪存的固态盘(solid state drive,SSD)是一种基于闪存芯片的新型半导体存储设备,Active SSDs是一种可以执行部分计算功能的智能SSD,ActiveSort是一种基于Active SSDs的外部排序算法,ActiveSort分为两个阶段,生成有序中间结果阶段和归并阶段,ActiveSort的主要思路是在Active SSDs内部构建归并模块,可以有效减少数据传输,减少对SSD的读写操作,当主机端发起查询请求时,ActiveSort会在Active SSD内部执行merge-on-the-fly操作,把有序中间结果归并后,向主机端返回最终的有序结果。With the development of new non-volatile storage technology, flash memory has been widely used in large servers, personal mobile devices, embedded sensor devices and high-performance computing systems. Flash memory is a block-addressed persistent external memory. The minimum granularity of reading and writing is the flash memory block. The read and write granularity of new non-volatile memory is smaller. From the perspective of flash memory type, flash memory can be divided into NAND Flash and NOR Flash. Flash-based solid state drive (SSD) is a new semiconductor storage device based on flash memory chips. Active SSDs are intelligent SSDs that can perform some computing functions. ActiveSort is an external sorting algorithm based on Active SSDs. ActiveSort is divided into two stages, the stage of generating ordered intermediate results and the stage of merging. The main idea of ActiveSort is to build a merge module inside Active SSDs, which can effectively reduce data transmission and reduce the read and write operations on SSD. When the host initiates a query request, ActiveSort will perform a merge-on-the-fly operation inside the Active SSD, merge the ordered intermediate results, and return the final ordered results to the host.
但是ActiveSort主要存在两个问题,第一,ActiveSort没有在SSD端保存最终有序结果,每当主机端发起查询请求,SSD端都需要执行一次归并操作,会增加计算开销;第二,ActiveSort在归并阶段无法预知读取数据块的顺序,只能等输入缓存中的数据块处理完毕,才会从该数据块所在的中间结果文件中读取下一个数据块,无法充分发挥SSD的内部读写多通道并发,特别是在数据部分有序的场景下,会导致数值较大的数据块滞留在SSD的DRAM中,占用缓存资源,无法提高归并算法的执行效率。However, ActiveSort has two main problems. First, ActiveSort does not save the final ordered results on the SSD side. Every time the host side initiates a query request, the SSD side needs to perform a merge operation, which increases the computing overhead. Second, ActiveSort cannot predict the order of reading data blocks during the merge stage. It can only wait until the data blocks in the input cache are processed before reading the next data block from the intermediate result file where the data block is located. It cannot give full play to the internal read and write multi-channel concurrency of the SSD, especially in the scenario where the data is partially ordered. This will cause data blocks with larger values to remain in the SSD's DRAM, occupying cache resources and failing to improve the execution efficiency of the merge algorithm.
发明内容Summary of the invention
基于此,有必要针对上述技术问题,提供一种SSD的外部排序方法、装置和SSD存储器。Based on this, it is necessary to provide an SSD external sorting method, device and SSD memory to address the above technical problems.
一种SSD的外部排序方法,所述方法包括:An external sorting method for SSDs, the method comprising:
获取读取至内存中的小文件,对所述小文件排序,得到有序中间结果,将所述有序中间结果写回闪存中,所述小文件是对大文件数据进行切分得到的;Obtain small files read into the memory, sort the small files to obtain ordered intermediate results, and write the ordered intermediate results back to the flash memory, wherein the small files are obtained by segmenting the large file data;
根据所述有序中间结果中每个数据页的最小值和有序中间结果写回闪存上的位置信息,在SSD的内存中构建索引表;所述索引表中包含所述位置信息对应的索引信息;According to the minimum value of each data page in the ordered intermediate results and the position information of the ordered intermediate results written back to the flash memory, an index table is constructed in the memory of the SSD; the index table contains index information corresponding to the position information;
在进行数据归并时,根据数据页的最小值对索引表排序,根据所述索引表的排序结果和所述索引信息进行数据归并,得到有序结果,将所述有序结果写回闪存。When data merging is performed, the index table is sorted according to the minimum value of the data page, and data merging is performed according to the sorting result of the index table and the index information to obtain an ordered result, which is written back to the flash memory.
在其中一个实施例中,还包括:根据索引表的排序结果和所述索引信息依次读取数据页至SSD的输入缓存中;归并所述数据页,得到有序结果,记录下一待归并数据页的最小值,当输入缓存中的数据大小不超过所述最小值时,将所述有序结果批量写回闪存。In one of the embodiments, it also includes: reading data pages in sequence into the input cache of the SSD according to the sorting result of the index table and the index information; merging the data pages to obtain an ordered result, recording the minimum value of the next data page to be merged, and when the data size in the input cache does not exceed the minimum value, writing the ordered results back to the flash memory in batches.
在其中一个实施例中,还包括:当输入缓存中的数据大小大于所述最小值时,将所述有序结果中包含最小数据的数据页写回闪存,读取下一待归并数据页到输入缓存,迭代归并所述输入缓存中的数据页。In one of the embodiments, it also includes: when the data size in the input cache is greater than the minimum value, writing the data page containing the minimum data in the ordered result back to the flash memory, reading the next data page to be merged into the input cache, and iteratively merging the data pages in the input cache.
在其中一个实施例中,还包括:在所述闪存和所述输入缓存之间设置读闪存通道和写闪存通道。In one of the embodiments, it also includes: setting a read flash channel and a write flash channel between the flash memory and the input cache.
在其中一个实施例中,还包括:所述读闪存通道处理数据归并的读请求,从读闪存通道中读取数据到输入缓存。In one of the embodiments, the further includes: the read flash channel processes a read request for data merging, and reads data from the read flash channel to an input cache.
在其中一个实施例中,还包括:所述写闪存通道处理数据归并的写回请求,将所述有序结果写回写闪存通道,通过写闪存通道将有序结果写回闪存。In one of the embodiments, it also includes: the write flash channel processes a write-back request for data merging, writes the ordered result back to the write flash channel, and writes the ordered result back to the flash memory through the write flash channel.
在其中一个实施例中,还包括:将所述有序中间结果以数据页为基本单位交错分配到内存与闪存之间的各个闪存通道,通过所述闪存通道将有序中间结果写回闪存。In one of the embodiments, the method further includes: allocating the ordered intermediate results to each flash memory channel between the memory and the flash memory in an interleaved manner with data pages as basic units, and writing the ordered intermediate results back to the flash memory through the flash memory channel.
在其中一个实施例中,还包括:所述有序中间结果的数据页数目等于SSD输入缓存可容纳的数据页数目。In one of the embodiments, the number of data pages of the ordered intermediate result is equal to the number of data pages that can be accommodated by the SSD input cache.
一种SSD的外部排序装置,所述装置包括:An external sorting device for an SSD, the device comprising:
有序中间结果生成模块,获取读取至内存中的小文件,对所述小文件排序,得到有序中间结果,将所述有序中间结果写回闪存中,所述小文件是对大文件数据进行切分得到的;An ordered intermediate result generation module obtains small files read into the memory, sorts the small files, obtains ordered intermediate results, and writes the ordered intermediate results back to the flash memory. The small files are obtained by segmenting the large file data.
索引表构建模块,用于根据所述有序中间结果中每个数据页的最小值和数据页在闪存上的位置信息,在SSD的内存中构建索引表;所述索引表中包含所述位置信息对应的索引信息;An index table construction module, used to construct an index table in the memory of the SSD according to the minimum value of each data page in the ordered intermediate result and the location information of the data page on the flash memory; the index table contains index information corresponding to the location information;
数据归并模块,用于在进行数据归并时,根据数据页的最小值对索引表排序,根据所述索引表的排序结果和所述索引信息进行数据归并,得到有序结果,将所述有序结果写回闪存。The data merging module is used to sort the index table according to the minimum value of the data page when performing data merging, merge the data according to the sorting result of the index table and the index information, obtain an ordered result, and write the ordered result back to the flash memory.
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:A computer device comprises a memory and a processor, wherein the memory stores a computer program, and when the processor executes the computer program, the following steps are implemented:
有序中间结果生成模块,获取读取至内存中的小文件,对所述小文件排序,得到有序中间结果,将所述有序中间结果写回闪存中,所述小文件是对大文件数据进行切分得到的;An ordered intermediate result generation module obtains small files read into the memory, sorts the small files, obtains ordered intermediate results, and writes the ordered intermediate results back to the flash memory. The small files are obtained by segmenting the large file data.
索引表构建模块,用于根据所述有序中间结果中每个数据页的最小值和数据页在闪存上的位置信息,在SSD的内存中构建索引表;所述索引表中包含所述位置信息对应的索引信息;An index table construction module, used to construct an index table in the memory of the SSD according to the minimum value of each data page in the ordered intermediate result and the location information of the data page on the flash memory; the index table contains index information corresponding to the location information;
数据归并模块,用于在进行数据归并时,根据数据页的最小值对索引表排序,根据所述索引表的排序结果和所述索引信息进行数据归并,得到有序结果,将所述有序结果写回闪存。The data merging module is used to sort the index table according to the minimum value of the data page when performing data merging, merge the data according to the sorting result of the index table and the index information, obtain an ordered result, and write the ordered result back to the flash memory.
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:A computer-readable storage medium stores a computer program, which, when executed by a processor, implements the following steps:
有序中间结果生成模块,获取读取至内存中的小文件,对所述小文件排序,得到有序中间结果,将所述有序中间结果写回闪存中,所述小文件是对大文件数据进行切分得到的;An ordered intermediate result generation module obtains small files read into the memory, sorts the small files, obtains ordered intermediate results, and writes the ordered intermediate results back to the flash memory. The small files are obtained by segmenting the large file data.
索引表构建模块,用于根据所述有序中间结果中每个数据页的最小值和数据页在闪存上的位置信息,在SSD的内存中构建索引表;所述索引表中包含所述位置信息对应的索引信息;An index table construction module, used to construct an index table in the memory of the SSD according to the minimum value of each data page in the ordered intermediate result and the location information of the data page on the flash memory; the index table contains index information corresponding to the location information;
数据归并模块,用于在进行数据归并时,根据数据页的最小值对索引表排序,根据所述索引表的排序结果和所述索引信息进行数据归并,得到有序结果,将所述有序结果写回闪存。The data merging module is used to sort the index table according to the minimum value of the data page when performing data merging, merge the data according to the sorting result of the index table and the index information, obtain an ordered result, and write the ordered result back to the flash memory.
上述SSD的外部排序方法、装置、计算机设备和存储介质,将大数据文件切分为主机端内存能容纳下的小文件,依次把每个小文件读到内存中排序,得到有序中间结果,将所述有序中间结果以数据页为单位写回SSD端,根据每个数据页的最小值和位置信息在SSD的内存中构建索引表,按照数据页的最小值对索引表进行排序,根据所述索引表就可以决定数据归并阶段读取数据页的顺序,能够避免数值较大的数据页常驻内存,能够提高算法的执行效率,根据所述索引表的排序结果和所述索引信息进行数据归并,得到有序结果,将所述有序结果写回闪存,当主机端频繁查询有序结果时,就可以直接输出所述有序结果而不需要重新执行归并操作。本发明实施例,能够提高SSD的读写多通道并发度,改善SSD的通道资源利用率。The above-mentioned SSD external sorting method, device, computer equipment and storage medium divide the large data file into small files that can be accommodated in the host-side memory, read each small file into the memory in turn for sorting, obtain an ordered intermediate result, write the ordered intermediate result back to the SSD side in units of data pages, build an index table in the SSD memory according to the minimum value and position information of each data page, sort the index table according to the minimum value of the data page, and determine the order of reading data pages in the data merging stage according to the index table, which can avoid the data pages with large values residing in the memory, and improve the execution efficiency of the algorithm. Merge data according to the sorting result of the index table and the index information to obtain an ordered result, and write the ordered result back to the flash memory. When the host side frequently queries the ordered result, the ordered result can be directly output without re-executing the merge operation. The embodiment of the present invention can improve the multi-channel concurrency of SSD reading and writing and improve the channel resource utilization of SSD.
附图说明BRIEF DESCRIPTION OF THE DRAWINGS
图1为一个实施例中SSD的外部排序方法的流程示意图;FIG1 is a schematic flow chart of an external sorting method for SSDs in one embodiment;
图2为一个实施例中IndexSort在数据归并阶段的数据页读写示意图;FIG2 is a schematic diagram of data page reading and writing in the data merging phase of IndexSort in one embodiment;
图3为一个实施例中不同读写通道比例对写回策略的性能影响示意图;FIG3 is a schematic diagram showing the effect of different ratios of read and write channels on the performance of a write-back strategy in one embodiment;
图4为另一个实施例中IndexSort的归并阶段示意图;FIG4 is a schematic diagram of the merging phase of IndexSort in another embodiment;
图5为一个实施例中不同数据集大小对Isort和Baseline的性能影响示意图;FIG5 is a schematic diagram showing the effect of different data set sizes on the performance of Isort and Baseline in one embodiment;
图6为一个实施例中不同DRAM大小对Isort和Baseline的性能影响示意图;FIG6 is a schematic diagram showing the effect of different DRAM sizes on the performance of Isort and Baseline in one embodiment;
图7为一个实施例中SSD的外部排序装置的结构框图;FIG7 is a block diagram of an external sorting device of an SSD in one embodiment;
图8为一个实施例中计算机设备的内部结构图。FIG. 8 is a diagram showing the internal structure of a computer device in one embodiment.
具体实施方式DETAILED DESCRIPTION
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。本发明基于Active SSD的外部排序算法,提出一种称为IndexSort的外排序算法。In order to make the purpose, technical solution and advantages of the present application more clear, the present application is further described in detail below in conjunction with the accompanying drawings and embodiments. It should be understood that the specific embodiments described herein are only used to explain the present application and are not used to limit the present application. The present invention is based on the external sorting algorithm of Active SSD and proposes an external sorting algorithm called IndexSort.
在一个实施例中,如图1所示,提供了一种SSD的外部排序方法,包括以下步骤:In one embodiment, as shown in FIG1 , a method for external sorting of SSDs is provided, comprising the following steps:
步骤102,获取读取至内存中的小文件,对小文件排序,得到有序中间结果,将有序中间结果写回闪存中。Step 102, obtain the small files read into the memory, sort the small files, obtain ordered intermediate results, and write the ordered intermediate results back to the flash memory.
小文件是通过对大文件数据进行切分得到的,由于内存空间有限,所以将大文件数据切分为内存可以容纳下的小文件,将小文件读取至内存中,对小文件进行内存排序,得到有序中间结果,有序中间结果以数据页为单位写回SSD的闪存,通过数据归并将有序中间结果进行排序,得到有序结果。Small files are obtained by splitting large file data. Due to limited memory space, large file data is split into small files that can be accommodated in the memory. The small files are read into the memory and sorted in memory to obtain ordered intermediate results. The ordered intermediate results are written back to the flash memory of the SSD in units of data pages. The ordered intermediate results are sorted through data merging to obtain ordered results.
步骤104,根据有序中间结果中每个数据页的最小值和数据页在闪存上的位置信息,在SSD的内存中构建索引表。Step 104: construct an index table in the memory of the SSD according to the minimum value of each data page in the ordered intermediate result and the location information of the data page on the flash memory.
索引表中包含位置信息对应的索引信息,检测有序中间结果中每个数据页的最小值,根据数据页的最小值和在闪存上的位置信息构建数据页最小值索引表,并根据数据页的最小值对索引表从小到大排序,索引表的主要作用是决定归并阶段从闪存中把数据块读到SSD的输入缓存的顺序,通过构建索引表,来决定归并阶段读取数据页的顺序,从而加快外部排序的执行。The index table contains index information corresponding to the position information, detects the minimum value of each data page in the ordered intermediate result, builds a data page minimum value index table based on the minimum value of the data page and the position information on the flash memory, and sorts the index table from small to large based on the minimum value of the data page. The main function of the index table is to determine the order in which data blocks are read from the flash memory to the input cache of the SSD during the merge phase. By building the index table, the order in which data pages are read during the merge phase is determined, thereby speeding up the execution of external sorting.
步骤106,在进行数据归并时,根据数据页的最小值对索引表排序,根据索引表的排序结果和索引信息进行数据归并,得到有序结果,将有序结果写回闪存。Step 106, when merging data, sort the index table according to the minimum value of the data page, merge the data according to the sorting result of the index table and the index information, obtain an ordered result, and write the ordered result back to the flash memory.
在SSD的内部进行外部排序的数据归并,可以减少数据传输量,减少对SSD的读写操作,同时利用SSD的内部并发性和高I/O带宽,可以很好提升算法执行性能。将归并后的有序结果写回闪存,保存有序结果,当主机端频繁查询有序结果时,就不需要重新执行归并操作,可以节省时间开销。Merging externally sorted data within the SSD can reduce data transmission and read and write operations on the SSD, while utilizing the internal concurrency and high I/O bandwidth of the SSD to greatly improve algorithm execution performance. The merged ordered results are written back to the flash memory to save the ordered results. When the host frequently queries the ordered results, there is no need to re-execute the merge operation, which can save time.
上述SSD的外部排序方法中,将大数据文件切分为主机端内存能容纳下的小文件,依次把每个小文件读到内存中排序,得到有序中间结果,将有序中间结果以数据页为单位写回SSD端,根据每个数据页的最小值和位置信息在SSD的内存中构建索引表,按照数据页的最小值对索引表进行排序,根据索引表就可以预知读取数据块的顺序,通过对数据进行预读操作,提高算法的执行性能。根据索引表的排序结果和索引信息进行数据归并,得到有序结果,将有序结果写回闪存,当主机端频繁查询有序结果时,就可以直接输出有序结果而不需要重新执行归并操作。本发明实施例,能够提高SSD的读写多通道并发度,改善SSD的通道资源利用率。In the above-mentioned external sorting method of SSD, the large data file is divided into small files that can be accommodated in the host-side memory, and each small file is read into the memory in turn for sorting to obtain an ordered intermediate result, and the ordered intermediate result is written back to the SSD side in units of data pages. An index table is constructed in the memory of the SSD according to the minimum value and position information of each data page, and the index table is sorted according to the minimum value of the data page. The order of reading data blocks can be predicted according to the index table, and the execution performance of the algorithm is improved by pre-reading the data. Data is merged according to the sorting result and index information of the index table to obtain an ordered result, and the ordered result is written back to the flash memory. When the host side frequently queries the ordered result, the ordered result can be directly output without re-executing the merge operation. The embodiment of the present invention can improve the multi-channel concurrency of SSD reading and writing, and improve the channel resource utilization of SSD.
在其中一个实施例中,根据索引表的排序结果和索引信息进行数据归并,得到有序结果,将有序结果写回闪存包括:根据索引表的排序结果和索引信息依次读取数据页至SSD的输入缓存中;归并数据页,得到有序结果,记录下一待归并数据页的最小值,当输入缓存中的数据大小不超过最小值时,将有序结果批量写回闪存。在本实施例中,根据索引表归并数据页实现了将大文件数据中数据最小的数据页优先读到输入缓存中参与归并,通过批量写回小值数据,可以减少数值较大的数据页滞留在内存的时间,并使内存腾出更多的空间,加快归并阶段的执行。In one of the embodiments, data is merged according to the sorting results and index information of the index table to obtain an ordered result, and the ordered result is written back to the flash memory, including: reading data pages in sequence according to the sorting results and index information of the index table to the input cache of the SSD; merging data pages to obtain an ordered result, recording the minimum value of the next data page to be merged, and when the data size in the input cache does not exceed the minimum value, the ordered results are written back to the flash memory in batches. In this embodiment, merging data pages according to the index table realizes that the data page with the smallest data in the large file data is read into the input cache first to participate in the merge. By writing back small value data in batches, the time that data pages with larger values stay in the memory can be reduced, and more space can be freed up in the memory, thereby speeding up the execution of the merge stage.
在其中一个实施例中,还包括:当输入缓存中的数据大小大于最小值时,将有序结果中包含最小数据的数据页写回闪存,读取下一待归并数据页到输入缓存,迭代归并输入缓存中的数据页。In one of the embodiments, it also includes: when the data size in the input cache is greater than the minimum value, writing the data page containing the minimum data in the ordered result back to the flash memory, reading the next data page to be merged into the input cache, and iteratively merging the data pages in the input cache.
在本实施例中,以图2所示的IndexSort在数据归并阶段的数据页读写示意图为例,根据索引表顺序,依次读取b1、b2、a1、a2、a3、c1、c2以及a4,执行归并比较操作,同时记录下一个数据页的最小值,也就是将数据页b3的最小值作为一个阈值,如果数据缓存区内所有的数据比阈值小,说明这部分数据也是目前还没写回闪存通道中最小的数据,那么这部分数据排序后可以批量写回闪存,提高闪存通道写多通道并发度,提高闪存通道资源利用率。同时,数据缓存区也会腾出更多的空间,这时可以根据当前数据缓存区空闲空间状态读取多个数据页,就可以提高闪存的读多通道并发度,提高闪存通道资源利用率。In this embodiment, taking the data page reading and writing schematic diagram of IndexSort in the data merging stage shown in FIG2 as an example, according to the order of the index table, b1, b2, a1, a2, a3, c1, c2 and a4 are read in sequence, and the merging and comparison operation is performed, and the minimum value of the next data page is recorded at the same time, that is, the minimum value of data page b3 is used as a threshold. If all the data in the data cache area is smaller than the threshold, it means that this part of the data is also the smallest data that has not been written back to the flash memory channel. Then, this part of the data can be written back to the flash memory in batches after sorting, thereby improving the flash memory channel writing multi-channel concurrency and improving the flash memory channel resource utilization. At the same time, the data cache area will also free up more space. At this time, multiple data pages can be read according to the current data cache area free space status, which can improve the flash memory reading multi-channel concurrency and improve the flash memory channel resource utilization.
在其中一个实施例中,还包括:在闪存和输入缓存之间设置读闪存通道和写闪存通道;读闪存通道处理数据归并的读请求,从读闪存通道中读取数据到输入缓存;写闪存通道处理数据归并的写回请求,将有序结果写回写闪存通道,通过写闪存通道将有序结果写回闪存。在本实施例中,使用读写通道分离策略处理数据归并的读写请求,读写通道分离策略是指读闪存通道专门用于处理数据归并的读请求,输入缓存从读闪存通道中读取数据,写闪存通道主要用于处理数据归并的写回请求,将归并后的有序结果写回闪存通道。这样可以充分提高SSD的通道资源利用率,减少通道闲置的情况,提高读写多通道并发度,可以加快算法的执行性能。In one of the embodiments, it also includes: setting a read flash channel and a write flash channel between the flash memory and the input cache; the read flash channel processes the read request for data merging, and reads data from the read flash channel to the input cache; the write flash channel processes the write back request for data merging, writes the ordered result back to the write flash channel, and writes the ordered result back to the flash memory through the write flash channel. In this embodiment, the read and write channel separation strategy is used to process the read and write requests for data merging. The read and write channel separation strategy means that the read flash channel is specifically used to process the read request for data merging, the input cache reads data from the read flash channel, and the write flash channel is mainly used to process the write back request for data merging, and writes the merged ordered result back to the flash channel. In this way, the channel resource utilization rate of the SSD can be fully improved, the idle channel situation can be reduced, the concurrency of the read and write multi-channels can be improved, and the execution performance of the algorithm can be accelerated.
在一个具体实施例中,如图3所示,提供一种不同读写通道比例对写回策略的性能影响示意图,Baseline指的是ActiveSort,RT表示读取时间,WT表示写回时间,Avg表示平均,写回策略指的是读写通道混合策略和读写通道分离策略,读写通道混合策略是指闪存通道既要处理数据归并的读请求,同时又要处理数据归并的写请求,在图3中,横坐标是读写通道分离的情况下,读写通道的比例,SSDSim模拟器一共设置了16个闪存通道,SSDSim模拟器是一个可配置的,模块化的固态盘模拟器,SSDSim模拟器参数配置情况如下表所示:In a specific embodiment, as shown in FIG3 , a schematic diagram of the performance impact of different read-write channel ratios on the write-back strategy is provided, Baseline refers to ActiveSort, RT represents read time, WT represents write-back time, Avg represents average, and the write-back strategy refers to the read-write channel hybrid strategy and the read-write channel separation strategy. The read-write channel hybrid strategy means that the flash memory channel must process both the read request of data merging and the write request of data merging. In FIG3 , the horizontal axis is the ratio of the read-write channel when the read-write channel is separated. The SSDSim simulator is set with 16 flash memory channels in total. The SSDSim simulator is a configurable, modular solid-state disk simulator. The parameter configuration of the SSDSim simulator is shown in the following table:
SSDSim模拟器参数设置SSDSim simulator parameter settings
横坐标的16:16指的是读写通道混合策略下的读写请求平均处理延迟,此时,读写混合策略有最好的性能,因为16个通道都用于归并阶段处理读请求和写请求,减少了SSD的闪存通道闲置的情况,采用读写通道混合策略,可以提高闪存通道资源利用率,加快归并阶段的执行;横坐标12:4是指12个通道用于归并阶段处理读请求,4个通道用来处理归并阶段的写请求,把归并后的有序结果写回独立的4个通道,不占用读通道的资源,但是,在归并阶段进行读操作和算法归并操作时,写通道会出现闲置的情况,没有很好地提高SSD的通道资源利用率;在采用读写通道分离策略下,随着读通道数目的增加,写通道数目的减少,可以看到折线图中处理读请求的平均响应时间逐渐增加,同时写请求的平均处理时间降低。综合看来,读写通道混合策略效果可以很好发挥SSD的读写多通道并发,提高通道资源利用率。The horizontal axis 16:16 refers to the average processing delay of read and write requests under the read-write channel hybrid strategy. At this time, the read-write hybrid strategy has the best performance because 16 channels are used to process read and write requests in the merge stage, reducing the idleness of the SSD flash channel. The read-write channel hybrid strategy can improve the flash channel resource utilization and speed up the execution of the merge stage. The horizontal axis 12:4 means that 12 channels are used to process read requests in the merge stage, and 4 channels are used to process write requests in the merge stage. The merged ordered results are written back to the independent 4 channels without occupying the resources of the read channel. However, when performing read operations and algorithm merge operations in the merge stage, the write channel will be idle, which does not improve the channel resource utilization of the SSD well. Under the read-write channel separation strategy, as the number of read channels increases and the number of write channels decreases, it can be seen that the average response time for processing read requests in the line graph gradually increases, while the average processing time for write requests decreases. In summary, the read-write channel hybrid strategy can give full play to the read-write multi-channel concurrency of the SSD and improve the channel resource utilization.
在其中一个实施例中,将有序中间结果写回闪存包括:将有序中间结果以数据页为基本单位交错分配到内存与闪存之间的各个闪存通道,通过闪存通道将有序中间结果写回闪存。在本实施例中,使用交错数据放置策略将有序中间结果写回闪存,交错数据放置策略的意思是把有序中间结果以数据页为基本单位交错分配到SSD的各个通道上,就可以充分发挥SSD的多通道写并发性能,提高通道资源利用率,同时可以提高写回闪存的效率。In one of the embodiments, writing the ordered intermediate results back to the flash memory includes: allocating the ordered intermediate results to each flash memory channel between the memory and the flash memory in an interleaved manner with data pages as basic units, and writing the ordered intermediate results back to the flash memory through the flash memory channels. In this embodiment, the ordered intermediate results are written back to the flash memory using an interleaved data placement strategy, which means that the ordered intermediate results are interleaved to each channel of the SSD in an interleaved manner with data pages as basic units, so that the multi-channel write concurrency performance of the SSD can be fully utilized, the channel resource utilization rate can be improved, and the efficiency of writing back to the flash memory can be improved.
在其中一个实施例中,还包括:有序中间结果的数据页数目等于SSD输入缓存可容纳的数据页数目。在本实施例中,保证输入缓存的数据页数目等于有序中间结果的数据页数目,才可以保证算法的准确性。In one embodiment, the number of data pages of the ordered intermediate result is equal to the number of data pages that the SSD input buffer can accommodate. In this embodiment, the accuracy of the algorithm can be guaranteed only by ensuring that the number of data pages of the input buffer is equal to the number of data pages of the ordered intermediate result.
在一个具体实施例中,如图4所示,提供一种IndexSort的归并阶段示意图,在图4中,在传统的归并阶段中,分别从6个中间结果中读取一个数据页到缓存里进行归并比较,在数据分布不是特别均匀的情况下,数值较小如(2,4,12)的数据页和数值较大的数据页(200,400,612)一并读取到缓存中,把数值较小的数据先写回闪存通道,最后再把数值较大的数据写回,数值较大的数据页(200,400,612)会一直滞留在缓存中和数值较小的数据归并比较,占用DRAM空间,直到归并阶段到达尾声,数值较大的数据才会写回闪存通道。图4中Isort指的是Indexsort,sort指的是排序,output buffer指的是闪存中的输出缓存,在IndexSort的归并阶段,SSD的闪存上存放6个有序中间结果,将有序中间结果称为run,每一个有序中间结果含有三个数据页,每个有序中间结果的数值是从小到大排序的,SSD内的输入缓存有6个数据页空间,根据索引表(page_min_index)的顺序,依次将前6个数据页读取到输入缓存中排序,这6个包含最小值的数据页可能来自同一个run,最小值排第七的数据页的最小值是25,那么在缓存中比25小的数值,都可以直接写回闪存,因为缓存中的数据比25小的数值,也是目前最小值的部分数据,所以可以批量写回。In a specific embodiment, as shown in FIG4 , a schematic diagram of the merge phase of IndexSort is provided. In FIG4 , in the traditional merge phase, a data page is read from each of the six intermediate results into the cache for merge comparison. When the data distribution is not particularly uniform, data pages with smaller values such as (2, 4, 12) and data pages with larger values (200, 400, 612) are read into the cache together, and the data with smaller values are first written back to the flash channel, and then the data with larger values are written back. The data pages with larger values (200, 400, 612) will remain in the cache and be merged and compared with the data with smaller values, occupying DRAM space until the merge phase reaches the end, and the data with larger values will be written back to the flash channel. In Figure 4, Isort refers to Indexsort, sort refers to sorting, and output buffer refers to the output cache in the flash memory. In the merging stage of IndexSort, 6 ordered intermediate results are stored in the flash memory of the SSD. The ordered intermediate results are called runs. Each ordered intermediate result contains three data pages. The values of each ordered intermediate result are sorted from small to large. The input cache in the SSD has 6 data page spaces. According to the order of the index table (page_min_index), the first 6 data pages are read into the input cache in turn and sorted. These 6 data pages containing the minimum values may come from the same run. The minimum value of the seventh data page with the minimum value is 25. Therefore, the values smaller than 25 in the cache can be directly written back to the flash memory. Because the data in the cache that are smaller than 25 are also part of the current minimum value data, they can be written back in batches.
在本实施例中,IndexSort算法可以在数据部分有序的情况下,解决数值大的数据页滞留内存的问题,提高DRAM资源利用率,同时低于阈值的数据可以批量写回闪存,而且读取数据时也不仅限制于读取一个数据页,这个阈值是指目前在索引表中,还没读进DRAM的数据页的最小值,IndexSort在归并中,把DRAM内低于阈值的多个数据页并发写回闪存,可腾出更多的缓存空间,用于从闪存中读取下一批数据页,这样有利于提高SSD的多通道资源利用率,提高读写多通道并发度。In this embodiment, the IndexSort algorithm can solve the problem of data pages with large values being retained in the memory when the data is partially ordered, thereby improving DRAM resource utilization. At the same time, data below the threshold can be written back to the flash memory in batches, and reading data is not limited to reading only one data page. This threshold refers to the minimum value of the data page that is currently in the index table and has not been read into the DRAM. During the merging process, IndexSort concurrently writes multiple data pages in the DRAM that are below the threshold back to the flash memory, freeing up more cache space for reading the next batch of data pages from the flash memory. This is conducive to improving the multi-channel resource utilization of the SSD and improving the multi-channel concurrency of reading and writing.
在一个实施例中,如图5所示,提供一种不同数据集大小对Isort和Baseline的性能影响示意图,Isort指的是Indexsort,Baseline指的是ActiveSort,RT表示读取时间,WT表示写回时间,Avg表示平均,纵坐标的时间指读写请求平均响应时间,读写请求平均响应时间这一指标可以很好衡量外排序算法在SSD内部执行归并过程中的响应时间,因为响应时间包括处理请求时间和等待时间,所以读写请求平均响应时间越短,说明该算法性能越高。数据量分别设置为100M、200M、400M、800M以及1GB,可以看到随着数据量的增大,两个算法的读写请求平均响应时间都增加,但在各种数据量下,IndexSort的性能都比Baseline(ActiveSort)更好。In one embodiment, as shown in FIG5 , a schematic diagram of the performance impact of different data set sizes on Isort and Baseline is provided. Isort refers to Indexsort, Baseline refers to ActiveSort, RT refers to read time, WT refers to write back time, Avg refers to average, and the time on the vertical axis refers to the average response time of read and write requests. The average response time of read and write requests can be a good indicator to measure the response time of the external sorting algorithm in the merging process inside the SSD. Because the response time includes the request processing time and the waiting time, the shorter the average response time of the read and write requests, the higher the performance of the algorithm. The data volume is set to 100M, 200M, 400M, 800M and 1GB respectively. It can be seen that as the data volume increases, the average response time of the read and write requests of the two algorithms increases, but under various data volumes, the performance of IndexSort is better than that of Baseline (ActiveSort).
在一个具体实施例中,如图6所示,提供一种不同DRAM大小对Isort和Baseline的性能影响示意图,Isort指的是Indexsort,Baseline指的是ActiveSort,RT表示读取时间,WT表示写回时间,Avg表示平均,SD内部DRAM容量有限,但是DRAM可以缓存部分读写请求,可以加快SSD内读写请求的处理时间,随着DRAM容量增加,两个算法的读写请求平均响应时延都减少,在不同的DRAM情况下,IndexSort的读写请求平均响应时间都比ActiveSort少,性能提升了接近36%。In a specific embodiment, as shown in FIG6 , a schematic diagram is provided of the performance impact of different DRAM sizes on Isort and Baseline, where Isort refers to Indexsort, Baseline refers to ActiveSort, RT represents read time, WT represents write back time, and Avg represents average. The internal DRAM capacity of the SD is limited, but the DRAM can cache some read and write requests, which can speed up the processing time of read and write requests in the SSD. As the DRAM capacity increases, the average response delay of the read and write requests of the two algorithms decreases. Under different DRAM conditions, the average response time of the read and write requests of IndexSort is less than that of ActiveSort, and the performance is improved by nearly 36%.
应该理解的是,虽然图1的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图1中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。It should be understood that, although the various steps in the flowchart of FIG. 1 are shown in sequence according to the indication of the arrows, these steps are not necessarily executed in sequence according to the order indicated by the arrows. Unless there is a clear explanation in this article, the execution of these steps is not strictly limited in order, and these steps can be executed in other orders. Moreover, at least a portion of the steps in FIG. 1 may include a plurality of sub-steps or a plurality of stages, and these sub-steps or stages are not necessarily executed at the same time, but can be executed at different times, and the execution order of these sub-steps or stages is not necessarily to be carried out in sequence, but can be executed in turn or alternately with other steps or at least a portion of the sub-steps or stages of other steps.
在一个实施例中,提供了一种SSD的外部排序装置,包括:有序中间结果生成模块702、索引表构建模块704和数据归并模块706,其中:In one embodiment, an external sorting device for an SSD is provided, comprising: an ordered intermediate result generating module 702, an index table building module 704 and a data merging module 706, wherein:
有序中间结果生成模块702,获取读取至内存中的小文件,对小文件排序,得到有序中间结果,将有序中间结果写回闪存中,小文件是对大文件数据进行切分得到的;The ordered intermediate result generation module 702 obtains the small files read into the memory, sorts the small files, obtains the ordered intermediate results, and writes the ordered intermediate results back to the flash memory. The small files are obtained by segmenting the large file data.
索引表构建模块704,用于根据有序中间结果中每个数据页的最小值和数据页在闪存上的位置信息,在SSD的内存中构建索引表;索引表中包含位置信息对应的索引信息;An index table building module 704 is used to build an index table in the memory of the SSD according to the minimum value of each data page in the ordered intermediate result and the location information of the data page on the flash memory; the index table contains index information corresponding to the location information;
数据归并模块706,用于在进行数据归并时,根据数据页的最小值对索引表排序,根据索引表的排序结果和索引信息进行数据归并,得到有序结果,将有序结果写回闪存。The data merging module 706 is used to sort the index table according to the minimum value of the data page when merging data, merge the data according to the sorting result of the index table and the index information, obtain the ordered result, and write the ordered result back to the flash memory.
在其中一个实施例中,有序中间结果生成模块702还用于将有序中间结果以数据页为基本单位交错分配到内存与闪存之间的各个闪存通道,通过闪存通道将有序中间结果写回闪存。In one embodiment, the ordered intermediate result generation module 702 is further used to distribute the ordered intermediate results to each flash memory channel between the memory and the flash memory in an interleaved manner with data pages as basic units, and write the ordered intermediate results back to the flash memory through the flash memory channel.
在其中一个实施例中,数据归并模块706还用于根据索引表的排序结果和索引信息依次读取数据页至SSD的输入缓存中;归并数据页,得到有序结果,记录下一待归并数据页的最小值,当输入缓存中的数据大小不超过最小值时,将有序结果批量写回闪存。In one of the embodiments, the data merging module 706 is also used to read data pages into the input cache of the SSD in sequence according to the sorting results and index information of the index table; merge the data pages to obtain ordered results, record the minimum value of the next data page to be merged, and when the data size in the input cache does not exceed the minimum value, write the ordered results back to the flash memory in batches.
在其中一个实施例中,还用于当有序区间的最大值小于另一有序区间的最小值时;合并两个有序区间,得到合并有序区间;根据合并有序区间的位置信息更新索引表。In one of the embodiments, it is also used to merge two ordered intervals to obtain a merged ordered interval when the maximum value of the ordered interval is less than the minimum value of another ordered interval; and update the index table according to the position information of the merged ordered interval.
在其中一个实施例中,还用于当输入缓存中的数据大小大于最小值时,将有序结果中包含最小数据的数据页写回闪存,读取下一待归并数据页到输入缓存,迭代归并输入缓存中的数据页。In one of the embodiments, when the data size in the input cache is greater than the minimum value, the data page containing the minimum data in the ordered result is written back to the flash memory, the next data page to be merged is read into the input cache, and the data pages in the input cache are iteratively merged.
在其中一个实施例中,还用于在闪存和输入缓存之间设置读闪存通道和写闪存通道。In one of the embodiments, a read flash channel and a write flash channel are also set between the flash memory and the input cache.
在其中一个实施例中,还用于读闪存通道处理数据归并的读请求,从读闪存通道中读取数据到输入缓存。In one of the embodiments, the read flash channel is also used to process a read request for data merging, and read data from the read flash channel to the input cache.
在其中一个实施例中,还用于写闪存通道处理数据归并的写回请求,将有序结果写回写闪存通道,通过写闪存通道将有序结果写回闪存。In one of the embodiments, the write flash channel is also used to process write-back requests for data merging, write the ordered results back to the write flash channel, and write the ordered results back to the flash memory through the write flash channel.
在其中一个实施例中,还用于有序中间结果的数据页数目等于SSD输入缓存可容纳的数据页数目。In one of the embodiments, the number of data pages used for the ordered intermediate results is equal to the number of data pages that can be accommodated by the SSD input buffer.
关于SSD的外部排序装置的具体限定可以参见上文中对于SSD的外部排序方法的限定,在此不再赘述。上述SSD的外部排序装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。For the specific definition of the external sorting device of the SSD, please refer to the definition of the external sorting method of the SSD above, which will not be repeated here. Each module in the above-mentioned external sorting device of the SSD can be implemented in whole or in part by software, hardware and a combination thereof. The above-mentioned modules can be embedded in or independent of the processor in the computer device in the form of hardware, or can be stored in the memory of the computer device in the form of software, so that the processor can call and execute the operations corresponding to the above modules.
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,该存储器存储有计算机程序,该处理器执行计算机程序时实现上述实施例中方法的步骤。In one embodiment, a computer device is provided, including a memory and a processor, wherein the memory stores a computer program, and the processor implements the steps of the method in the above embodiment when executing the computer program.
在一个实施例中,提供了一种SSD存储器,SSD存储器是执行上述实施例中SSD的外部排序方法的步骤得到的。In one embodiment, an SSD memory is provided, and the SSD memory is obtained by executing the steps of the SSD external sorting method in the above embodiment.
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所引用的SSD存储器这一非易失性存储器,可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。Those skilled in the art can understand that all or part of the processes in the above-mentioned embodiments can be implemented by instructing the relevant hardware through a computer program, and the computer program can be stored in a non-volatile computer-readable storage medium. When the computer program is executed, it can include the processes of the embodiments of the above-mentioned methods. Among them, the non-volatile memory of the SSD memory cited in the embodiments provided in this application can include a read-only memory (ROM), a programmable ROM (PROM), an electrically programmable ROM (EPROM), an electrically erasable programmable ROM (EEPROM) or a flash memory.
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。The technical features of the above embodiments may be arbitrarily combined. To make the description concise, not all possible combinations of the technical features in the above embodiments are described. However, as long as there is no contradiction in the combination of these technical features, they should be considered to be within the scope of this specification.
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。The above-mentioned embodiments only express several implementation methods of the present application, and the descriptions thereof are relatively specific and detailed, but they cannot be understood as limiting the scope of the invention patent. It should be pointed out that, for a person of ordinary skill in the art, several variations and improvements can be made without departing from the concept of the present application, and these all belong to the protection scope of the present application. Therefore, the protection scope of the patent of the present application shall be subject to the attached claims.
Claims (10)
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202210466201.5A CN114816322B (en) | 2022-04-29 | 2022-04-29 | SSD external ordering method, SSD external ordering device and SSD memory |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202210466201.5A CN114816322B (en) | 2022-04-29 | 2022-04-29 | SSD external ordering method, SSD external ordering device and SSD memory |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| CN114816322A CN114816322A (en) | 2022-07-29 |
| CN114816322B true CN114816322B (en) | 2024-08-27 |
Family
ID=82509764
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN202210466201.5A Active CN114816322B (en) | 2022-04-29 | 2022-04-29 | SSD external ordering method, SSD external ordering device and SSD memory |
Country Status (1)
| Country | Link |
|---|---|
| CN (1) | CN114816322B (en) |
Families Citing this family (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN116303140B (en) * | 2023-05-19 | 2023-08-29 | 珠海妙存科技有限公司 | Hardware-based sorting algorithm optimization method and device |
Family Cites Families (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US9715515B2 (en) * | 2014-01-31 | 2017-07-25 | Microsoft Technology Licensing, Llc | External data access with split index |
| CN110149803B (en) * | 2018-08-27 | 2023-06-09 | 深圳市锐明技术股份有限公司 | Data storage method, system and terminal equipment |
| US11126359B2 (en) * | 2018-12-07 | 2021-09-21 | Samsung Electronics Co., Ltd. | Partitioning graph data for large scale graph processing |
-
2022
- 2022-04-29 CN CN202210466201.5A patent/CN114816322B/en active Active
Also Published As
| Publication number | Publication date |
|---|---|
| CN114816322A (en) | 2022-07-29 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US11360705B2 (en) | Method and device for queuing and executing operation commands on a hard disk | |
| JP6343438B2 (en) | Computer system and data management method for computer system | |
| KR101811297B1 (en) | Memory controller controlling a nonvolatile memory | |
| CN105117351B (en) | To the method and device of buffering write data | |
| US9569381B2 (en) | Scheduler for memory | |
| CN111324303A (en) | SSD garbage recycling method and device, computer equipment and storage medium | |
| US20170003911A1 (en) | Information processing device | |
| CN111309267B (en) | Storage space allocation method and device, storage equipment and storage medium | |
| CN115576924B (en) | A method for data migration | |
| Lee et al. | ActiveSort: Efficient external sorting using active SSDs in the MapReduce framework | |
| WO2022199027A1 (en) | Random write method, electronic device and storage medium | |
| CN114816322B (en) | SSD external ordering method, SSD external ordering device and SSD memory | |
| WO2016187831A1 (en) | Method and device for accessing file, and storage system | |
| CN115079936A (en) | Data writing method and device | |
| WO2023160088A1 (en) | Method for processing blockchain transactions, and blockchain node and electronic device | |
| CN110825326A (en) | Method and device for improving SSD random reading performance, computer equipment and storage medium | |
| CN108334457B (en) | A kind of IO processing method and device | |
| US12386786B2 (en) | Data processing method and apparatus | |
| CN109213424B (en) | Lock-free processing method for concurrent IO command | |
| US11099739B2 (en) | System and method for accessing redundant array of independent disks | |
| CN116069255A (en) | Read operation execution method, device, electronic device and storage medium | |
| CN116501266B (en) | Message context processing method, device, computer equipment and storage medium | |
| TWI889222B (en) | Memory system and method of executing processes according to requests from host in memory system communicating with the host | |
| CN117762335B (en) | Writing method, device, equipment and storage medium for Ceph object | |
| CN120849443B (en) | A data aggregation optimization method, system, terminal, and storage medium based on partitioned data reordering. |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| PB01 | Publication | ||
| PB01 | Publication | ||
| SE01 | Entry into force of request for substantive examination | ||
| SE01 | Entry into force of request for substantive examination | ||
| GR01 | Patent grant | ||
| GR01 | Patent grant |