+

CN119885247B - Data query method, system, device, medium and program product - Google Patents

Data query method, system, device, medium and program product

Info

Publication number
CN119885247B
CN119885247B CN202510380650.1A CN202510380650A CN119885247B CN 119885247 B CN119885247 B CN 119885247B CN 202510380650 A CN202510380650 A CN 202510380650A CN 119885247 B CN119885247 B CN 119885247B
Authority
CN
China
Prior art keywords
data
query
programmable logic
logic device
data block
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
Application number
CN202510380650.1A
Other languages
Chinese (zh)
Other versions
CN119885247A (en
Inventor
孙忠祥
张闯
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Suzhou Metabrain Intelligent Technology Co Ltd
Original Assignee
Suzhou Metabrain Intelligent Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Suzhou Metabrain Intelligent Technology Co Ltd filed Critical Suzhou Metabrain Intelligent Technology Co Ltd
Priority to CN202510380650.1A priority Critical patent/CN119885247B/en
Publication of CN119885247A publication Critical patent/CN119885247A/en
Application granted granted Critical
Publication of CN119885247B publication Critical patent/CN119885247B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/28Handling requests for interconnection or transfer for access to input/output bus using burst mode transfer, e.g. direct memory access DMA, cycle steal
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/76Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information in application-specific integrated circuits [ASIC] or field-programmable devices, e.g. field-programmable gate arrays [FPGA] or programmable logic devices [PLD]
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Mathematical Physics (AREA)
  • Computational Linguistics (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Storage Device Security (AREA)

Abstract

The invention relates to the technical field of data processing and discloses a data query method, a system, equipment, a medium and a program product, wherein the method comprises the steps of responding to a data query request initiated by a user, and determining target data to be queried; the target data is data obtained after encryption processing, the target data is obtained from the data storage device, the target data is sent to the programmable logic device, the programmable logic device is instructed to sequentially decrypt and query the target data to obtain corresponding query results, the programmable logic device comprises a data encryption and decryption core for decrypting and a data query core for querying, the query results are obtained from the programmable logic device, and the query results are returned to the user side. The invention completes the hardware encryption and decryption task and the hardware inquiry task by the programmable logic device, and the host only needs to schedule, thereby greatly reducing the resource consumption of the host processor and realizing safe and efficient data inquiry.

Description

Data query method, system, device, medium and program product
Technical Field
The present invention relates to the field of data processing technologies, and in particular, to a data query method, system, device, medium, and program product.
Background
In order to ensure the safety of the data in the database of the data center and the like, the data can be generally encrypted and stored, and the data is decrypted and queried when the user queries the data, thereby completing the query task of the user. Traditional data encryption and decryption technology and accelerated query technology are generally implemented based on software. Since the software encryption and decryption and the software acceleration query need to be executed by the CPU (Central Processing Unit ), a large amount of CPU resources are occupied, especially when large-scale data is processed. Excessive consumption of CPU resources can affect the performance of other application programs, so that the overall efficiency of the system is reduced, the efficiency of software encryption and decryption and query acceleration is generally low, and the query efficiency is affected.
Disclosure of Invention
In view of the above, the present invention provides a data query method, system, device, medium and program product to solve the problem of low database query efficiency.
In a first aspect, the present invention provides a data query method, applied to a host, including:
Determining target data to be queried in response to a data query request initiated by a user, wherein the target data is data obtained after encryption processing;
Acquiring the target data from a data storage device, transmitting the target data to the programmable logic device, and instructing the programmable logic device to sequentially perform decryption processing and query processing on the target data to obtain a corresponding query result;
And acquiring the query result from the programmable logic device and returning the query result to the user side.
The invention provides a data query system, which comprises a host, data storage equipment and a programmable logic device, wherein the programmable logic device comprises a data encryption and decryption core and a data query core;
The host is connected to the data storage device and the programmable logic device, and the host is configured to execute the data query method of the first aspect or any implementation manner corresponding to the first aspect.
In a third aspect, the present invention provides a computer device, including a memory and a processor, where the memory and the processor are communicatively connected to each other, and the memory stores computer instructions, and the processor executes the computer instructions, thereby executing the data query method according to the first aspect or any implementation manner corresponding to the first aspect.
In a fourth aspect, the present invention provides a computer readable storage medium having stored thereon computer instructions for causing a computer to perform the data query method of the first aspect or any of its corresponding embodiments.
In a fifth aspect, the present invention provides a computer program product comprising computer instructions for causing a computer to perform the data querying method of the first aspect or any of its corresponding embodiments.
The host computer is configured with a programmable logic device capable of realizing hardware encryption and decryption and hardware inquiry to form a heterogeneous acceleration computing system, and sends corresponding target data to the programmable logic device according to a data inquiry request initiated by a user, so that the target data can be sequentially decrypted and inquired by utilizing a data encryption and decryption core and a data inquiry core of the programmable logic device, and inquiry of the encrypted target data is realized. The method comprises the steps of realizing the scheduling of the programmable logic device by utilizing a software stack of the host, successively completing the operations of data writing, decryption, inquiry and the like, and rapidly completing the data inquiry task in a software-hardware combined mode, wherein the programmable logic device is used for completing the hardware encryption and decryption task and the hardware inquiry task, and the host only needs to schedule, thereby greatly reducing the resource consumption of a host processor and realizing safe and efficient data inquiry.
Drawings
In order to more clearly illustrate the embodiments of the present invention or the technical solutions in the related art, the drawings that are required to be used in the description of the embodiments or the related art will be briefly described, and it is apparent that the drawings in the description below are some embodiments of the present invention, and other drawings may be obtained according to the drawings without inventive effort for those skilled in the art.
FIG. 1 is a schematic diagram of a data query system according to an embodiment of the present invention;
FIG. 2 is a schematic diagram of a process of data handling according to an embodiment of the invention;
FIG. 3 is a flow chart of a data query method according to an embodiment of the invention;
FIG. 4 is a flow chart of another data query method according to an embodiment of the present invention;
FIG. 5 is a schematic diagram of a process for encrypting data according to an embodiment of the present invention;
FIG. 6 is a schematic diagram of a host in combination with a programmable logic device implementing software and hardware in accordance with an embodiment of the invention;
FIG. 7 is a schematic diagram of a data query based on five-level processing streams in accordance with an embodiment of the invention;
FIG. 8 is a schematic diagram of serial scheduling according to an embodiment of the invention;
FIG. 9 is a schematic diagram of five-stage processing flow based parallel scheduling in accordance with an embodiment of the present invention;
FIG. 10 is a schematic overall flow chart of a data query method according to an embodiment of the invention;
FIG. 11 is a schematic diagram of another architecture of a data query system according to an embodiment of the present invention;
FIG. 12 is a block diagram of a data query device according to an embodiment of the present invention;
fig. 13 is a schematic diagram of a hardware structure of a computer device according to an embodiment of the present invention.
Detailed Description
For the purpose of making the objects, technical solutions and advantages of the embodiments of the present invention more apparent, the technical solutions of the embodiments of the present invention will be clearly and completely described below with reference to the accompanying drawings in the embodiments of the present invention, and it is apparent that the described embodiments are some embodiments of the present invention, but not all embodiments of the present invention. All other embodiments, which can be made by those skilled in the art based on the embodiments of the invention without making any inventive effort, are intended to be within the scope of the invention.
For the convenience of understanding, the description will be given first of all to the portions involved in the embodiments of the present invention.
Heterogeneous computing refers to computing resources that utilize a variety of different architectures, processors, or accelerators, combined together to achieve higher performance, higher efficiency computing. This approach may improve overall system performance by assigning tasks to the devices that are most suitable for executing them. Heterogeneous computing typically involves integrating different types of processors, such as CPUs, GPUs (Graphics Processing Unit, graphics processors), FPGAs (Field Programmable GATE ARRAY, field programmable gate arrays), etc., to achieve acceleration and optimization of various applications.
Database a Database refers to a repository that organizes, stores and manages data according to a certain structure. It is not only a simple collection of files, but also a complex set of systems that allow users to insert, query, update, and delete data efficiently. The design of the database is intended to ensure the security, integrity and consistency of the data.
Encryption and decryption refers to the process of protecting or hiding data by using cryptography technology. Encryption is the conversion of raw data into data that has been processed by a specific algorithm, making it difficult to understand or interpret when unauthorized access occurs. Decryption is the restoration of the encrypted data to its original form. Encryption and decryption is commonly used to ensure confidentiality, integrity, and authentication of data to prevent unauthorized access and modification. The technology is widely applied to the field of information security, such as data transmission, storage, communication and the like.
With the advent of the big data age, the security requirement of data is increasing, massive data is growing in large quantity, and in order to protect the security of data, a data encryption technology is also indispensable, and in order to improve the efficiency and speed of querying massive data, a heterogeneous acceleration query technology of a database located in a data center is also receiving more and more attention in the industry.
For the security of data and the data acceleration query technology, the conventional technology can adopt a software method to encrypt and decrypt the data and perform the software acceleration query, but the conventional software encryption and decryption and software acceleration database query method has a plurality of adverse factors in a computer system of a data center, both the software encryption and decryption and the software acceleration database query belong to the category of the software acceleration technology, and finally, the software acceleration technology is executed by a CPU (Central processing Unit), so that a large amount of CPU computing resources in a server are consumed, other software programs in the system are influenced, and in addition, the efficiency of the software acceleration technology is generally lower, and the acceleration effect is poorer.
The traditional database acceleration inquiry and encryption and decryption are usually realized at a software level, and the method mainly has the following problems that 1) the processing speed is low, the software-realized database acceleration inquiry and encryption depend on the processing capacity of a CPU, and the processing speed is low due to the performance bottleneck of the CPU for large-scale data processing. 2) The CPU computing resource consumption is large, the software implementation needs to occupy a large amount of CPU computing resource and memory resource, and particularly under the multitasking environment, the resource competition easily causes performance degradation and influences the query efficiency.
In order to solve the above problem, a hardware acceleration technology may be introduced into the database system, so as to implement data encryption and decryption or accelerate query at the hardware level. The existing hardware solution mainly comprises the following steps of firstly, hardware encryption and decryption, and has the advantages of high processing speed and high safety, and the defect of only paying attention to encryption and decryption and not solving the problem of data query aiming at a database. 2. The hardware realizes the database acceleration query technology, has the advantages of high query processing speed, and has the defect of only focusing on the acceleration query of the database and not solving the data security problem.
These hardware techniques solve some of the problems of querying data to some extent, but they cannot meet the requirements of high security and high query efficiency at the same time. The method realizes the inquiry acceleration and encryption and decryption calculation on the hardware level at the same time, and becomes a problem to be solved urgently.
The data query method provided by the embodiment of the invention is used for configuring the programmable logic device capable of realizing hardware encryption and decryption and hardware query for the host of the server to construct a heterogeneous acceleration computing system, and the software stack of the host is used for realizing the query scheduling of the programmable logic device, and the data query task is rapidly completed in a software-hardware combination mode, and the programmable logic device is used for completing the encryption and decryption tasks and the query tasks, so that the resource consumption of a host processor is greatly reduced, and the safe and efficient data query can be realized.
FIG. 1 illustrates a schematic diagram of a data query system that may implement heterogeneous acceleration operations. As shown in FIG. 1, the data query system includes a host, a data storage device, and a programmable logic device. The host is connected with the data storage device and the programmable logic device. In addition, the host can execute the data query method provided by the embodiment so as to realize the software and hardware collaborative query.
In this embodiment, as shown in fig. 1, the host is a host of a server, which may be, for example, an x86 architecture system. The host may be coupled to the data storage device via a PCIe (PERIPHERAL COMPONENT INTERCONNECT EXPRESS, a high speed serial computer expansion bus standard) bus, allowing data transfer between the host and the data storage device. The data storage device may be a device with a storage function, such as a disk, and specifically stores data in a database.
And the host is connected with the programmable logic device through the PCIe bus to realize data transmission between the host and the programmable logic device. The programmable logic device may be, for example, an FPGA, a CPLD (Complex Programmable Logic Device, a complex programmable logic device), or the like.
In this embodiment, the programmable logic device includes a data encryption and decryption core and a data query core. The data encryption and decryption core is an IP (Intellectual Property ) core capable of realizing data encryption and data decryption, and the data query core is an IP core capable of realizing a data query function. It can be understood that the IP core in the programmable logic device such as FPGA is essentially a logic circuit, that is, the data encryption and decryption core and the data query core are both hardware logic circuits for implementing corresponding functions, so that tasks such as data encryption and decryption, data query, etc. can be completed based on hardware acceleration technology.
Optionally, in order to improve the data reading and writing efficiency, the data reading and writing is realized between the host and the data storage device, and between the host and the programmable logic device in a DMA (Direct Memory Access ) mode. As shown in fig. 1, the data storage device and the programmable logic device are provided with corresponding direct memory access engines, namely, DMA engines, which are respectively referred to as a first direct memory access engine and a second direct memory access engine, namely, a first DMA engine and a second DMA engine, for convenience of description.
The first DMA engine is used for realizing DMA reading and writing of the data storage device, and the second DMA engine is used for realizing DMA reading and writing of the device memory in the programmable logic device.
In this embodiment, the data of the database is stored in the data storage device, the data in the data storage device is sent to the host memory through the mode of reading by the first DMA engine (in fig. 1, the blocks in the host memory represent the data blocks to be handled), and then the host transmits the data to the device memory of the programmable logic device through the mode of writing by the second DMA engine. Similarly, the programmable logic device may also transfer the calculated data to the host memory on the host side in the read mode of the second DMA engine, and transfer the data to the data storage device in the write mode of the second DMA engine. The process of data handling is shown with reference to fig. 2.
In this embodiment, a data query method is provided, which can be applied to the above-mentioned host, for example, a processor (CPU) of the host. Fig. 3 is a flowchart of a data query method according to an embodiment of the present invention, as shown in fig. 3, the flowchart including the following steps.
Step S301, determining target data to be queried in response to a data query request initiated by a user, wherein the target data is data obtained after encryption processing.
In this embodiment, in order to ensure the security of data, the data stored in the database is encrypted data, that is, data that is encrypted when the data is stored in the data storage device (such as a disk).
When a user needs to query certain information in the database, a request for querying the database, namely, a data query request can be initiated, wherein the data query request can comprise a query object, a query condition and the like, the query object is used for representing data related to a query operation, namely, data to be queried, and the data to be queried is called target data for convenience of description, namely, the data required by the user needs to be queried from the target data.
For example, the data query request may include a table ID for specifying the query, and the data table corresponding to the table ID may be set as the target data. The target data is also encrypted data, i.e. the target data needs to be decrypted before the data query operation is executed, because the target data is stored in the data storage device.
Step S302, target data are acquired from the data storage device, the target data are sent to the programmable logic device, the programmable logic device is instructed to sequentially perform decryption processing and query processing on the target data, and corresponding query results are obtained, wherein the programmable logic device comprises a data encryption and decryption core for performing decryption processing and a data query core for performing query processing.
In this embodiment, for the target data that the user needs to query, the host may acquire the target data from the data storage device, and then send the target data to the programmable logic device. As described above, since the target data is encrypted, the programmable logic device needs to decrypt and then query.
As described above, the programmable logic device includes the data encryption/decryption core and the data query core, so that the two IP cores (i.e., the data encryption/decryption core and the data query core) can cooperate with each other efficiently, and the host controls the workflow of the programmable logic device. After the target data is sent to the programmable logic device, the host instructs the programmable logic device to sequentially perform decryption processing and query processing on the target data.
Specifically, the host may initiate a request for decrypting the target data to the programmable logic device, so that the programmable logic device performs decryption processing on the target data based on the data encryption and decryption check, to obtain decrypted data corresponding to the target data, where the decrypted data is plaintext corresponding to the target data. And then, the host initiates a request for inquiring the target data to the programmable logic device, so that the programmable logic device inquires the decrypted data corresponding to the target data based on the data inquiry core, and finally inquires to obtain an inquiry result corresponding to the target data.
Step S303, obtaining the query result from the programmable logic device and returning the query result to the user side.
In this embodiment, after hardware decryption and hardware query are completed by using the programmable logic device, a query result of the target data may be obtained, where the query result is located on the programmable logic device side, so that the host may obtain the query result from the programmable logic device. For example, the host may actively obtain the query result, or the programmable logic device may actively send the query result to the host after obtaining the query result, which is not limited in this embodiment.
After obtaining the query result of the target data, the host computer can return the query result to the user side for the user to check. For example, the user may initiate a data query request based on the client, and the host may return a corresponding query result to the client such that the interface of the client may display the query result to the user.
The host computer is configured with a programmable logic device capable of realizing hardware encryption and decryption and hardware inquiry to form a heterogeneous acceleration computing system, and the host computer sends corresponding target data to the programmable logic device according to a data inquiry request initiated by a user, so that the target data can be sequentially decrypted and inquired by utilizing a data encryption and decryption core and a data inquiry core of the programmable logic device, and inquiry of the encrypted target data is realized. The method comprises the steps of realizing the scheduling of the programmable logic device by utilizing a software stack of the host, successively completing the operations of data writing, decryption, inquiry and the like, and rapidly completing the data inquiry task in a software-hardware combined mode, wherein the programmable logic device is used for completing the hardware encryption and decryption task and the hardware inquiry task, and the host only needs to schedule, thereby greatly reducing the resource consumption of a host processor and realizing safe and efficient data inquiry.
In this embodiment, a data query method is provided, which can be applied to the above-mentioned host, for example, a processor of the host. Fig. 4 is a flowchart of a data query method according to an embodiment of the present invention, as shown in fig. 4, the flowchart including the following steps.
In step S401, in response to a data query request initiated by a user, target data to be queried is determined, where the target data is data obtained after encryption processing.
Please refer to step S301 in the embodiment shown in fig. 3 in detail, which is not described herein.
In some alternative embodiments, before the step S401, it is further necessary to add corresponding data to the database, and the data is encrypted. Specifically, the method further includes the following steps A1 to A3.
And step A1, acquiring original data to be stored.
And step A2, encrypting the original data to generate corresponding encrypted data.
Specifically, the above step A2 may include the following steps a21 to a22.
Step a21, the raw data is sent to the programmable logic device.
And step A22, initiating an encryption request to the programmable logic device to instruct the programmable logic device to encrypt the original data based on the data encryption and decryption check to obtain corresponding encrypted data, and returning the encrypted data to the host.
And step A3, storing the encrypted data to a data storage device.
In this embodiment, at the initial stage of creating the database or when new data needs to be added to the database later, the original data needs to be encrypted and then written into a data storage device such as a disk.
Specifically, for the original data to be stored in the data storage device, the host sends the original data to the programmable logic device, and further initiates an encryption request to the programmable logic device, so that the programmable logic device can encrypt the original data based on the data encryption and decryption core to obtain ciphertext corresponding to the original data, namely encrypted data. And the host acquires the encrypted data from the programmable logic device and finally stores the encrypted data to the data storage device.
The data transmission between the host and the programmable logic device can be realized based on DMA. Fig. 5 shows a schematic diagram of a process of encrypting data, as shown in fig. 5, the process including steps S501 to S504.
In step S501, the host writes the original data to the device memory of the programmable logic device in the second DMA engine write mode.
In step S502, the programmable logic device performs encryption operation on the original data by using the data encryption and decryption core, so as to obtain encrypted data, and stores the encrypted data into the local device memory.
In step S503, the encrypted data is written into the host memory in the second DMA engine read mode.
In step S504, the host transfers the encrypted data from the host memory to the data storage device in a first DMA engine write mode.
It will be appreciated that when storing data, the data (the original data described above) is required to be encrypted to ensure the security of the data, and that the data does not need to be encrypted during subsequent queries.
In the embodiment, the data encryption and decryption core of the programmable logic device is utilized to encrypt the data, and the host only needs to schedule the programmable logic device to work, so that the host does not need to run an encryption algorithm at a software layer, and the host processing resources are prevented from being occupied.
In step S402, the target data is divided into a plurality of data blocks.
In order to improve the query efficiency and reduce the requirement on the equipment memory of the programmable logic device, in the embodiment, the target data to be queried is divided into a plurality of data blocks, so that query operations can be respectively executed for each data block, and finally the query result of the whole target data is obtained.
Wherein, the target data can be divided into N data blocks, and N is more than or equal to 2. The number of data blocks N may be based on the actual situation. For example, the size of the data block may be determined based on the processing power of the programmable logic device, the size of the device memory space, etc., and the specific value of N may be determined based on the amount of data of the target data.
Step S403, obtaining target data from the data storage device, sending the target data to the programmable logic device, and instructing the programmable logic device to sequentially perform decryption processing and query processing on the target data to obtain a corresponding query result, wherein the programmable logic device comprises a data encryption and decryption core for performing decryption processing and a data query core for performing query processing.
Specifically, as shown in fig. 4, the step S403 "acquire target data from the data storage device, send the target data to the programmable logic device, and instruct the programmable logic device to sequentially perform decryption processing and inquiry processing on the target data" includes steps S4031 to S4032.
Step S4031, the data block is acquired from the data storage device in units of data blocks, and the data block is sent to the programmable logic device.
In this embodiment, when the host acquires the target data, the host acquires the target data in units of data blocks, that is, the host acquires the data blocks from the data storage device, and after acquiring the data blocks, the host sends the data blocks to the programmable logic device. For other data blocks, the processing is also performed in the same manner until all of the data blocks (i.e., the entire target data) are sent to the programmable logic device.
In some alternative embodiments, step S4031 "obtain a data block from the data storage device and send the data block to the programmable logic device" includes steps B1 to B2.
Step B1, for a target data block of the plurality of data blocks, acquiring the target data block from the data storage device after acquiring the last data block from the data storage device.
And step B2, after the target data block is acquired, the target data block is sent to the programmable logic device until a plurality of data blocks are sent to the programmable logic device.
In this embodiment, in the process of reading and writing target data in the data storage device to the programmable logic device by the host, since the target data is divided into a plurality of data blocks, and the read-write operation of each data block includes at least two steps of a read operation and a write operation, it is unnecessary to wait for writing one data block to the programmable logic device, and then perform the read-write operation on the next data block.
Specifically, if the plurality of data blocks are sequentially the data blocks A, B, C, the host obtains the data block a (the last data block, that is, the last data block of the target data block) immediately, and then obtains the data block B (the target data block) from the data storage device, at this time, the host simultaneously sends the data block a to the programmable logic device, and then sends the data block B to the programmable logic device, and at the same time, the host obtains the next data block C from the data storage device, and so on, thereby completing the read-write operation of the target data more efficiently, and being beneficial to improving the query efficiency.
In this embodiment, after the host acquires the previous data block, the host directly acquires the next target data block again from the data storage device, so that the read data block and the write data block can run in parallel, the time consumption for reading and writing the whole target data is effectively reduced, and the efficiency of query operation can be improved.
Optionally, the step B1 "acquire the target data block from the data storage device" may specifically include the following step B11.
Step B11, initiating a data reading request to the data storage device according to the first address information of the target data block in the data storage device, wherein the data reading request is used for indicating a first direct memory access engine of the data storage device to read the target data block according to the first address information and writing the target data block into a host memory of a host;
also, the above step B2 "send the target data block to the programmable logic device" may specifically include the following step B21.
And step B21, according to the second address information of the target data block in the host memory and the third address information designated in the equipment memory of the programmable logic device for storing the target data block, initiating a data writing request to the programmable logic device, wherein the data writing request is used for indicating a second direct memory access engine of the programmable logic device to read the target data block according to the second address information and writing the target data block into a memory space corresponding to the third address information in the equipment memory.
In this embodiment, the host computer uses a DMA method to implement reading and writing of each data block. Specifically, after the host determines the target data and blocks the target data, the host may determine relevant information of each data block, where the information includes a size of the data block, a location of the target data in the data storage device, an address offset of each data block, and the like, and based on the information, a storage address of each data block in the data storage device may be determined.
Taking one of the target data blocks as an example, for the target data block, information about the storage address of the target data block in the data storage device, i.e. first address information (which may also be referred to as source address), may be determined. The host may initiate a data read request (DMA read) to the data storage device based on the first address information, and after the first DMA engine of the data storage device obtains the data read request, the target data block may be obtained based on the first address information, so that the target data block is directly written into the memory of the host, that is, the host memory. The data read request may also include a destination address, where the destination address indicates which memory space of the host memory the target data block needs to be written to.
After the data storage device writes the target data block to host memory, an interrupt may be initiated to the host to indicate that the write operation is complete. After the host acquires the target data block, the second address information of the target data block in the host memory can be determined, wherein the second address information is the host memory address of the target data block written into by the first DMA engine, and the host designates which memory spaces in the equipment memory of the programmable logic device store the target data block, namely, the host designates the address information of the target data block in the equipment memory, namely, the third address information, so as to initiate a corresponding data writing request to the programmable logic device. In the data write request, the second address information indicates a source address, and the third address information indicates a destination address.
After the programmable logic device receives the data writing request, the second DMA engine can move the data in the source address to the destination address corresponding to the internal memory of the device based on the source address and the destination address in the data writing request, so that the target data block can be written into the internal memory space corresponding to the third address information in the internal memory of the device, and the writing operation of the target data block is completed.
Similar to the first DMA engine, after the second DMA engine completes the write operation of the target data block, another interrupt may also be initiated to the host, so that the host may continue to perform the subsequent scheduling process, i.e., the host may perform the subsequent step S4032 and so on.
In this embodiment, the host schedules the two DMA engines, so that unified management of the data read-write process can be achieved, seamless connection between read-write operations of each data block is facilitated, that is, after one data block is read, the next data block is read immediately, and query efficiency is guaranteed.
Step S4032, instruct the programmable logic device to sequentially perform decryption processing and query processing on the data blocks until each data block is traversed.
In this embodiment, for each data block, after writing the data block into the device memory, the host may initiate a corresponding decryption request and a corresponding query request to the programmable logic device, so that the programmable logic device may complete the hardware decryption and the hardware query task by using its own IP core, and obtain the query result of each data block.
In some alternative embodiments, the step S4032 "indicates that the programmable logic device sequentially performs the decryption process and the query process on the data block" may specifically include the following steps C1 to C2.
And step C1, for a target data block in the plurality of data blocks, after the target data block is sent to the programmable logic device, initiating a decryption request corresponding to the target data block to the programmable logic device, wherein the decryption request is used for indicating the programmable logic device to perform decryption processing on the target data block based on data encryption and decryption check to obtain decryption sub-data corresponding to the target data block.
And step C2, after the programmable logic device finishes the decryption processing of the target data block, initiating a query request corresponding to the target data block to the programmable logic device, wherein the query request is used for indicating the programmable logic device to perform query processing on decryption sub-data corresponding to the target data block based on data query check, so as to obtain a query sub-result of the target data block, and the query result comprises the query sub-result.
In this embodiment, after the host sends the target data block to the programmable logic device, the programmable logic device may initiate a decryption request corresponding to the target data block to the programmable logic device, and based on the decryption request, the programmable logic device may utilize its own data encryption and decryption to check the target data block to perform decryption processing, so as to obtain a decryption result corresponding to the target data block, that is, decrypted sub-data.
After the programmable logic device finishes the decryption processing of the target data block, a corresponding interrupt can be initiated to the host, which indicates that the decryption processing is finished, and the host can initiate a query request corresponding to the target data block to the programmable logic device again, so that the programmable logic device can continuously utilize the data query core of the programmable logic device to query the decryption sub-data obtained in the last step, and finally, the query sub-result of the target data block is determined.
It will be appreciated that the query sub-results are only a portion of the query results for the entire target data, i.e., the query results include the query sub-results.
The programmable logic device may send the empty query sub-result to the host, or send a notification message to the host, where the notification message indicates that the query sub-result is empty, so that the host may determine that the query sub-result of the target data block is empty.
In this embodiment, the host may simply and conveniently implement scheduling of the IP core in the programmable logic device by initiating a corresponding decryption request and an inquiry request to the programmable logic device. After the target data block is written, a decryption request and a query request can be sequentially initiated, so that the operations such as data writing and the like can be synchronously executed when the programmable logic device executes hardware decryption and hardware query, and the query efficiency can be further improved.
For example, if the plurality of data blocks are sequentially the data blocks A, B, C, after writing the data block a into the device memory of the programmable logic device, the data encryption and decryption core may perform decryption processing on the data block a, and simultaneously may also write the data block B into the device memory synchronously, after completing the decryption processing of the data block a, the data query core may perform query processing on the decrypted sub-data of the data block a, and simultaneously, the data encryption and decryption core may perform decryption processing on the next data block B, and may also write the data block C into the device memory synchronously, and so on, to implement parallel processing of operations such as data reading, data writing, decryption, query, and so on, so as to effectively ensure the overall efficiency of data query.
The method comprises the steps of receiving a data query request, wherein the data query request comprises a data query core, a data decryption sub-data and a data decryption sub-result, wherein the data query core is used for receiving the data decryption sub-data, and the data decryption sub-data is used for decrypting the data decryption sub-data.
In this embodiment, for a query statement corresponding to a data query request, for example, an SQL query statement, the query statement is converted into a code stream that can be identified by a programmable logic device, that is, a query code stream, and the query code stream is sent to the programmable logic device, so that the programmable logic device can execute a corresponding query operation based on the query code stream. Specifically, the data query core of the programmable logic device can load the query code stream, so that the decryption sub-data can be queried according to the user requirement to obtain the query sub-result required by the user.
Optionally, the programmable logic device is provided with registers required for inquiry, and the host computer can cooperate with the programmable logic device to finish operations such as hardware decryption, hardware inquiry and the like by adaptively configuring each register.
In this embodiment, the programmable logic device is provided with a data source address register, where the data source address register is used to record a data source address, and the data source address is a memory address corresponding to data to be decrypted stored in the device memory.
The data write request initiated by the host comprises a first configuration instruction, wherein the first configuration instruction is used for configuring a data source address register of the programmable logic device into a first memory address, and the first memory address is a memory address corresponding to a memory space in which a target data block is written in a device memory.
Similarly, the programmable logic device may be further provided with a result address register for recording a memory address of the query sub-result after the query processing in the device memory. The query request initiated by the host includes a second configuration instruction, where the second configuration instruction is used to configure a result address register of the programmable logic device to a second memory address, and the second memory address is a memory address corresponding to a memory space in the device memory where the query sub-result is written.
FIG. 6 shows a schematic diagram of a host implementing a combination of hardware and software with a programmable logic device. After the target data is partitioned, as shown in fig. 6, the host initiates a data read request (abbreviated as a read request in fig. 6) to the data storage device for the target data block, thereby writing the target data block to the host memory, and then the host initiates a data write request (abbreviated as a write request in fig. 6) to the programmable logic device, thereby writing the target data block to a certain memory space of the device memory, i.e., the first memory.
And the first memory is provided with a corresponding address, namely a first memory address, in the equipment memory, a data write request initiated by the host also configures a data source address register of the programmable logic device, and the data source address register is configured as a first memory address, namely the information recorded by the data source address register is the first memory address. When the subsequent host initiates a decryption request to the programmable logic device, the data encryption and decryption core can determine the memory address for storing the target data block, namely the first memory address, by reading the data source address register, further reads the target data block from the first memory address of the equipment memory, and performs decryption processing on the target data block.
It can be understood that, if the data write request includes the third address information, the memory space corresponding to the third address information is the first memory of the device memory, and the memory address corresponding to the third address information is the data source address.
As shown in fig. 6, after the data encryption and decryption core completes the decryption process, the decryption sub-data of the target data block may be determined, and the decryption sub-data may be temporarily stored in the intermediate memory of the device memory. And the host computer further initiates a query request, so that the data query core obtains decryption sub-data from the intermediate memory, and performs query processing on the decryption sub-data to obtain a corresponding query sub-result.
The host specifies a storage position of the query sub-result in the equipment memory, and the host specifies to store the query sub-result in a second memory of the equipment memory, so that the query request initiated by the host also comprises a second memory address, and the result address register of the programmable logic device is configured as the second memory address; after the data query core obtains the query sub-result, the result address register can be read, and the second memory address is determined, so that the query sub-result is stored in the memory space corresponding to the second memory address, namely, the second memory. When the subsequent host acquires the query sub-result, the data in the second memory can be returned to the host.
In addition, the programmable logic device may be further provided with a code stream address register for recording and storing the address of the query code stream, which is generally a memory address of the device memory. When the data query core executes query processing, the code stream address register is read first to acquire the address for storing the query code stream, so that the corresponding query code stream can be read, and the data query operation is completed.
In this embodiment, not only data transmission is implemented between the host and the programmable logic device, but also the programmable logic device is further provided with a plurality of registers such as a code stream address register, a result address register, and the like, and the corresponding registers are configured when the host initiates a request, so that an IP core of the programmable logic device completes corresponding data decryption and inquiry operations by reading the corresponding registers, and the host and the programmable logic device cooperate together to ensure efficient data transmission between the host and the programmable logic device, and safely and efficiently complete operations such as decryption, inquiry, and the like required by a user.
Step S404, obtaining the query result from the programmable logic device and returning the query result to the user side.
Please refer to step S303 in the embodiment shown in fig. 3 in detail, which is not described herein.
In some alternative embodiments, the step S404 of "obtaining the query result from the programmable logic device" may specifically include, for a target data block in the plurality of data blocks, after the programmable logic device obtains the query sub-result of the target data block, initiating, to the programmable logic device, an obtaining request for obtaining the query sub-result, where the obtaining request is used to instruct a second direct memory access engine of the programmable logic device to write the query sub-result to a host memory of the host.
In this embodiment, the host actively obtains the query sub-results of each data block, simplifying the processing function of the programmable logic device, and the whole process is performed on the programmable logic device by the host, so that efficient coordination of software and hardware can be realized.
The process of the second DMA engine of the programmable logic device moving the query sub-result from the device memory (e.g., the second memory) to the host memory is similar to the process of the host acquiring the target data block from the data storage device, and will not be described herein.
Optionally, the kernel layer of the host is provided with a read scheduling function, a write scheduling function, a decryption scheduling function, a query scheduling function and a result processing function.
The read scheduling function is used for initiating a data read request to the data storage device to acquire a target data block, wherein the target data block is one of a plurality of data blocks.
The write scheduling function is used to initiate a data write request to the programmable logic device to write the target data block.
The decryption scheduling function is used for initiating a decryption request for carrying out decryption processing on the target data block to the programmable logic device so as to obtain decryption sub-data corresponding to the target data block.
The query scheduling function is used for initiating a query request for carrying out query processing on the decryption sub-data corresponding to the target data block to the programmable logic device so as to obtain a query sub-result of the target data block.
The result processing function is used for initiating an acquisition request for acquiring the query sub-result to the programmable logic device.
In this embodiment, an operating system (for example, linux operating system) running on a host is divided into a user layer and a kernel layer, and at an application layer, a user may initiate query operations on a data file, where the operations include data encryption, data decryption, data query, and the like. At the kernel layer, the memory resources of the host are managed and allocated through a memory management mechanism, and further requests such as DMA data transmission and the like are sent out. The scheduling functions for realizing the requests are all realized in a kernel mode, so that system call and process switching between the kernel mode and a user mode can be reduced.
Specifically, after a user initiates a data query request of a database, the data query request enters a kernel layer through system call, and after the kernel layer receives the data query request, the kernel layer can block target data to be queried, and further, each data block is subjected to subsequent processing in the kernel layer (kernel state).
And for the target data block, the host generates a corresponding data read request based on the read scheduling function in the kernel layer and sends the corresponding data read request to the data storage device, so that the target data block in the data storage device is acquired. And then, calling a write scheduling function, generating a corresponding data write request, and sending the data write request to the programmable logic device, so that target data is written into the equipment memory of the programmable logic device. And then the decryption scheduling function is called to generate a decryption request, and the decryption request is sent to the programmable logic device so as to realize hardware decryption by utilizing the data encryption and decryption core of the programmable logic device, thereby obtaining decryption sub-data. And then the query scheduling function is called to generate a query request, and the query request is sent to the programmable logic device so as to realize hardware query by utilizing a data query core of the programmable logic device and obtain a query sub-result. And finally, calling a result processing function to generate an acquisition request, and acquiring the query sub-result from the programmable logic device.
Optionally, the method further comprises storing the query result in a cache of the host, and in case another data query request for querying the target data is later acquired, acquiring and returning the query result from the cache.
In this embodiment, after the host obtains the query result, the query result is temporarily stored in the cache of the host, so that when the user or other users subsequently perform the same query on the target data again, the host can directly obtain the query result from the cache, and heterogeneous calculation is not required by using the programmable logic device, thereby facilitating the next query.
For example, the host carries each query sub-result from the device memory of the programmable logic device side to the cache of the host side operating system for caching, thereby realizing the caching of the whole query result. When the user inquires the same data next time, the inquiry result is directly obtained from the buffer memory, heterogeneous calculation and other operations are not needed, and the next inquiry efficiency is improved. And when the host machine is shut down, the cache space is insufficient, or the cache time of the query result reaches the preset time, the query result in the cache can be cleared.
In some alternative embodiments, to enable parallel processing, the host sets multiple levels of processing streams that can run in parallel. Specifically, the procedure shown in the above steps S4031 to S4032, that is, taking a data block as a unit, obtaining a data block from the data storage device, sending the data block to the programmable logic device, and instructing the programmable logic device to sequentially perform decryption processing and query processing on the data block until each data block is traversed, may specifically include the following step D1.
And D1, respectively processing M data blocks according to M-level processing flows which are configured in advance.
The kth-stage processing flow is specifically configured to execute the following steps D11 to D14.
Step D11, after the kth level 1 processing stream obtains the mxi+k-1 th data block from the data storage device, obtaining the mxi+k-th data block from the data storage device, where k=1, 2. Where i is an integer between 0 and (N-M)/M, N being the number of data blocks.
And step D12, transmitting the Mxi+k data blocks to the programmable logic device, wherein in the case that the Mxi+k data blocks are not the last data blocks, the k+1 th stage processing flow is instructed to acquire the Mxi+k+1 th data blocks from the data storage device.
And step D13, instructing the programmable logic device to decrypt the Mxi+k data blocks to obtain decryption sub-data corresponding to the Mxi+k data blocks.
And step D14, instructing the programmable logic device to perform query processing on the decryption sub-data corresponding to the Mxi+k data blocks so as to obtain a query sub-result corresponding to the Mxi+k data blocks.
In this embodiment, the host configures M-level processing flows in advance, and performs partial task interleaving processing between each level of processing flows, so as to implement parallel processing of different tasks, thereby reducing the duration of data processing and improving the overall query efficiency.
The M-level processing flow of this embodiment completes processing all the data blocks by cycling through one or more processes. The method comprises the steps of firstly sequentially processing 1 st to Mth data blocks, secondly, sequentially processing the 1 st to Mth data blocks, sequentially processing the (M+1) th to 2 Mth data blocks, and circulating until all the data blocks are processed.
It will be appreciated that for the ith cycle number, the 1 st processing stream to the M th processing stream process the m×i+1 th to m×i+m th data blocks, respectively; accordingly, for the kth stage processing stream (k is an index of the processing stream, and k=1, 2, m.), which specifically processes the mxi+k data blocks.
In this embodiment, if the kth-1 processing flow has a processing task, for the kth processing flow, after the kth-1 processing flow acquires a corresponding data block (mxi+k-1 th data block) from the data storage device, the kth processing flow may initiate a data read request to be able to acquire the mxi+k-th data block from the data storage device. For a data storage device, each data block can be continuously sent to a host, so that the host can be guaranteed to quickly read complete target data.
And, the kth stage processing flow obtains the mth×i+k data block, which is sent to the programmable logic device based on the data write request. Meanwhile, if the Mxi+k data block is not the last data block at this time, i.e. there is an unread data block, the k+1st processing stream starts to acquire a corresponding data block, i.e. the Mxi+k+1st data block, from the data storage device, and it can be understood that if k=m, the k+1st processing stream is the 1 st processing stream. Similarly, if k=1, the kth-1 stage processing flow is the mth stage processing flow.
And then, sequentially initiating a decryption request for decrypting the Mxi+k data blocks and a query request for querying the data blocks to the programmable logic device by using the kth-stage processing flow, and finally obtaining a query sub-result corresponding to the Mxi+k data blocks.
The processing speed of the data encryption and decryption core and the data query core of the programmable logic device is relatively high, and the data encryption and decryption core and the data query core can also realize parallel processing based on own hardware logic circuits, for example, parallel decryption processing is carried out on a certain data block, hardware decryption and hardware query can be realized quickly, and the time consumption is generally shorter than the time consumption of data reading and data writing. Thus, it will be appreciated that, for the kth stage processing flow, after the mth×i+k data blocks are sent to the programmable logic device, a corresponding decryption request is initiated, or that, after the kth+1 stage processing flow (if present) acquires the mth×i+k+1 data blocks, the kth stage processing flow may initiate a decryption request for the mth×i+k data blocks.
In this embodiment, the query process for the data block mainly includes five tasks, such as data reading, data writing, decryption, query, and result processing, so that five-stage processing flows can be set to perform cyclic processing, that is, parallel query can be implemented, i.e., m=5. At present, M may be greater than 5, and the specific value of M is not limited in this embodiment. In this embodiment, M threads may be set, each thread corresponds to a first-level processing flow, and executes the five tasks, or 5 threads may be set, each thread executes a unique task, and taking a thread executing data reading as an example, after the thread completes a reading request for a certain data block, the thread may continue to perform a reading request for a next data block, and so on, until all the data blocks are read.
Taking m=5 as an example, the kth stage processing stream is used to process the 5i+k data blocks. Fig. 7 shows a schematic diagram of data queries based on five-level processing streams.
As shown in FIG. 7, the overall data query system is divided into three layers, a user layer, a kernel layer, and a device layer, where the user layer and the kernel layer are two different layers in the host-side operating system. The device layer corresponds to two devices, namely a data storage device (such as a magnetic disk) and a programmable logic device (such as an FPGA accelerator board card), which are both mounted in the host. The programmable logic device in the equipment layer internally comprises a data encryption and decryption core, a data query core, an equipment memory and the like. The data encryption and decryption core and the data query core are logic circuits for performing data acceleration calculation, and the function of the data encryption and decryption core and the data query core is to carry out hardware unloading on an encryption and decryption algorithm and a data query algorithm, namely the encryption and decryption algorithm and the data query algorithm are realized by using hardware.
The host software stack adopts a five-stage processing flow form, so that the parallel scheduling capability of a system software layer can be improved, and the data processing throughput rate of parallel calculation of the programmable logic device can be adapted. For each stage of processing flow, five scheduling tasks of data reading of the data storage device, data writing of the programmable logic device, data decryption, data query, result processing and the like are respectively carried out, and each scheduling task can be realized based on a corresponding scheduling function of the kernel layer.
Specifically, after a user initiates a data query request, the data query request enters a kernel layer through system call, after the kernel receives the data query request, task blocking is performed on target data to be queried, each data block is determined, for example, a data block 1, a data block 2, a data block N, and the like, each data block corresponds to a corresponding task block, and information of the task block can describe related information of the data block. In general, the target data is a file in the database, and the task block information can specifically include information such as a data block size to be processed, file information (file size, position of a file, offset of a file, etc.) of the database, a code stream of a data SQL query statement, a data block id, a task block id, etc.
After the 1 st stage processing line of the five stage processing lines receives the task block 1, the corresponding data block 1 can be sequentially subjected to data reading, data writing, data decryption, data inquiry and result processing. And, depending on the characteristics of the processing lines, the data read by the level 2 processing line and the data write by the level 1 processing line may be at the same time, i.e., when the level 1 processing line is writing data, the level 2 processing line starts to read data from the data block 2 at the same time.
As shown in FIG. 7, the data block ids corresponding to each of the five-stage processing lines are 5i+1, 5i+2, 5i+3, 5i+4,5i+5, i respectively, which represent the number of cycles of task distribution, and the value range of the data block id is 0 to (n-5)/5, and the value of i is increased by 1 after the task distribution is completed for the 5-th stage processing line. After each stage of processing line is completed, the result is carried from the equipment memory of the programmable logic device to the cache of the host side operating system for caching, so that the next inquiry is convenient.
If a serial system call mode is adopted, more time is consumed, so that larger time delay is caused, and the overall system performance is reduced. Taking the example of requiring processing of 5 data blocks (i.e., n=5), fig. 8 shows a schematic diagram of serial scheduling, and fig. 9 shows a schematic diagram of parallel scheduling based on five-stage processing flows, with the abscissa axis representing the time axis.
As shown in fig. 8, if a serial scheduling method is adopted, the processing of five data blocks is completed by cycling 5 times of scheduling, it takes 25 cycle units, whereas if the five-stage processing line of the present embodiment is adopted, it takes only 9 cycle units. Thus greatly reducing the time delay and improving the overall system performance.
FIG. 10 is a flow diagram of implementing data hardware decryption and querying based on heterogeneous computing. As shown in fig. 10, the process includes the following steps.
In step S1001, a user initiates a data query request.
In step S1002, the operating system kernel layer receives a data query request.
In step S1003, the kernel layer partitioning mechanism partitions N task blocks with equal size for the database file to be queried. Each task block corresponds to a corresponding data block, and the related information comprises the size of the data block to be processed, file information (file size, offset of the file, etc.) of the database, the code stream of a database query statement, the data block id, the task block id, etc.
And step S1004, distributing each task block for the five-stage processing line software stack.
Wherein, a for loop mechanism can be used to allocate task block information for the five-level processing line software stack. As shown in fig. 10, the processing procedure of each stage of processing line includes:
(1) And starting the disk DMA, and reading and transmitting Data to a host DDR (Double Data Rate) memory. I.e. based on the first DMA engine reading the corresponding data block into the host memory.
(2) And starting the device DMA, and writing the data from the DDR memory of the host to the FPGA. The device DMA represents a second DMA engine, and corresponding data blocks are written into the device memory of the FPGA.
(3) The FPGA receives the data block and performs a decryption operation.
(4) And sending a query code stream corresponding to the data query request to the FPGA, and executing the data query operation on the decrypted data block by the FPGA based on the query code stream.
The FPGA can only send a query code stream once, and the subsequent FPGA can directly call the query code stream.
(5) And processing the query result and sending the query result to a cache of a core layer at the host side.
The purpose of caching the query result is to directly obtain the result from the cache without accelerating the query through the FPGA when the same data is queried next time.
Step S1005, determining whether there is an unprocessed data block, if yes, re-executing step S1004, otherwise, executing step S1006.
It should be noted that, step S1005 may be executed each time after the corresponding task block is completed by the first-stage processing line, and if an unprocessed data block exists, the next data block may be scheduled. After the five-stage processing line completes all scheduling, e.g., i is greater than (N-5)/5, then it may be determined that the query for all data blocks has been completed.
In step S1006, the user obtains the query result in the cache. The flow ends.
According to the data query method provided by the embodiment, the host schedules the hardware function of the programmable logic device, hardware encryption and decryption and hardware query are simultaneously realized under the heterogeneous computing environment, and safe and efficient query tasks are realized under the condition that host processing resources are not occupied. The task partitioning mechanism and the five-stage processing line software stack are designed in the kernel layer, tasks such as data reading, data writing, data decryption, data query, result processing and the like are successively called, so that efficient collaborative parallel calling of software and hardware is realized, and the calculation throughput rate of the heterogeneous acceleration system is greatly improved. The method improves the performance and the safety of data processing, is particularly suitable for the fields with extremely high requirements on the data security, such as government departments, financial institutions and other industries related to sensitive information processing, thereby helping the institutions to improve the working efficiency of related businesses, ensuring the safety and the compliance in the data transmission process, and has wide application prospect.
The embodiment also provides a data query system which comprises a host, data storage equipment and a programmable logic device. The host is connected with the data storage device and the programmable logic device. In addition, the host can execute the data query method provided by the embodiment so as to realize the software and hardware collaborative query. A schematic structure of the data query system is shown in fig. 1.
FIG. 11 illustrates a heterogeneous architecture diagram of a data query system. Wherein both the data storage device (e.g., disk) and the programmable logic device (e.g., FPGA accelerator board card) are connected to the server host via PCIe bus. The programmable logic device internally comprises a plurality of key modules, such as DMA-IP, data encryption and decryption IP, data query IP, a memory controller, a device memory and the like. Wherein:
DMA-IP is responsible for DMA read and write data transfers over the PCIe bus. The data encryption and decryption IP is responsible for the encryption and decryption operation of the data. The data query IP is responsible for realizing the acceleration query of the data file. The memory controller is used for managing and controlling the equipment memory, for example, realizing temporary storage encryption and decryption, data query results after database filtration and the like.
The operating system running by the server host can be divided into a kernel layer and an application layer. And at the kernel layer, the memory resources are managed and distributed through a memory management mechanism, so that DMA data transmission is sent out, and a software stack workflow is called. In addition, the kernel layer driver is responsible for managing various devices, which may include a disk DMA drive for driving the first DMA engine, and a device DMA drive for driving the second DMA engine.
In this embodiment, not only the DMA data transmission between the host side and the FPGA memory is realized in the device DMA driver, but also the database acceleration driver is realized, where the implementation of the database acceleration driver is mainly based on adding the configuration of the code stream address register, the configuration of the result address register, the data source address register, and the like on the basis of the device DMA driver. The components cooperate together to ensure efficient transmission of data between the disk and the FPGA and complete decryption, inquiry, result processing and other operations required by a user.
The embodiment also provides a data query device, which is used for implementing the foregoing embodiments and preferred embodiments, and is not described in detail. As used below, the term "module" may be a combination of software and/or hardware that implements the intended function. While the means described in the following embodiments are preferably implemented in software, implementation in hardware, or a combination of software and hardware, is also possible and contemplated.
The present embodiment provides a data query device, applied to a host, as shown in fig. 12, including:
A request module 1201, configured to determine target data to be queried in response to a data query request initiated by a user, where the target data is data obtained after encryption processing;
the scheduling processing module 1202 is configured to obtain the target data from a data storage device, send the target data to the programmable logic device, and instruct the programmable logic device to sequentially perform decryption processing and query processing on the target data to obtain a corresponding query result;
and the output module 1203 is configured to obtain the query result from the programmable logic device, and return the query result to the user side.
In some alternative embodiments, after the determining the target data to be queried, the scheduling processing module 1202 is further configured to divide the target data into a plurality of data blocks;
The scheduling processing module 1202 obtains the target data from a data storage device, sends the target data to the programmable logic device, and instructs the programmable logic device to sequentially perform decryption processing and query processing on the target data, including obtaining the data block from the data storage device in units of the data block, sending the data block to the programmable logic device, and instructs the programmable logic device to sequentially perform decryption processing and query processing on the data block until each data block is traversed.
In some alternative embodiments, the dispatch processing module 1202 obtains the data block from a data storage device and sends the data block to the programmable logic device, including, for a target data block of the plurality of data blocks, obtaining the target data block from the data storage device after a last data block is obtained from the data storage device, and sending the target data block to the programmable logic device after the target data block is obtained until all of the plurality of data blocks are sent to the programmable logic device.
In some optional embodiments, the scheduling processing module 1202 obtains the data blocks from a data storage device in units of the data blocks, sends the data blocks to the programmable logic device, and instructs the programmable logic device to sequentially perform decryption processing and query processing on the data blocks until each data block is traversed, including:
according to M-level processing flows which are configured in advance, respectively processing M data blocks;
Wherein the kth stage processing flow is to:
After the kth-1 level processing stream obtains the mthi+k-1 data blocks from the data storage device, obtaining the mthi+k data blocks from the data storage device, k=1, 2..m, i is the number of cycles of the processing stream;
The Mxi+k data blocks are sent to the programmable logic device, wherein in the case that the Mxi+k data blocks are not the last data blocks, the k+1 th level processing flow is instructed to acquire the Mxi+k+1 th data blocks from the data storage device;
instructing the programmable logic device to decrypt the Mxi+k data blocks to obtain decryption sub-data corresponding to the Mxi+k data blocks;
And indicating the programmable logic device to perform query processing on the decryption sub-data corresponding to the Mxi+k data blocks so as to obtain a query sub-result corresponding to the Mxi+k data blocks.
Further functional descriptions of the above respective modules and units are the same as those of the above corresponding embodiments, and are not repeated here.
The embodiment of the invention also provides computer equipment. Referring to fig. 13, fig. 13 is a schematic structural diagram of a computer device according to an alternative embodiment of the present invention, and as shown in fig. 13, the computer device includes one or more processors 10, a memory 20, and interfaces for connecting the components, including a high-speed interface and a low-speed interface. The various components are communicatively coupled to each other using different buses and may be mounted on a common motherboard or in other manners as desired. The processor may process instructions executing within the computer device, including instructions stored in or on memory to display graphical information of the GUI on an external input/output device, such as a display device coupled to the interface. In some alternative embodiments, multiple processors and/or multiple buses may be used, if desired, along with multiple memories. Also, multiple computer devices may be connected, each providing a portion of the necessary operations (e.g., as a server array, a set of blade servers, or a multiprocessor system). One processor 10 is illustrated in fig. 13.
The processor 10 may be a central processor, a network processor, or a combination thereof. The processor 10 may further include a hardware chip, among others. The hardware chip may be an application specific integrated circuit, a programmable logic device, or a combination thereof. The programmable logic device may be a complex programmable logic device, a field programmable gate array, a general-purpose array logic, or any combination thereof.
Wherein the memory 20 stores instructions executable by the at least one processor 10 to cause the at least one processor 10 to perform the methods shown in implementing the above embodiments.
The memory 20 may include a storage program area that may store an operating system, application programs required for at least one function, and a storage data area that may store data created according to the use of the computer device, etc. In addition, the memory 20 may include high-speed random access memory, and may also include non-transitory memory, such as at least one magnetic disk storage device, flash memory device, or other non-transitory solid-state storage device. In some alternative embodiments, memory 20 may optionally include memory located remotely from processor 10, which may be connected to the computer device via a network. Examples of such networks include, but are not limited to, the internet, intranets, local area networks, mobile communication networks, and combinations thereof.
The memory 20 may comprise volatile memory, such as random access memory, or nonvolatile memory, such as flash memory, hard disk or solid state disk, or the memory 20 may comprise a combination of the above types of memory.
The computer device also includes a communication interface 30 for the computer device to communicate with other devices or communication networks.
The embodiments of the present invention also provide a computer readable storage medium, and the method according to the embodiments of the present invention described above may be implemented in hardware, firmware, or as a computer code which may be recorded on a storage medium, or as original stored in a remote storage medium or a non-transitory machine readable storage medium downloaded through a network and to be stored in a local storage medium, so that the method described herein may be stored on such software process on a storage medium using a general purpose computer, a special purpose processor, or programmable or special purpose hardware. The storage medium may be a magnetic disk, an optical disk, a read-only memory, a random-access memory, a flash memory, a hard disk, a solid state disk, or the like, and further, the storage medium may further include a combination of the above types of memories. It will be appreciated that a computer, processor, microprocessor controller or programmable hardware includes a storage element that can store or receive software or computer code that, when accessed and executed by the computer, processor or hardware, implements the methods illustrated by the above embodiments.
Portions of the present invention may be implemented as a computer program product, such as computer program instructions, which when executed by a computer, may invoke or provide methods and/or aspects in accordance with the present invention by way of operation of the computer. Those skilled in the art will appreciate that the existence of computer program instructions in a computer-readable medium includes, but is not limited to, source files, executable files, installation package files, and the like, and accordingly, the manner in which computer program instructions are executed by a computer includes, but is not limited to, the computer directly executing the instructions, or the computer compiling the instructions and then executing the corresponding compiled programs, or the computer reading and executing the instructions, or the computer reading and installing the instructions and then executing the corresponding installed programs. Herein, a computer-readable medium may be any available computer-readable storage medium or communication medium that can be accessed by a computer.
Although embodiments of the present invention have been described with reference to the accompanying drawings, various modifications and variations may be made by those skilled in the art without departing from the spirit and scope of the invention, and such modifications and variations are intended to be included within the scope of the invention.

Claims (13)

1.一种数据查询方法,其特征在于,应用于主机,所述方法包括:1. A data query method, characterized in that it is applied to a host, and the method comprises: 响应于用户发起的数据查询请求,确定待查询的目标数据;所述目标数据是加密处理后得到的数据;In response to a data query request initiated by a user, determining target data to be queried; the target data is data obtained after encryption processing; 将所述目标数据分为多个数据块;Dividing the target data into a plurality of data blocks; 以所述数据块为单位,从数据存储设备获取所述数据块,将所述数据块发送至可编程逻辑器件,并指示所述可编程逻辑器件对所述数据块依次进行解密处理和查询处理,直至遍历各个所述数据块,得到相应的查询结果;所述可编程逻辑器件包括用于进行解密处理的数据加解密核和用于进行查询处理的数据查询核;Taking the data block as a unit, obtaining the data block from the data storage device, sending the data block to the programmable logic device, and instructing the programmable logic device to perform decryption processing and query processing on the data block in sequence until each data block is traversed to obtain a corresponding query result; the programmable logic device includes a data encryption and decryption core for decryption processing and a data query core for query processing; 从所述可编程逻辑器件处获取所述查询结果,并将所述查询结果返回至用户侧;Acquire the query result from the programmable logic device, and return the query result to the user side; 其中,以数据块为单位,处理各个所述数据块的过程,包括:The process of processing each data block in units of data blocks includes: 根据预先配置的M级处理流,分别对M个数据块进行处理;According to the pre-configured M-level processing flow, the M data blocks are processed respectively; 其中,第k级处理流用于:Among them, the k-th level processing flow is used for: 在第k-1级处理流从数据存储设备获取第M×i+k-1个数据块之后,从所述数据存储设备获取第M×i+k个数据块;k=1,2,…,M,i为处理流的循环次数;After the k-1th level processing flow obtains the M×i+k-1th data block from the data storage device, obtains the M×i+kth data block from the data storage device; k=1,2,…,M, i is the number of cycles of the processing flow; 将所述第M×i+k个数据块发送至所述可编程逻辑器件;其中,在所述第M×i+k个数据块不是最后一个数据块的情况下,指示第k+1级处理流从所述数据存储设备获取第M×i+k+1个数据块;Sending the M×i+kth data block to the programmable logic device; wherein, if the M×i+kth data block is not the last data block, instructing the k+1th level processing flow to obtain the M×i+k+1th data block from the data storage device; 指示所述可编程逻辑器件对所述第M×i+k个数据块进行解密处理,以得到所述第M×i+k个数据块对应的解密子数据;Instructing the programmable logic device to perform decryption processing on the M×i+kth data block to obtain decrypted sub-data corresponding to the M×i+kth data block; 指示所述可编程逻辑器件对所述第M×i+k个数据块对应的解密子数据进行查询处理,以得到所述第M×i+k个数据块对应的查询子结果。Instruct the programmable logic device to perform query processing on the decrypted sub-data corresponding to the M×i+k-th data block to obtain a query sub-result corresponding to the M×i+k-th data block. 2.根据权利要求1所述的方法,其特征在于,所述从数据存储设备获取所述数据块,将所述数据块发送至所述可编程逻辑器件,包括:2. The method according to claim 1, wherein obtaining the data block from a data storage device and sending the data block to the programmable logic device comprises: 对于所述多个数据块中的目标数据块,在从数据存储设备获取到上一数据块之后,从所述数据存储设备获取所述目标数据块;For a target data block among the multiple data blocks, after a previous data block is obtained from a data storage device, obtaining the target data block from the data storage device; 在获取到所述目标数据块之后,将所述目标数据块发送至所述可编程逻辑器件,直至将所述多个数据块均发送至所述可编程逻辑器件。After the target data block is acquired, the target data block is sent to the programmable logic device until all the multiple data blocks are sent to the programmable logic device. 3.根据权利要求2所述的方法,其特征在于,所述从所述数据存储设备获取所述目标数据块,包括:3. The method according to claim 2, wherein obtaining the target data block from the data storage device comprises: 根据所述目标数据块在所述数据存储设备中的第一地址信息,向所述数据存储设备发起数据读请求;所述数据读请求用于指示所述数据存储设备的第一直接内存访问引擎根据所述第一地址信息读取所述目标数据块,并将所述目标数据块写入至所述主机的主机内存;Initiate a data read request to the data storage device according to first address information of the target data block in the data storage device; the data read request is used to instruct a first direct memory access engine of the data storage device to read the target data block according to the first address information, and write the target data block to the host memory of the host; 所述将所述目标数据块发送至所述可编程逻辑器件,包括:The sending the target data block to the programmable logic device comprises: 根据所述目标数据块在所述主机内存中的第二地址信息,以及所述可编程逻辑器件的设备内存中指定用于存储所述目标数据块的第三地址信息,向所述可编程逻辑器件发起数据写请求;所述数据写请求用于指示所述可编程逻辑器件的第二直接内存访问引擎根据所述第二地址信息读取所述目标数据块,并将所述目标数据块写入至所述设备内存中与所述第三地址信息对应的内存空间。A data write request is initiated to the programmable logic device based on the second address information of the target data block in the host memory and the third address information designated for storing the target data block in the device memory of the programmable logic device; the data write request is used to instruct the second direct memory access engine of the programmable logic device to read the target data block according to the second address information and write the target data block to the memory space in the device memory corresponding to the third address information. 4.根据权利要求1所述的方法,其特征在于,所述指示所述可编程逻辑器件对所述数据块依次进行解密处理和查询处理,包括:4. The method according to claim 1, wherein the step of instructing the programmable logic device to sequentially perform decryption processing and query processing on the data block comprises: 对于所述多个数据块中的目标数据块,在将所述目标数据块发送至所述可编程逻辑器件之后,向所述可编程逻辑器件发起所述目标数据块对应的解密请求;所述解密请求用于指示所述可编程逻辑器件基于所述数据加解密核对所述目标数据块进行解密处理,得到所述目标数据块对应的解密子数据;For a target data block among the multiple data blocks, after sending the target data block to the programmable logic device, a decryption request corresponding to the target data block is initiated to the programmable logic device; the decryption request is used to instruct the programmable logic device to perform decryption processing on the target data block based on the data encryption and decryption check to obtain decrypted sub-data corresponding to the target data block; 在所述可编程逻辑器件完成所述目标数据块的解密处理之后,向所述可编程逻辑器件发起所述目标数据块对应的查询请求;所述查询请求用于指示所述可编程逻辑器件基于所述数据查询核对所述目标数据块对应的解密子数据进行查询处理,得到所述目标数据块的查询子结果;所述查询结果包括所述查询子结果。After the programmable logic device completes the decryption processing of the target data block, a query request corresponding to the target data block is initiated to the programmable logic device; the query request is used to instruct the programmable logic device to perform query processing on the decrypted sub-data corresponding to the target data block based on the data query to obtain a query sub-result of the target data block; the query result includes the query sub-result. 5.根据权利要求4所述的方法,其特征在于,还包括:5. The method according to claim 4, further comprising: 将所述数据查询请求对应的查询语句转换为查询码流,并将所述查询码流发送至所述可编程逻辑器件;所述查询请求用于指示所述可编程逻辑器件的所述数据查询核根据所述查询码流对所述目标数据块对应的解密子数据进行查询处理,得到所述目标数据块的查询子结果。The query statement corresponding to the data query request is converted into a query code stream, and the query code stream is sent to the programmable logic device; the query request is used to instruct the data query core of the programmable logic device to query the decrypted sub-data corresponding to the target data block according to the query code stream to obtain the query sub-result of the target data block. 6.根据权利要求1所述的方法,其特征在于,所述从所述可编程逻辑器件处获取所述查询结果,包括:6. The method according to claim 1, wherein obtaining the query result from the programmable logic device comprises: 对于所述多个数据块中的目标数据块,在所述可编程逻辑器件得到所述目标数据块的查询子结果之后,向所述可编程逻辑器件发起获取所述查询子结果的获取请求;所述获取请求用于指示所述可编程逻辑器件的第二直接内存访问引擎将所述查询子结果写入至所述主机的主机内存。For a target data block among the multiple data blocks, after the programmable logic device obtains a query sub-result of the target data block, an acquisition request for obtaining the query sub-result is initiated to the programmable logic device; the acquisition request is used to instruct the second direct memory access engine of the programmable logic device to write the query sub-result to the host memory of the host. 7.根据权利要求1所述的方法,其特征在于,所述主机的内核层设有:读调度函数、写调度函数、解密调度函数、查询调度函数和结果处理函数;7. The method according to claim 1, characterized in that the kernel layer of the host is provided with: a read scheduling function, a write scheduling function, a decryption scheduling function, a query scheduling function and a result processing function; 所述读调度函数用于向所述数据存储设备发起获取目标数据块的数据读请求;所述目标数据块为所述多个数据块中的一者;The read scheduling function is used to initiate a data read request to the data storage device to obtain a target data block; the target data block is one of the multiple data blocks; 所述写调度函数用于向所述可编程逻辑器件发起写入所述目标数据块的数据写请求;The write scheduling function is used to initiate a data write request to the programmable logic device to write the target data block; 所述解密调度函数用于向所述可编程逻辑器件发起对所述目标数据块进行解密处理的解密请求,以得到所述目标数据块对应的解密子数据;The decryption scheduling function is used to initiate a decryption request to the programmable logic device to perform decryption processing on the target data block, so as to obtain the decrypted sub-data corresponding to the target data block; 所述查询调度函数用于向所述可编程逻辑器件发起对所述目标数据块对应的解密子数据进行查询处理的查询请求,以得到所述目标数据块的查询子结果;The query scheduling function is used to initiate a query request to the programmable logic device for querying the decrypted sub-data corresponding to the target data block, so as to obtain the query sub-result of the target data block; 所述结果处理函数用于向所述可编程逻辑器件发起获取所述查询子结果的获取请求。The result processing function is used to initiate an acquisition request to the programmable logic device to obtain the query sub-result. 8.根据权利要求1所述的方法,其特征在于,所述方法还包括:8. The method according to claim 1, characterized in that the method further comprises: 将所述查询结果存储至所述主机的缓存;Storing the query result in a cache of the host; 在之后获取到用于查询所述目标数据的另一数据查询请求的情况下,从所述缓存获取并返回所述查询结果。When another data query request for querying the target data is obtained later, the query result is obtained from the cache and returned. 9.根据权利要求1所述的方法,其特征在于,所述方法还包括:9. The method according to claim 1, characterized in that the method further comprises: 获取待存储的原始数据;Obtaining raw data to be stored; 将所述原始数据发送至所述可编程逻辑器件;Sending the original data to the programmable logic device; 向所述可编程逻辑器件发起加密请求,以指示所述可编程逻辑器件基于所述数据加解密核对所述原始数据进行加密处理,得到相应的加密数据,并将所述加密数据返回至所述主机;Initiating an encryption request to the programmable logic device to instruct the programmable logic device to perform encryption processing on the original data based on the data encryption and decryption core, obtain corresponding encrypted data, and return the encrypted data to the host; 将所述加密数据存储至所述数据存储设备。The encrypted data is stored in the data storage device. 10.一种数据查询系统,其特征在于,包括:主机、数据存储设备和可编程逻辑器件;所述可编程逻辑器件包含数据加解密核和数据查询核;10. A data query system, characterized in that it comprises: a host, a data storage device and a programmable logic device; the programmable logic device comprises a data encryption and decryption core and a data query core; 所述主机与所述数据存储设备、所述可编程逻辑器件相连,且所述主机用于执行权利要求1至9中任一项所述的数据查询方法。The host is connected to the data storage device and the programmable logic device, and the host is used to execute the data query method described in any one of claims 1 to 9. 11.一种计算机设备,其特征在于,包括:11. A computer device, comprising: 存储器和处理器,所述存储器和所述处理器之间互相通信连接,所述存储器中存储有计算机指令,所述处理器通过执行所述计算机指令,从而执行权利要求1至9中任一项所述的数据查询方法。A memory and a processor, wherein the memory and the processor are communicatively connected to each other, the memory stores computer instructions, and the processor executes the data query method according to any one of claims 1 to 9 by executing the computer instructions. 12.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机指令,所述计算机指令用于使计算机执行权利要求1至9中任一项所述的数据查询方法。12. A computer-readable storage medium, characterized in that computer instructions are stored on the computer-readable storage medium, and the computer instructions are used to enable a computer to execute the data query method according to any one of claims 1 to 9. 13.一种计算机程序产品,其特征在于,包括计算机指令,所述计算机指令用于使计算机执行权利要求1至9中任一项所述的数据查询方法。13. A computer program product, comprising computer instructions, wherein the computer instructions are used to enable a computer to execute the data query method according to any one of claims 1 to 9.
CN202510380650.1A 2025-03-28 2025-03-28 Data query method, system, device, medium and program product Active CN119885247B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202510380650.1A CN119885247B (en) 2025-03-28 2025-03-28 Data query method, system, device, medium and program product

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202510380650.1A CN119885247B (en) 2025-03-28 2025-03-28 Data query method, system, device, medium and program product

Publications (2)

Publication Number Publication Date
CN119885247A CN119885247A (en) 2025-04-25
CN119885247B true CN119885247B (en) 2025-07-22

Family

ID=95438276

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202510380650.1A Active CN119885247B (en) 2025-03-28 2025-03-28 Data query method, system, device, medium and program product

Country Status (1)

Country Link
CN (1) CN119885247B (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN120066999A (en) * 2025-04-28 2025-05-30 苏州元脑智能科技有限公司 Data transmission system, method, storage medium and program product
CN120234822B (en) * 2025-05-30 2025-08-08 苏州元脑智能科技有限公司 Data processing method, electronic device, storage medium and product

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107122490A (en) * 2017-05-18 2017-09-01 郑州云海信息技术有限公司 The data processing method and system of aggregate function in a kind of Querying by group
CN116226180A (en) * 2023-01-17 2023-06-06 中电信数智科技有限公司 Cloud database management architecture and accelerated query method

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11475145B2 (en) * 2018-12-14 2022-10-18 Intel Corporation Methods and apparatus for implementing a secure database using programmable integrated circuits with dynamic partial reconfigurability
CN112365162B (en) * 2020-11-12 2024-03-08 北京交通大学 Railway operation risk control method based on accident cause network
CN118708133B (en) * 2024-08-30 2024-11-15 苏州元脑智能科技有限公司 Logical disk status query method, device, system, equipment and storage medium

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107122490A (en) * 2017-05-18 2017-09-01 郑州云海信息技术有限公司 The data processing method and system of aggregate function in a kind of Querying by group
CN116226180A (en) * 2023-01-17 2023-06-06 中电信数智科技有限公司 Cloud database management architecture and accelerated query method

Also Published As

Publication number Publication date
CN119885247A (en) 2025-04-25

Similar Documents

Publication Publication Date Title
CN119885247B (en) Data query method, system, device, medium and program product
US9665404B2 (en) Optimization of map-reduce shuffle performance through shuffler I/O pipeline actions and planning
US8381230B2 (en) Message passing with queues and channels
US7478390B2 (en) Task queue management of virtual devices using a plurality of processors
US7748006B2 (en) Loading software on a plurality of processors
CN113918101B (en) A method, system, device and storage medium for writing data cache
US10552936B2 (en) Solid state storage local image processing system and method
US20080168443A1 (en) Virtual Devices Using a Plurality of Processors
JP5826471B2 (en) Autonomous subsystem architecture
CN111831330B (en) Heterogeneous computing system device interaction scheme for federated learning
CN110119304B (en) Interrupt processing method, device and server
US10467052B2 (en) Cluster topology aware container scheduling for efficient data transfer
Ahmadinia et al. Task scheduling for heterogeneous reconfigurable computers
CN113312182B (en) Cloud computing node, file processing method and device
CN115033188B (en) Storage hardware acceleration module system based on ZNS solid state disk
CN109491934A (en) A kind of storage management system control method of integrated computing function
US8543722B2 (en) Message passing with queues and channels
WO2023045203A1 (en) Task scheduling method, chip, and electronic device
Contini et al. Enabling reconfigurable HPC through MPI-based inter-FPGA communication
CN106933510A (en) A kind of storage control
KR20220085031A (en) Storage device adapter to accelerate database temporary table processing
CN117435251B (en) A post-quantum cryptographic algorithm processor and its system on chip
CN112713993A (en) Encryption algorithm module accelerator and high-speed data encryption method
CN120234822B (en) Data processing method, electronic device, storage medium and product
CN113076180A (en) Method for constructing uplink data path and data processing system

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
点击 这是indexloc提供的php浏览器服务,不要输入任何密码和下载