CN115344192A - Data processing method and device and electronic equipment - Google Patents

Data processing method and device and electronic equipment Download PDF

Info

Publication number
CN115344192A
CN115344192A CN202110520801.0A CN202110520801A CN115344192A CN 115344192 A CN115344192 A CN 115344192A CN 202110520801 A CN202110520801 A CN 202110520801A CN 115344192 A CN115344192 A CN 115344192A
Authority
CN
China
Prior art keywords
data
metadata
storage
position information
stored
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.)
Pending
Application number
CN202110520801.0A
Other languages
Chinese (zh)
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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies 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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN202110520801.0A priority Critical patent/CN115344192A/en
Publication of CN115344192A publication Critical patent/CN115344192A/en
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • G06F16/1824Distributed file systems implemented using Network-attached Storage [NAS] architecture
    • G06F16/183Provision of network file services by network file servers, e.g. by using NFS, CIFS
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0604Improving or facilitating administration, e.g. storage management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems
    • G06F3/0631Configuration or reconfiguration of storage systems by allocating resources to storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]

Abstract

The application discloses a data processing method, a data processing device and electronic equipment, which are used for solving the problem that the communication performance of an RNIC is poor due to low metadata storage capacity in the existing RNIC. When the electronic device stores the received metadata, if the second data contained in the received metadata is determined to be stored, the second data is not stored any more, so that the situation that storage resources are wasted to store repeated second data is effectively avoided, and one second data which can be commonly stored by a plurality of metadata containing the same second data is realized. In addition, the storage resource consumed by the first storage position information for storing the second data is far less than the storage resource consumed by the second data, so that more storage resources are saved for storing other metadata, the number of the metadata which can be stored is increased, the communication connection number of the RNIC is increased, and the communication performance of the RNIC is improved.

Description

Data processing method and device and electronic equipment
Technical Field
The present application relates to the field of communications technologies, and in particular, to a data processing method and apparatus, and an electronic device.
Background
In order to reduce the delay in data transmission based on the conventional ethernet, a new communication protocol of aggregated over ethernet (RDMA over converted ethernet, roCE) has been proposed, which allows Remote Direct Memory Access (RDMA) technology to be used in the conventional ethernet.
In the RoCE protocol, metadata used for establishing a transmission connection is directly stored in a Static Random Access Memory (SRAM) of the network card, and for example, metadata including a destination global number, a source global number, connection management, queue management, and the like is stored in the SRAM of the network card. The network card storing the metadata may be a network card supporting RDMA characteristics, that is, an RDMA Network Interface Card (RNIC). When the transmission connection needs to be established, the RNIC can directly acquire the required metadata from the SRAM. And the RNIC establishes transmission connection with other network cards according to the acquired metadata, so that the data transmission efficiency is improved.
The premise that the RoCE protocol improves the efficiency of data transmission is as follows: metadata for the establishment of the transport connection is saved to the SRAM of the RNIC. When the transmission connection is required to be established, the RNIC can acquire the required metadata directly in the SRAM of the RNIC without spending time to acquire the required metadata in the memory of the host equipment. However, since the cost of SRAM is high and the capacity is limited, less metadata for establishing transmission connection can be stored in RNIC, which seriously affects some communication performance such as the number of communication connections of RNIC.
Disclosure of Invention
The embodiment of the application provides a data processing method, a data processing device and electronic equipment, which are used for solving the problem of poor communication performance of an RNIC (radio network integrated circuit) caused by low metadata storage capacity in the conventional RNIC.
In a first aspect, a data processing method is applied to a data transmission system, and in the method, before an electronic device establishes a transmission connection with other electronic devices in the data transmission system, the electronic device may receive metadata, where the metadata includes first data and second data for establishing the transmission connection with the other electronic devices in the data transmission system. Thereafter, the electronic device determines whether the second data has been saved. And when the electronic equipment determines that the second data is stored, the electronic equipment does not store the second data any more, acquires the first storage position information of the stored second data, and stores the first storage position information and the second data contained in the metadata. After that, the electronic device may establish a transmission connection with another electronic device through the saved first data and second data.
By the method, when the electronic device determines that the second data contained in the received metadata is already stored, the electronic device does not store the second data any more, thereby effectively avoiding the occurrence of the situation that the storage resources are wasted and the repeated second data are stored, and realizing that a plurality of metadata containing the same second data can share one second data. And the storage resource consumed by storing the first storage position information of the second data is far less than that consumed by storing the second data, so that more storage resources are saved for storing other metadata, the number of the metadata which can be stored is increased, the communication connection number of the RNIC is increased, and the communication performance of the RNIC is improved.
In a possible implementation manner, when determining whether the second data included in the received metadata is stored, the electronic device may first obtain a first identifier of the second data. It is then determined whether the first identity has been saved. And if the first identifier is determined to be stored, determining that the second data is already stored.
By the method, whether the second data is stored or not is determined according to whether the first identifier of the second data included in the received metadata is stored or not, so that the process of consuming a large amount of resources for comparing the second data with each stored second data byte by byte is effectively avoided, and the efficiency of storing the metadata is improved.
In one possible implementation, the first storage location information may be a pointer.
By the method, the storage resource consumed by the pointer is far less than that consumed by the second data, so that more storage resources are saved for storing other metadata, the number of the metadata which can be stored is increased, the communication connection number of the RNIC is increased, and the communication performance of the RNIC is improved.
In a possible implementation, the first data is data in the metadata belonging to a variable field, and the data in the variable field comprises state class data in the metadata;
the second data is data belonging to an immutable field in the metadata, and the data of the immutable field comprises configuration class data in the metadata.
By the method, the variable field and the invariable field in the metadata can be flexibly configured, and after the electronic equipment receives the metadata, the first data and the second data in the metadata are quickly determined according to the preset variable field and the preset invariable field, so that the efficiency of metadata storage is improved.
In one possible embodiment, the configuration class data includes one or more of the following:
maximum number of network hops allowed, maximum length of transmission bytes, timeout time for acknowledge ACK, queue depth of send queue, queue depth of receive queue, transmission priority, remote direct memory access RDMA read enable state, RDMA write enable state.
In one possible embodiment, the state class data includes one or more of the following:
the destination queue pair QP number, source QP number, destination global number, source global number, currently expected received packet sequence number, currently retransmitted packet sequence number, current QP state, and current retransmission count.
In a possible implementation manner, if it is determined that second data included in the received metadata is not currently stored, the electronic device allocates a new storage area to the second data, and stores the second data in the storage area and acquires first storage location information of the second data. Meanwhile, the electronic device may also allocate a new storage area for the first data included in the received metadata, and save the first storage location information and the first data in the storage area.
By the method, the second data can be stored only when the second data contained in the received metadata is not stored, and then the first storage position information of the second data is stored with the first data contained in the metadata, so that each stored second data is different, each second data is stored only once, and the waste of storage resources for storing repeated second data is avoided.
In one possible implementation, after saving the metadata, the electronic device may receive a data update request to modify the metadata. The data update request includes update data for updating the second data. And then, the electronic equipment responds to the data updating request and updates the second data included in the metadata according to the data updating request.
By the method, when the stored second data is updated, one piece of second data shared by the plurality of metadata including the second data is updated because the plurality of metadata share the stored second data, that is, the second data is modified only once, so that the second data included in the plurality of metadata including the second data can be updated in batch, and the efficiency of modifying the second data included in the plurality of metadata is improved.
In one possible implementation, after the electronic device saves the received metadata, a data reading request for reading the saved metadata may be received. The data reading request may carry second storage location information corresponding to the metadata to be read. The second storage location information is used for storing the first storage location information and the first data. And then, the electronic equipment responds to the data reading request, analyzes the data reading request and acquires second storage position information corresponding to the metadata to be read. And then the electronic equipment acquires the first storage position information and the first data in the storage area corresponding to the second storage position information. And the electronic equipment acquires the second data in the storage area corresponding to the first storage position information. And the subsequent electronic equipment establishes transmission connection with other electronic equipment according to the acquired first data and the acquired second data.
By the method, the stored first data and the stored second data can be quickly acquired, so that the transmission connection with other electronic equipment is established according to the stored first data and the stored second data.
In one possible implementation, after the electronic device saves the received metadata, a data reading request for reading the saved metadata may be received. The data reading request may carry a second identifier of the first data included in the metadata to be read. And then, the electronic equipment responds to the data reading request, analyzes the data reading request and acquires a second identifier of the first data contained in the data reading request. And then the electronic equipment acquires second storage position information corresponding to the second identifier according to the corresponding relation between the stored identifier of the first data and the second storage position information, namely, determines the second storage position information corresponding to the metadata to be read.
By the method, the electronic equipment can accurately determine the second storage position information corresponding to the metadata to be read, and the accuracy of the establishment of the subsequent transmission connection is facilitated.
In a second aspect, an embodiment of the present application further provides a data processing apparatus, where the data processing apparatus is disposed on an electronic device, and the electronic device may be hardware supporting a RoCE protocol, or may be a device having hardware supporting the RoCE protocol. The function of implementing the behavior in the method example of the first aspect is provided, and the beneficial effects may refer to the description of the first aspect and are not described herein again. The functions can be realized by hardware, and the functions can also be realized by executing corresponding software by hardware. The hardware or software includes one or more units (or modules) corresponding to the above functions. Such as a receiving unit, a processing unit and a storage unit.
In a possible embodiment, the processing unit of the device comprises an analysis subunit and a variable allocation subunit;
the variable allocation subunit is configured to, when the analysis subunit determines that the second data is stored in the storage unit, allocate a storage area in the storage unit for the first data, and store first storage location information of the second data and the first data in the storage area.
In a possible embodiment, the processing unit of the device comprises: an immutable assignable subunit;
the immutable allocation subunit is configured to allocate, when the analysis subunit determines that the second data is not stored in the storage unit, a first storage area in the storage unit for the second data; and saving the second data to the first storage area;
the variable allocation subunit is further configured to allocate a second storage area in the storage unit for the first storage location information of the second data and the first data; and saving the first storage location information of the second data and the first data to the second storage area.
In a possible implementation manner, the analyzing subunit is further configured to update the second data according to the data update request received by the receiving unit.
In a possible implementation manner, the analysis subunit is further configured to determine second storage location information corresponding to the metadata; the second storage location information is used for saving the first storage location information and the first data; acquiring the first storage position information and the first data from the storage unit according to the second storage position information; and acquiring the second data from the storage unit according to the first storage position information;
the processing unit further comprises: an engine subunit;
and the engine subunit is used for establishing transmission connection with the other data processing devices through the first data and the second data.
In a third aspect, an embodiment of the present application further provides an electronic device, where the electronic device may be hardware supporting a RoCE protocol, and may also be a device having hardware supporting the RoCE protocol. The electronic device has a function of implementing behaviors in the method example of the first aspect, and for beneficial effects, reference may be made to description of the first aspect, which is not described herein again. In one possible implementation, the electronic device includes processing circuitry, receiving interface circuitry, and a memory.
In one possible embodiment, the processing circuit comprises an analysis sub-circuit and a variable allocation sub-circuit;
the variable allocation sub-circuit is configured to allocate a storage area in the memory for the first data when the analysis sub-circuit determines that the second data is stored in the memory, and store first storage location information of the second data and the first data in the storage area.
In one possible implementation, the processing circuit further includes: an immutable distributor sub-circuit;
the immutable allocation subcircuit is configured to allocate a first storage area in the memory for the second data when the analysis subcircuit determines that the second data is not stored in the memory; and saving the second data to the first storage area;
the variable allocation subcircuit is further configured to allocate a second storage area in the memory for the first storage location information of the second data and the first data; and saving the first storage location of the second data and the first data to the second storage area.
In a possible implementation, the analyzing sub-circuit is further configured to update the second data according to the data update request received by the receiving interface circuit.
In a possible implementation, the analysis sub-circuit is further configured to determine second storage location information corresponding to the metadata; the second storage location information is used for saving the first storage location information and the first data; acquiring the first storage position information and the first data from the storage according to the second storage position information; acquiring the second data from the memory according to the second storage position information;
the processing circuit further comprises: an engine sub-circuit;
and the engine subcircuit is used for establishing transmission connection with other electronic equipment through the first data and the second data.
In a fourth aspect, the present application provides a computer readable storage medium storing a computer program or instructions which, when executed, may implement the method as described in the first aspect or any one of the possible designs of the first aspect.
In a fifth aspect, the present application also provides a computer program product comprising a computer program or instructions which, when executed, may implement the method as described in the first aspect or any one of the possible designs of the first aspect.
In a sixth aspect, embodiments of the present application provide a chip for executing a computer program or instructions stored in a memory to implement the method as described in the first aspect or any one of the possible designs of the first aspect.
For technical effects achieved by the second aspect to the sixth aspect, please refer to the technical effects achieved by the first aspect, which will not be repeated herein.
Drawings
Fig. 1 is a schematic structural diagram of a data transmission system according to an embodiment of the present application;
FIG. 2 is a schematic diagram of an RNIC with an added secondary memory according to an embodiment of the present application;
fig. 3 is a schematic structural diagram of an electronic device according to an embodiment of the present application;
FIG. 4 is a diagram illustrating a metadata storage process according to an embodiment of the present application;
FIG. 5 is a schematic diagram illustrating first data and second data included in a QPC according to an embodiment of the present application;
FIG. 6 is a diagram illustrating a scenario of metadata storage according to an embodiment of the present application;
FIG. 7 is a schematic diagram illustrating a metadata modification process according to an embodiment of the present application;
fig. 8 is a schematic diagram illustrating a process of establishing a transmission connection according to an embodiment of the present application;
fig. 9 is a schematic structural diagram of a network card according to an embodiment of the present application;
FIG. 10 is a schematic diagram of a resource management sub-circuit according to an embodiment of the present application;
FIG. 11 is a diagram illustrating a process of a resource management sub-circuit storing metadata according to an embodiment of the present application;
FIG. 12 is a schematic diagram of another embodiment of a resource management sub-circuit storing metadata according to the present application;
fig. 13 is a possible exemplary block diagram of a data processing apparatus according to an embodiment of the present application.
Detailed Description
Embodiments of the present application will be described in detail below with reference to the accompanying drawings.
First, the present application is explained with reference to related terms so as to be easily understood by those skilled in the art.
(1) High Performance Computing (HPC): refers to computing systems and environments that typically use many processors (as part of a single machine) or several computers (operating as a single computing resource) organized in a cluster.
(2) Remote Direct Memory Access (RDMA): RDMA is a direct memory access method, and based on RDMA, an electronic device can directly read and write data from and into the memory of other electronic devices without being processed by the processors of the other electronic devices.
(3) Queues (queues): RDMA supports three queues in total, a Send Queue (SQ), a Receive Queue (RQ), and a Complete Queue (CQ). Where SQ and RQ are typically created in pairs, called Queue Pairs (QPs).
(4) Queue Pair Context (QPC): a data structure for managing a connection status of a communication between two electronic devices in a data transmission system, the data structure recording status information and configuration information of the transmission connection between the two electronic devices in the data transmission system. The establishment of the transport connection relies on access to the QPC.
(5) Pointer: in an electronic device, all data is stored in a memory, and the size of memory space occupied by different data types is different. Memory is a continuous addressing space in bytes, and each byte unit corresponds to a unique number, which is called the address of the memory unit, referred to as the memory address. For example, int type takes 4 bytes, char type takes 1 byte, etc. The memory is a memory address of a first byte unit of a data allocation storage area, which is called as a memory address of the data. The memory address is used for identifying each storage unit, so that a user can conveniently and correctly access the data in the storage unit. The memory address can be indicated by pointers, and the length of the memory cell occupied by the pointers of different types is generally the same.
For convenience of understanding the embodiment of the present application, an application scenario of the present application is introduced next, and the network architecture and the service scenario described in the embodiment of the present application are for more clearly explaining the technical solution of the embodiment of the present application, and do not form a limitation on the technical solution provided in the embodiment of the present application.
With the development of communication technology, the RoCE protocol is widely used to solve the problem of high end-to-end delay in HPC transmission. Fig. 1 is a schematic structural diagram of a data transmission system according to an embodiment of the present application. As shown in fig. 1, the data transmission system includes at least two electronic devices. The electronic device may be a portable terminal, such as a mobile phone, a tablet computer, a wearable device, etc., having hardware of the RoCE protocol, or a portable terminal having hardware of the RoCE protocolThe hardware server of (3), etc. Wherein the hardware with RoCE protocol may be understood as hardware supporting RDMA features, such as RNIC. The hardware with the RoCE protocol can be independent of the electronic device or can be located in the electronic device. In particular, exemplary embodiments of the electronic device include, but are not limited to, a mount
Figure BDA0003063882780000061
Or other operating system. In other embodiments, the electronic device may also be an intelligent screen, a notebook computer, a vehicle-mounted terminal, or the like.
RoCE is a message-based transport protocol with data transmission being asynchronous. In connection with the data transmission system shown in fig. 1, the hardware with the RoCE protocol is taken as RNIC, and only the transmit/receive operation (send/receive) of the RoCE is taken as an example for explanation. Wherein the assembly of all packets is done on the RNIC.
The transmission/reception operation in the RoCE is bilateral operation, namely, the application installed on the remote electronic equipment is required to sense and participate to complete the transmission and reception.
Taking node a in fig. 1 to send data to node B as an example:
first, when node a needs to send data to node B, both node a and node B have created and initialized their respective QPs, CQs.
node a allocates a storage area for data waiting to be transmitted in a user mode buffer (buffer) by running the installed application. The data waiting to be transmitted is stored in the storage area. The user-mode buffer may be understood as a memory (e.g., cache, SRAM, etc.) of node a.
The processor of node a and the processor of node B each add an element (WQE) to a respective Work Queue (WQ). For node a, WQ = SQ, WQE describes pointing to data waiting to be sent; for node B, WQ = RQ, WQE description points to a buffer for storing data.
Node a will then send the WQ to the Operating System (OS) by calling the operating system's interface to forward the WQ to the hardware with the RoCE protocol through the operating system.
After the RNIC of node a acquires the WQ, the data waiting to be sent is directly copied from the user-mode buffer to the internal buffer of the RNIC in a Direct Memory Access (DMA) manner. The internal buffer may be understood as a memory (e.g., cache, SRAM, etc.) of the RNIC. The RNIC acquires metadata required for transmitting data from the internal buffer, and transmits the data waiting to be transmitted to the node B in a data stream manner according to the acquired metadata. After the data stream reaches the RNIC of the node B, the WQE of the node B is consumed, and the RNIC of the node B directly stores the received data into a cache pointed by the WQE, namely a user-mode buffer of an application installed on the node B in a DMA mode.
After node A and node B have completed communication, a completion message (CQE) is generated in the Completion Queue (CQ) of node A to indicate completion of the transmission. Meanwhile, a completion message CQE is generated in the CQ of node B to indicate completion of reception. The completion of the processing of WQEs in each WQ results in a CQE.
The data transmission process based on the RoCE described above may find that the premise that the RNIC can directly transmit data waiting to be transmitted to the electronic device at the receiving end is: the RNIC saves metadata for the establishment of the transport connection to a buffer internal to the RNIC. For example, taking the memory as SRAM as an example, metadata for establishment of the transfer connection is saved in the SRAM of the RNIC. With this method, since the cost of the internal memory of the RNIC is high and the capacity is limited (generally, the SRAM capacity of the RNIC hardly exceeds 1M), the metadata that can be stored in the RNIC for establishing the transmission connection is relatively small, and the communication performance such as the number of communication connections of the RNIC is affected.
For example, the RNIC stores QPCs, assuming that one QPC requires 512 bytes, theoretically 1000 transmission connections occupy 512K of storage area, and the SRAM capacity of the RNIC is only 1M, limiting the number of communication connections of the RNIC.
In the prior art, in order to improve the storage capacity and performance of the RNIC, as shown in fig. 2, a secondary memory, such as a double-rate synchronous dynamic random access memory (DDR), is usually added to the RNIC. However, this approach adds cost to the RNIC by requiring new secondary memory on the RNIC. On the other hand, when the RoCE engine in the RNIC acquires the metadata used for establishing the transmission connection, it needs to acquire the metadata from the primary storage (e.g., SRAM) first, and if the required metadata cannot be acquired from the primary storage, then the metadata is queried and acquired from the secondary storage, a time delay for acquiring the metadata used for establishing the transmission connection may be increased, which may affect user experience.
In order to solve the problem that the RNIC storage capacity is low, and the RNIC communication performance is poor, the application provides a data processing method, and aims to avoid repeated storage of repeated data in different metadata when the received metadata are stored, so that more metadata can be stored in saved storage resources, the quantity of the RNIC storage metadata is increased, and the communication performance is improved.
The data processing method can be applied to electronic equipment, and the electronic equipment can be hardware supporting a RoCE protocol, such as RNIC, or equipment having hardware supporting the RoCE protocol, such as a mobile phone, a tablet computer, a wearable device smart screen, a notebook computer, a vehicle-mounted terminal, a server and the like.
In one possible implementation, the electronic device may be configured as shown in fig. 3, and the electronic device 300 includes a bus 310, a processing circuit 320, a memory 330, and a receiving interface circuit 340. The processing circuitry 320, the memory 330, and the receive interface circuitry 340 communicate over a bus 310.
The processor 320 may be a Central Processing Unit (CPU), an Application Specific Integrated Circuit (ASIC), a Field Programmable Gate Array (FPGA), an Artificial Intelligence (AI) chip, a system on chip (SoC) or a Complex Programmable Logic Device (CPLD), a Graphics Processing Unit (GPU), or the like.
The memory 330 may include a volatile memory (RAM), SRAM, DRAM, etc., a non-volatile memory (non-volatile memory), SCM (storage class memory), etc., or a combination of volatile and non-volatile memories, etc. The memory 330 in this embodiment may specifically refer to an SRAM type memory, and is used to store a computer program and metadata corresponding to the data processing method in this embodiment, where the metadata is used to establish the transmission connection.
The memory 330 may also include other software modules such as an operating system that are required to run the process. The operating system may be LINUX, UNIX, WINDOWS, etc.
Processor 320 may enable electronic device 300 to perform operations performed by processor 320 of electronic device 300 in the embodiment shown in fig. 3 by invoking computer programs stored in memory 330.
In the embodiment of the present application, the processor 330 may receive information, such as metadata, a data read request, a data update request, and the like, through the receiving interface circuit 340.
It is to be understood that the illustrated structure of the embodiments of the present application does not constitute a specific limitation to electronic devices. It may have more or fewer components than shown in fig. 3, may combine two or more components, or may have a different configuration of components.
In addition, it should be understood that, in the embodiments of the present application, at least one may also be described as one or more, and a plurality may be two, three, four or more, and the present application is not limited thereto. In the embodiments of the present application, "/" may indicate a relationship in which the former and latter associated objects are "or", for example, a/B may indicate a or B; "and/or" may be used to describe that there are three relationships associated with an object, e.g., a and/or B, which may represent: a exists alone, A and B exist simultaneously, and B exists alone, wherein A and B can be singular or plural. For convenience in describing the technical solutions of the embodiments of the present application, in the embodiments of the present application, terms such as "first" and "second" may be used to distinguish technical features having the same or similar functions. The terms "first", "second", and the like do not necessarily limit the number and execution order, and the terms "first", "second", and the like do not necessarily differ. In the embodiments of the present application, the words "exemplary" or "such as" are used to indicate examples, illustrations or illustrations, and any embodiment or design described as "exemplary" or "e.g.," should not be construed as preferred or advantageous over other embodiments or designs. The use of the terms "exemplary" or "such as" are intended to present relevant concepts in a concrete fashion for ease of understanding.
The following describes in detail a technical solution in a data processing process provided by the embodiment of the present application with reference to the drawings in the embodiment of the present application.
The data processing method provided by the embodiment of the application can be divided into two flows, namely a metadata storage flow and a metadata acquisition flow. The metadata acquisition process may be further divided into a transmission connection establishment process and a metadata modification process. The data processing method can be applied to electronic equipment, and particularly can be applied to the electronic equipment 300 shown in fig. 3. The following describes two flows included in the data processing method.
1. Metadata storage flow
Fig. 4 is a schematic diagram of a metadata storage process according to an embodiment of the present application. As shown in fig. 4, the method is applied to a data transmission system, the data transmission system may be the system shown in fig. 1, and an electronic device applying the data processing method may be node a shown in fig. 1, and the process includes the following steps:
s401: the electronic equipment receives metadata, wherein the metadata comprises first data and second data and is used for establishing transmission connection with other electronic equipment in the data transmission system.
In this embodiment of the present application, the metadata used for establishing the transmission connection may be a QPC, a memory protection page table (MPT), a Physical Buffer List (PBL), and the like, and the metadata includes a plurality of fields. In this case, the data of a part of fields in the metadata may be configured with more values, or the configured values in different metadata are generally different. Also some fields may be configured with fewer values, only a limited number, or may be configured with the same values in different metadata. Based on this, a plurality of fields included in the metadata may be divided into variable fields and non-variable fields according to the number of values to which data of each field included in the metadata may be configured. The number of values to which the data of the variable field can be configured is smaller, the data of the immutable field can be configured is larger than the data of the partial field, the data of the partial field is understood to be immutable, the data of the partial field is understood to be mutable, and the partial field is the variable field.
In one example, the state class data included in the metadata may be configured with more data and the configuration class data included in the metadata may be configured with less data. Thus, the data of the variable field may include state class data included in the metadata, and the data of the non-variable field may include configuration class data included in the metadata.
For example, taking the metadata as QPC as an example, the fields included may be: one or more of a destination queue pair QP number field, a source QP number field, a destination global number field, a source global number field, a packet sequence number currently expected to be received, a packet sequence number currently retransmitted, a status field for current QP, a current retransmit count field, a maximum allowed network hop count field, a maximum transmission byte length field, an acknowledgement ACK timeout field, a queue depth field for a transmit queue, a queue depth field for a receive queue, a transmission priority field, a remote direct memory access RDMA read Enable status field, an RDMA write Enable status field, etc.
Wherein, the data of fields of destination queue pair QP number field, source QP number field, destination global number field, source global number field, currently expecting to receive packet sequence number field, currently retransmitting packet sequence number field, current QP state field, current retransmitting count field and the like are state class data, and the data of these fields can be configuredThe value is more. For example, for the data in the packet sequence number field currently retransmitted, assuming that the preconfigured packet sequence number is determined by 8-bit binary digits, the value of the packet sequence number is 2 8 If possible, the configurable value of the data in the sequence number field of the currently retransmitted packet also has 2 8 In this way, the currently retransmitted packet sequence number has very many configurable values, and in different QPCs, the data packets to be retransmitted may also be different, so that the data in the currently retransmitted packet sequence number field in different QPCs is also different. Accordingly, one or more of a destination queue pair QP number field, a source QP number field, a destination global number field, a source global number field, a packet sequence number field expected to be currently received, a packet sequence number field of current retransmission, a status field of current QP, a current retransmission count field, etc. may be determined as a variable field, and data of the variable field may be determined as first data.
Data in fields such as a maximum allowed network hop count field, a maximum transmission byte length field, an acknowledgement ACK timeout field, a transmit queue depth field, a receive queue depth field, a transmission priority field, a remote direct memory access RDMA read enable state field, an RDMA write enable state field, etc. are generally configuration-type data, and data in these fields can be configured with relatively few values. For example, for the transmission priority field, assuming that 8 priorities are preconfigured, the configurable value of the transmission priority field is 8 possible, the configurable value of the transmission priority field is less, and the configurable value of the transmission priority field may be the same in different QPCs. Accordingly, one or more of a maximum allowed network hop number field, a maximum transmission byte length field, a timeout time field for acknowledgement ACK, a queue depth field of a transmit queue, a queue depth field of a receive queue, a transmission priority field, a remote direct memory access RDMA read enable state field, RDMA write enable state field, etc. may be determined as an immutable field, and data of the immutable field may be determined as second data.
Fig. 5 is a schematic diagram of first data and second data included in a QPC according to an embodiment of the present application. As shown in fig. 5, in the QPC, state class data such as the destination queue pair QP number, the source QP number, the destination global number, the source global number, the currently expected received packet sequence number, the currently retransmitted packet sequence number, the state of the current QP, and the current retransmission count are first data, and in the QPC, configuration class data such as the maximum number of network hops, the maximum transmission byte length, the timeout time for acknowledging the ACK, the queue depth of the send queue, the queue depth of the receive queue, the transmission priority, the remote direct memory access RDMA read enable state, and the RDMA write enable state are allowed to be second data.
In addition, in some implementations, metadata for the establishment of transport connections may be attributed to multiple services. For example, metadata a of a received voice service, metadata B of a received video service, etc. For each service, the variable fields, and/or the non-variable fields in the metadata for that service may be configured.
The variable fields and the non-variable fields configured in the metadata of the multiple services may be completely or partially the same or completely different. It is understood that the first data and the second data included in the metadata of the plurality of services may be completely or partially identical or completely different.
For example, for a service 1, the metadata of the service 1 includes a maximum allowed network hop count field, a maximum transfer byte length field, a remote direct memory access RDMA read enable state field, and an RDMA write enable state field, where the maximum allowed network hop count field and the maximum transfer byte length field are variable fields in the metadata of the service 1, data corresponding to the maximum allowed network hop count field and the maximum transfer byte length field, respectively, are first data included in the metadata of the service 1, the remote direct memory access RDMA read enable state field and the RDMA write enable state field are non-variable fields in the metadata of the service 1, and data corresponding to the remote direct memory access RDMA read enable state field and the RDMA write enable state field, respectively, are second data included in the metadata of the service 1; for the service 2, the metadata of the service 2 also includes a maximum allowed network hop field, a maximum transmission byte length field, a remote direct memory access RDMA read enable state field and an RDMA write enable state field, where the maximum allowed network hop field is a variable field in the metadata of the service 1, the data of the maximum allowed network hop field is first data included in the metadata of the service 2, the maximum transmission byte length field, the remote direct memory access RDMA read enable state field and the RDMA write enable state field are non-variable fields in the metadata of the service 2, and the data corresponding to the maximum transmission byte length field, the remote direct memory access RDMA read enable state field and the RDMA write enable state field are second data included in the metadata of the service 2.
In the metadata storage process, after the electronic device receives the metadata of a certain service, the electronic device may determine the first data and the second data in the metadata of the service through a variable field and/or an immutable field in the preconfigured metadata of each service.
Optionally, the electronic device may acquire the metadata sent by the other device. The other device may be a host device of the electronic device, for example, the electronic device is a network card supporting a RoCE protocol, the notebook computer installed with the network card is a host device of the network card, and the notebook computer may send the metadata to the network card. The other device may also obtain other hardware installed on the host device.
S402: and when the electronic equipment determines that the second data is stored, storing first storage position information of the second data and the first data.
Because the data belonging to the immutable field in the different metadata have a small configurable value and are generally the same, if the data belonging to the immutable field in the received metadata are all stored, that is, the second data contained in the received metadata are all stored, a large amount of storage resources may be wasted for storing a plurality of identical second data, and the storage capacity of the electronic device may be reduced. Therefore, when storing the second data included in the received metadata, it may be determined whether the second data included in the metadata is already stored in the electronic device. If it is determined that the second data included in the metadata is already stored, that is, if it is determined that the second data is already stored, it is determined that a new storage area is no longer allocated to store the second data, and the storage location information (denoted as the first storage location information) where the second data is stored and the first data included in the metadata are directly stored. It will be appreciated that the metadata shares the stored second data with other metadata containing the second data. And subsequently, the electronic equipment and other electronic equipment are established in a transmission connection mode through the stored first data and the second data stored in the storage area corresponding to the first storage position information.
Alternatively, the storage location information may be represented by a pointer. The size of the memory area required to store the pointer is much smaller than the size of the memory area required to store the second data.
In order to improve the storage efficiency and quickly determine whether the second data included in the metadata is already stored, identifiers corresponding to the stored second data may be determined and stored according to the second data included in the metadata received in history, for example, the identifiers may be hash values determined according to the second data and a preset hash algorithm (e.g., SHA-256 algorithm, etc.). When the second data included in the received metadata needs to be stored subsequently, an identifier (denoted as a first identifier) corresponding to the second data included in the metadata may be determined first. And judging whether the first identifier is the same as the stored identifier. It is determined whether the second data included in the metadata has been saved according to the determination result. If the first identifier is determined to be the same as the stored identifier, it is determined that the second data included in the metadata is already stored, and the second data included in the received metadata does not need to be stored. If the first identifier is determined to be different from the stored identifier, it is determined that the second data included in the metadata is not stored, and the second data included in the received metadata needs to be stored.
For example, taking the identifier of the second data as a hash value as an example, after receiving the metadata based on S401, the hash value of the second data included in the metadata is acquired. And judging whether the hash value is the same as the stored hash value. If the hash value is the same as the stored hash value, it is determined that the second data included in the metadata has been stored, and the second data included in the received metadata does not need to be stored. If the hash value is different from the stored hash value, it is determined that the second data included in the metadata is not stored, and the second data included in the received metadata needs to be stored.
In some implementations, the electronic device may generate a feature fingerprint table (fingerprint table) according to the identifier corresponding to each stored second data, and subsequently, when determining whether the second data included in the metadata is already stored, may determine a first identifier of the second data, and match the first identifier with the identifier included in the stored feature fingerprint table. And determining whether the second data included in the metadata is stored according to the matching result.
In one example, in order to quickly acquire the first storage location information of the second data, the corresponding relationship between the identifier of the second data and the first storage location information may be determined and saved according to the stored first storage location information of the second data and the identifier of the stored second data. When it is determined that the same identifier as the first identifier exists based on the above-described embodiment, the first storage location information corresponding to the same identifier may be determined from the correspondence relationship between the identifier of the second data and the first storage location information. The first storage location information is then saved along with the first data contained in the received metadata.
In one possible implementation manner, in order to obtain the second data included in the stored metadata for the convenience of subsequently passing through the first data included in the stored metadata, when it is determined that the second data included in the received metadata is stored based on the above-mentioned embodiment, the storage location information of the second data and the first data are stored in the same storage area. For example, when the hash value of the second data included in the received metadata is determined to be the same as the hash value included in the stored feature fingerprint table, the pointer corresponding to the same hash value is determined according to the correspondence between the stored pointer and the hash value, and the pointer and the first data included in the metadata are stored in the same storage area.
S403: and when the electronic equipment determines that the second data is not stored, storing the second data.
In one possible implementation, based on the above-described embodiment, when determining whether or not the second data included in the received metadata is saved, there may be a case where the second data is not saved. When it is determined that the second data included in the received metadata is not saved, a new storage area may be allocated to store the second data, and then S404 is performed.
S404: the electronic equipment stores the first storage position information of the second data and the first data.
In one example, when the second data included in the received metadata is saved based on S403, the first storage location information of the second data is acquired, and then the first storage location information of the second data and the first data included in the metadata are saved.
For example, taking the first storage location information as the pointer as an example, after the second data included in the received metadata is stored in S403, the pointer corresponding to the first storage location information of the second data is acquired. A new storage area is then allocated in which the pointer and the first data contained in the metadata are saved.
In one possible implementation manner, in order to facilitate subsequent determination of whether to store the second data included in the metadata, the identifier of the second data is acquired and stored each time a new storage area is allocated to store the second data included in the received metadata. For example, after storing the second data included in the received metadata, the hash value of the second data is determined and stored according to the second data and a preset hash algorithm.
Fig. 6 is a schematic view of a scenario of metadata storage according to an embodiment of the present application. As shown in FIG. 6, assume that 100 metadata needs to be stored, which is QPC. When the first QPC is stored, the second data included in the first QPC cannot be stored because other QPCs and the hash value of the stored second data are not stored before the storage of the QPC. And allocating a new storage area for the second data contained in the first QPC, and saving the second data into the corresponding storage area. And meanwhile, a new storage area is also allocated to the first data contained in the first QPC, and in the new storage area, first storage area information of the second data contained in the first QPC and the first data contained in the first QPC are saved. When the second QPC is stored, assuming that the second data included in the second QPC and the first QPC are the same, since the second data included in the second QPC is already stored, a new storage area does not need to be applied for the second data included in the second QPC, and only a new storage area needs to be allocated, and the storage location information of the second data and the first data included in the second QPC are stored in the new storage area. And by analogy, processing is performed on each QPC, and a new storage area is not applied for the second data contained in a QPC until the second data contained in a QPC is not saved.
If there are only 2 different first data, a and b, in the 100 QPCs, only one storage area needs to be allocated for storing a and one storage area for storing b. The first data saved in the two storage areas can satisfy the use of the 100 QPCs, thereby saving a large amount of storage resources.
Before the second data in the received metadata is saved, whether the second data is already saved is judged. If the second data is stored, the second data is not stored again, and only the storage position information of the second data and the first data contained in the metadata are stored; if the second data is not stored, the second data is stored, and then the storage position information of the second data is stored with the first data contained in the metadata, so that the stored second data is different, each second data is stored only once, the metadata containing the same second data shares the stored second data, and the waste of storage resources for storing repeated second data is avoided. In addition, under the condition that the original storage resources are not expanded, the saved storage resources can be used for storing more metadata, the quantity of the metadata which can be stored can be increased by upgrading the firmware, and the data communication performance is further improved.
2. Metadata acquisition flow
Metadata modification flow
When one or more received metadata are stored based on the above-described embodiment, any metadata stored may be subsequently modified.
Fig. 7 is a schematic diagram of a metadata modification process according to an embodiment of the present application, and as shown in fig. 7, the process includes:
s701: the electronic equipment receives a data updating request, wherein the data updating request comprises updating data used for updating the second data.
S702: and the electronic equipment updates the second data according to the data updating request.
In an example, when second data included in a plurality of metadata including the same second data needs to be modified, the electronic device may obtain a data update request, where the data update request may include update data for updating the second data and identification information. Wherein the identification information is used to indicate which of the stored second data is modified. The identification information may be second storage location information of the first data contained in the certain metadata that needs to be modified, or an identification (denoted as a second identification) of the first data contained in the certain metadata that needs to be modified, or the like. And updating the second data required to be modified according to the data updating request.
As a possible implementation manner, taking the identification information as the second storage location information as an example, after receiving the data update request, parsing the data update request, and obtaining the second storage location information and the update data included in the data update request. And then acquiring first storage position information of second data to be modified in a storage area corresponding to the second storage position information. And then updating the second data stored in the storage area corresponding to the first storage position information according to the updating data.
As another possible implementation manner, taking the identification information as the second identification of the first data as an example, after receiving the data update request, parsing the data update request to obtain the second identification of the first data included in the data update request. And determining second storage position information corresponding to the second identifier according to the corresponding relation between the identifier of the first data and the second storage position information which are stored in advance. And then acquiring first storage position information of second data to be modified in a storage area corresponding to the second storage position information. And then updating the second data stored in the storage area corresponding to the first storage position information according to the updating data.
(II) establishing the transmission connection.
Fig. 8 is a schematic diagram of a process for establishing a transmission connection according to an embodiment of the present application, where as shown in fig. 8, the process includes:
s801: the electronic equipment determines second storage position information corresponding to the metadata; the first storage location information is used for saving the first storage location information and the first data.
Based on the above embodiment, after storing the received one or more metadata, any metadata stored may be subsequently read, and the establishment of the transmission connection may be implemented through the first data and the second data included in the read metadata.
In an example, when a transmission connection needs to be established, the electronic device may obtain a data reading request, where the data reading request may carry storage location information (denoted as second storage location information) corresponding to metadata that needs to be read. The second storage location information is used for storing first storage location information of second data included in the metadata and first data included in the metadata.
In another example, for the stored metadata, an identifier of first data included in the metadata may be determined, and then a correspondence relationship between the identifier of the first data and second storage location information of the first data is determined according to the identifier of the first data included in the metadata and the second storage location information of the first data. When the transmission connection needs to be established, the electronic device may obtain a data reading request, where the data reading request may carry a second identifier of the first data included in the metadata to be read. And determining a second storage position corresponding to the second identifier according to the corresponding relation between the stored identifier of the first data and the second storage position information.
S802: and the electronic equipment acquires the first storage position information and the first data according to the second storage position information.
After the second storage location information is acquired based on the above embodiment, the first storage location information of the second data included in the metadata to be read and the first data included in the metadata may be acquired in the storage area corresponding to the second storage location information.
S803: and the electronic equipment acquires the second data according to the first storage position information.
After the first storage location information is acquired based on the above embodiment, the second data included in the metadata to be read may be acquired in the storage area corresponding to the first storage location information.
S804: and the electronic equipment establishes transmission connection with the other electronic equipment through the first data and the second data.
After the first data and the second data are acquired based on the above S802 and S803, corresponding processing is performed according to the first data and the second data, and establishment of transmission connection with other electronic devices in the data transmission system can be achieved.
The following describes the data processing method provided by the present application, taking an electronic device as a network card supporting a RoCE protocol as an example:
in a possible implementation manner, the structure of the network card may be as shown in fig. 9, and the network card 900 includes a bus 910 (not shown in the figure), a processing circuit 920, a memory 930, and a transceiving interface circuit 940. The processing circuit 920, the memory 930, and the transceiver interface circuit 940 communicate with each other via the bus 910.
Wherein the processing circuit 920 includes an engine subcircuit 921 and a resource management subcircuit 922. The engine subcircuit 921 is responsible for the establishment of the transport connection and the specific packet reception and transmission tasks. The resource management subcircuit 922 is responsible for management of the storage resources inside the network card 900, including allocation, release, data format organization, and reading and storage of metadata. The engine sub-circuit 921 needs to acquire the required metadata through the resource management sub-circuit 922 during the establishment of the transmission connection.
The transmit receive interface circuit 940 includes a high-speed interface circuit 941 and a link interface circuit 942. The high-speed interface circuit 941 is connected to a Host device, such as a server (Host server) shown in fig. 9, and performs data communication with the Host device. The link interface circuit 942 enables network connectivity via fiber optics or cable.
The engine sub circuit 921 can acquire a data storage request transmitted from the host apparatus via the high-speed interface circuit 941. The data storage request contains metadata to be stored. The engine sub-circuit 921 parses the acquired data storage request, and acquires metadata included in the data storage request. The engine subcircuit 921 determines first data and second data contained in the metadata, and determines a first identification of the second data. The engine subcircuit 921 generates a resource creation request based on the metadata and the first identification of the second data and sends to the resource management subcircuit 922 via the bus 310.
For convenience of describing the process of the resource management sub-circuit 922 for storing metadata, the description is made in conjunction with the schematic structural diagram of the resource management sub-circuit shown in fig. 10. As shown in fig. 10, the resource management subcircuit 922 includes an analysis subcircuit 1001, a variable allocation subcircuit 1002, and an immutable allocation subcircuit 1003.
After acquiring the resource creation request sent by the engine sub-circuit 921, the analysis sub-circuit 1001 analyzes the resource creation request through the bus 910, and acquires the metadata and the first identifier of the second data included in the metadata. The first identification is matched to the identifications contained in the table of feature fingerprints stored in memory 930. If the analyzing sub-circuit 1001 determines that there is an identifier matching the first identifier in the feature fingerprint table, a storage area is allocated in the memory 930 by the variable allocation sub-circuit 1002, and the first storage location information of the second data and the first data included in the metadata are saved to the storage area by the variable allocation sub-circuit 1002. If the analyzing sub-circuit 1001 determines that there is an identifier matching the first identifier in the fingerprint table, a first storage area is allocated to the second data and the feature value in the memory 930 by the immutable allocation sub-circuit 1003, and the second data and the feature value are stored in the corresponding first storage area by the immutable allocation sub-circuit 1003, that is, the second data is stored in the corresponding first storage area, and the feature value is stored in another first storage area. Then, a second storage area is allocated in the memory 930 by the variable allocation sub-circuit 1002, and the first storage location information of the second data and the first data are saved to the second storage area by the variable allocation sub-circuit 1002.
Wherein the variable allocation subcircuit 1002 and the non-variable allocation subcircuit 1003 may be responsible for managing different storage areas in the memory 930. For example, the variable allocation sub-circuit 1002 is responsible for managing a storage area for storing the first data, and the immutable allocation sub-circuit 1003 is responsible for managing a storage area for storing the first data and the characteristic value.
In one example, the engine sub-circuit 921 may also obtain a data update request sent by the host device through the high-speed interface circuit 941. The data update request may include update data for updating the second data and second storage location information of the first data included in the metadata to be modified. The engine subcircuit 921 sends the data update request to the resource management subcircuit 922 through the bus 310.
The analysis sub-circuit 1001 obtains the data update request sent by the engine sub-circuit 921 through the bus 910, and then analyzes the data update request to obtain the update data and the second storage location information. The analysis sub-circuit 1001 acquires the first storage location information of the second data to be modified in the storage area corresponding to the second storage location information. Then, the analysis sub-circuit 1001 updates the second data stored in the storage area corresponding to the first storage location information, based on the update data.
In one example, the engine sub-circuit 921 may also obtain a data read request sent by the host device through the high-speed interface circuit 941. The data read request may include second storage location information of the first data included in the required metadata. The engine subcircuit 921 sends the data read request to the resource management subcircuit 922 through the bus 310.
After acquiring the data read request sent by the engine sub-circuit 921 through the bus 910, the analysis sub-circuit 1001 analyzes the data read request, and acquires the update data and the second storage location information. The analysis sub-circuit 1001 acquires, in a storage area corresponding to the second storage location information, first storage location information of second data included in the required metadata and first data included in the metadata. Then, the analysis sub-circuit 1001 acquires second data included in the required metadata in a storage area corresponding to the first storage location information. The analysis sub-circuit 1001 transmits the acquired first data and second data to the engine sub-circuit 921 via the bus 310. The engine sub-circuit 921 establishes transmission connection with the other electronic device through the first data and the second data.
Fig. 11 is a schematic diagram of a process of the resource management sub-circuit storing metadata according to an embodiment of the present application.
S1101: after acquiring the resource creation request sent by the engine sub-circuit 921 through the bus 910, the analysis sub-circuit 1001 analyzes the resource creation request, and acquires the metadata and the first identifier of the second data included in the metadata.
S1102: the analysis subcircuit 1001 matches the first identification with an identification contained in a table of feature fingerprints stored in the memory 930.
S1103: if the analysis subcircuit 1001 determines that there is an identity in the feature fingerprint table that matches the first identity, a memory area is allocated in the memory 930 by the variable allocation subcircuit 1002.
S1104: the first storage location information of the second data and the first data included in the metadata are saved to the storage area by the variable allocation sub-circuit 1002.
Fig. 12 is a schematic diagram of another process of the resource management sub-circuit 922 according to an embodiment of the present application for storing metadata.
S1201: after acquiring the resource creation request sent by the engine sub-circuit 921, the analysis sub-circuit 1001 analyzes the resource creation request through the bus 910, and acquires the metadata and the first identifier of the second data included in the metadata.
S1202: the analysis subcircuit 1001 matches the first identification with an identification contained in a table of feature fingerprints stored in the memory 930.
S1203: if the analyzing sub-circuit 1001 determines that there is an identity in the feature fingerprint table that matches the first identity, a first memory area is allocated in the memory 930 for the second data and the feature value, respectively, by the immutable allocation sub-circuit 1003.
S1204: the second data and the characteristic value are saved to the corresponding first storage areas, respectively, by the immutable allocation subcircuit 1003.
S1205: a second memory region is allocated in memory 930 by variable allocation subcircuit 1002.
S1206: the first storage location information of the second data and the first data are saved to a second storage area by the variable allocation sub-circuit 1002.
The above introduces the scheme provided by the present application mainly from the perspective of the method flow. It is understood that, in order to implement the above functions, the apparatus may include a corresponding hardware structure and/or software module for performing each function. Those of skill in the art will readily appreciate that the various illustrative elements and algorithm steps described in connection with the embodiments disclosed herein may be implemented as hardware or combinations of hardware and computer software. Whether a function is performed in hardware or computer software drives hardware depends upon the particular application and design constraints imposed on the solution. Skilled artisans may implement the described functionality in varying ways for each particular application, but such implementation decisions should not be interpreted as causing a departure from the scope of the present application.
In the case of an integrated unit, fig. 13 is a possible exemplary block diagram of a data processing apparatus according to an embodiment of the present application. As shown in fig. 13, the apparatus 1300 includes a receiving unit 1301, a processing unit 1302, and a storage unit 1303.
The receiving unit 1301 is configured to receive metadata, where the metadata includes first data and second data, and is used to establish a transmission connection with another data processing apparatus in the data transmission system;
the processing unit 1302 is further configured to, when it is determined that the second data is stored in the storage unit 1303, store first storage location information of the second data and the first data in the storage unit 1303; and establishing transmission connection with the other data processing device through the first data and the second data.
In a possible implementation, the first data is data in the metadata belonging to a variable field, and the data in the variable field comprises state class data in the metadata;
the second data is data belonging to an immutable field in the metadata, and the data of the immutable field comprises configuration class data in the metadata.
In one possible embodiment, the configuration class data includes one or more of the following:
maximum number of network hops allowed, maximum length of transmission bytes, timeout time for acknowledge ACK, queue depth of send queue, queue depth of receive queue, transmission priority, remote direct memory access RDMA read enable state, RDMA write enable state.
In one possible embodiment, the state class data includes one or more of:
the destination queue pair QP number, source QP number, destination global number, source global number, currently expected received packet sequence number, currently retransmitted packet sequence number, current QP state, and current retransmission count.
In a possible implementation manner, the processing unit 1302 is further configured to, when it is determined that the second data is not stored in the storage unit 1303, store the second data in the storage unit 1303; and saving the first storage location information of the second data and the first data to the storage unit 1303.
In a possible implementation manner, the receiving unit 1301 is further configured to receive a data update request, where the data update request includes update data used for updating the second data;
the processing unit 1302 is further configured to update the second data according to the data update request.
In a possible implementation manner, the processing unit 1302 is further configured to determine, through the first data and the second data, second storage location information corresponding to the metadata before establishing a transmission connection with the other data processing apparatus; the second storage location information is used for saving the first storage location information and the first data; acquiring the first storage location information and the first data from the storage unit 1303 according to the second storage location information; and acquiring the second data from the storage unit 1303 according to the first storage location information.
In a possible embodiment, the processing unit 1302 of the apparatus comprises an analysis subunit and a variable allocation subunit;
the variable allocation subunit is configured to, when the analysis subunit determines that the second data is stored in the storage unit 1303, allocate a storage area in the storage unit 1303 for the first data, and store first storage location information of the second data and the first data in the storage unit 1303.
In a possible implementation, the processing unit 1302 of the apparatus comprises: an immutable assignable subunit;
the immutable allocation subunit is configured to, when the analysis subunit determines that the second data is not stored in the storage unit 1303, allocate a first storage area in the storage unit 1303 for the second data; and saving the second data to the first storage area;
the variable allocation subunit is further configured to allocate a second storage area in the storage unit 1303 for the first storage location information of the second data and the first data; and saving the first storage location information of the second data and the first data to the second storage area.
In a possible implementation manner, the analyzing subunit is further configured to update the second data according to the data update request received by the receiving unit 1301.
In a possible implementation manner, the analysis subunit is further configured to determine second storage location information corresponding to the metadata; the second storage location information is used for saving the first storage location information and the first data; acquiring the first storage location information and the first data from the storage unit 1303 according to the second storage location information; and acquiring the second data from the storage unit 1303 according to the first storage location information;
the processing unit 1302 further comprises: an engine subunit;
and the engine subunit is used for establishing transmission connection with the other data processing devices through the first data and the second data.
It should be noted that the division of the unit in the embodiment of the present application is schematic, and is only a logic function division, and there may be another division manner in actual implementation. The functional units in the embodiments of the present application may be integrated into one processing unit, or each unit may exist alone physically, or two or more units are integrated into one unit. The integrated unit may be implemented in the form of hardware, or may also be implemented in the form of a software functional unit.
As another form of the present embodiment, there is provided a computer-readable storage medium having stored thereon instructions that, when executed, may perform the data processing method in the above-described method embodiment.
As another form of the present embodiment, there is provided a computer program product containing instructions, the computer program product including instructions, which when executed, can perform the data processing method in the above method embodiment.
As another form of this embodiment, a chip is provided, and when the chip runs, the data processing method in the foregoing method embodiment may be executed.
As will be appreciated by one skilled in the art, embodiments of the present application may be provided as a method, system, or computer program product. Accordingly, the present application may take the form of an entirely hardware embodiment, an entirely software embodiment or an embodiment combining software and hardware aspects. Furthermore, the present application may take the form of a computer program product embodied on one or more computer-usable storage media (including, but not limited to, disk storage, CD-ROM, optical storage, and the like) having computer-usable program code embodied therein.
The present application is described with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of the application. It will be understood that each flow and/or block of the flow diagrams and/or block diagrams, and combinations of flows and/or blocks in the flow diagrams and/or block diagrams, can be implemented by computer program instructions. These computer program instructions may be provided to a processor of a general purpose computer, special purpose computer, embedded processor, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions specified in the flowchart flow or flows and/or block diagram block or blocks.
These computer program instructions may also be stored in a computer-readable memory that can direct a computer or other programmable data processing apparatus to function in a particular manner, such that the instructions stored in the computer-readable memory produce an article of manufacture including instruction means which implement the function specified in the flowchart flow or flows and/or block diagram block or blocks.
These computer program instructions may also be loaded onto a computer or other programmable data processing apparatus to cause a series of operational steps to be performed on the computer or other programmable apparatus to produce a computer implemented process such that the instructions which execute on the computer or other programmable apparatus provide steps for implementing the functions specified in the flowchart flow or flows and/or block diagram block or blocks.
While the preferred embodiments of the present application have been described, additional variations and modifications in those embodiments may occur to those skilled in the art once they learn of the basic inventive concepts. Therefore, it is intended that the appended claims be interpreted as including preferred embodiments and all alterations and modifications as fall within the scope of the application.
It will be apparent to those skilled in the art that various changes and modifications may be made in the embodiments of the present application without departing from the spirit and scope of the embodiments of the present application. Thus, if such modifications and variations of the embodiments of the present application fall within the scope of the claims of the present application and their equivalents, the present application is also intended to encompass such modifications and variations.

Claims (18)

1. A data processing apparatus, wherein the apparatus is applied to a data transmission system, the apparatus comprising: the device comprises a receiving unit, a processing unit and a storage unit;
the receiving unit is used for receiving metadata, wherein the metadata comprises first data and second data and is used for establishing transmission connection with other data processing devices in the data transmission system;
the processing unit is further used for saving first storage position information of the second data and the first data to the storage unit when the second data are determined to be saved in the storage unit; and establishing transmission connection with the other data processing device through the first data and the second data.
2. The apparatus of claim 1, wherein the first data is data in the metadata belonging to a variable field, the data of the variable field including state class data in the metadata;
the second data is data belonging to an immutable field in the metadata, and the data of the immutable field comprises configuration class data in the metadata.
3. The apparatus of claim 2, wherein the configuration class data comprises one or more of:
maximum number of network hops allowed, maximum length of transmission bytes, timeout time for acknowledge ACK, queue depth of send queue, queue depth of receive queue, transmission priority, remote direct memory access RDMA read enable state, RDMA write enable state.
4. The apparatus of claim 2, wherein the state class data comprises one or more of:
the destination queue pair QP number, source QP number, destination global number, source global number, packet sequence number currently expected to be received, packet sequence number currently retransmitted, status of current QP, current retransmission count.
5. The apparatus according to any of claims 1-4, wherein the processing unit is further configured to save the second data to the storage unit when it is determined that the second data is not saved in the storage unit; and saving the first storage location information of the second data and the first data to the storage unit.
6. The apparatus according to any one of claims 1-5, wherein the receiving unit is further configured to receive a data update request, the data update request including update data for updating the second data;
the processing unit is further configured to update the second data according to the data update request.
7. The apparatus according to any of claims 1-6, wherein the processing unit is further configured to determine, through the first data and the second data, second storage location information corresponding to the metadata before establishing a transmission connection with the other data processing apparatus; the second storage position information is used for storing the first storage position information and the first data; acquiring the first storage position information and the first data from the storage unit according to the second storage position information; and acquiring the second data from the storage unit according to the first storage position information.
8. A data processing method, wherein the method is applied to a data transmission system, and the method comprises:
receiving metadata, wherein the metadata comprises first data and second data and is used for establishing transmission connection with other electronic equipment in the data transmission system;
when the second data are determined to be stored, storing first storage position information of the second data and the first data;
and establishing transmission connection with the other electronic equipment through the first data and the second data.
9. The method of claim 8, wherein the first data is data in the metadata that belongs to a variable field; the data of the variable field comprises state class data in the metadata;
the second data is data belonging to an immutable field in the metadata; the data of the immutable field includes configuration class data in the metadata.
10. The method of claim 8, wherein the method further comprises:
when the second data is determined not to be stored, storing the second data;
and saving the storage position information of the second data and the first data.
11. The method of any one of claims 8-10, further comprising:
receiving a data update request, wherein the data update request comprises update data for updating the second data;
and updating the second data according to the data updating request.
12. The method of any of claims 8-11, wherein prior to the establishing of the transmission connection with the other electronic device via the first data and the second data, the method further comprises:
determining second storage position information corresponding to the metadata; the first storage position information is used for storing the first storage position information and the first data;
acquiring the first storage position information and the first data according to the second storage position information;
and acquiring the second data according to the first storage position information.
13. An electronic device, characterized in that the electronic device comprises: the device comprises a processing circuit, a receiving interface circuit and a memory;
the receiving interface circuit is used for receiving metadata, wherein the metadata comprises first data and second data and is used for establishing transmission connection with other electronic equipment;
the processing circuit is used for saving first storage position information of the second data and the first data to the memory when the second data are determined to be saved in the memory; and establishing transmission connection with other electronic equipment through the first data and the second data.
14. The electronic device of claim 13, wherein the first data is data in the metadata that belongs to a variable field; the data of the variable field comprises state class data in the metadata;
the second data is data belonging to an immutable field in the metadata; the data of the immutable field includes configuration class data in the metadata.
15. The electronic device of claim 13 or 14, wherein the processing circuit is further configured to save the second data to the memory when it is determined that the second data is not saved in the memory; and saving the first storage location information of the second data and the first data to the memory.
16. The electronic device of any of claims 13-15, wherein the receive interface circuitry is further to receive a data update request, the data update request including update data for updating the second data;
the processing circuit is further configured to update the second data according to the data update request.
17. The electronic device of any of claims 13-16, wherein the processing circuit is further configured to determine second storage location information corresponding to the metadata prior to establishing a transmission connection with another electronic device via the first data and the second data; wherein the second storage location information is used for storing the first storage location information and the first data; acquiring the first storage position information and the first data from the storage according to the second storage position information; and acquiring the second data from the memory according to the first storage position information.
18. A computer-readable storage medium, characterized in that the computer-readable storage medium is for storing a computer program which, when run on an electronic device, causes the electronic device to perform the method of any of claims 8-12.
CN202110520801.0A 2021-05-13 2021-05-13 Data processing method and device and electronic equipment Pending CN115344192A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110520801.0A CN115344192A (en) 2021-05-13 2021-05-13 Data processing method and device and electronic equipment

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110520801.0A CN115344192A (en) 2021-05-13 2021-05-13 Data processing method and device and electronic equipment

Publications (1)

Publication Number Publication Date
CN115344192A true CN115344192A (en) 2022-11-15

Family

ID=83947164

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110520801.0A Pending CN115344192A (en) 2021-05-13 2021-05-13 Data processing method and device and electronic equipment

Country Status (1)

Country Link
CN (1) CN115344192A (en)

Similar Documents

Publication Publication Date Title
CN110402568B (en) Communication method and device
US8381230B2 (en) Message passing with queues and channels
US20070211741A1 (en) Receive Queue Descriptor Pool
US20040117368A1 (en) Transmitting acknowledgements using direct memory access
CN111431757B (en) Virtual network flow acquisition method and device
EP2657836A1 (en) Acceleration method, device and system for co-processing
CN114780458A (en) Data processing method and storage system
WO2020019743A1 (en) Traffic control method and device
CN110119304B (en) Interrupt processing method and device and server
CN109857545B (en) Data transmission method and device
WO2004019165A2 (en) Method and system for tcp/ip using generic buffers for non-posting tcp applications
CN115129621B (en) Memory management method, device, medium and memory management module
EP3077914B1 (en) System and method for managing and supporting virtual host bus adaptor (vhba) over infiniband (ib) and for supporting efficient buffer usage with a single external memory interface
CN112698959A (en) Multi-core communication method and device
US8543722B2 (en) Message passing with queues and channels
CN116204487A (en) Remote data access method and device
US8041902B2 (en) Direct memory move of multiple buffers between logical partitions
CN115344192A (en) Data processing method and device and electronic equipment
CN115643318A (en) Command execution method, device, equipment and computer readable storage medium
US10270715B2 (en) High performance network I/O in a virtualized environment
CN111711971B (en) Data transmission method and device, storage medium and electronic equipment
US20040240388A1 (en) System and method for dynamic assignment of timers in a network transport engine
US9182941B2 (en) Flow control with buffer reclamation
CN115269174A (en) Data transmission method, data processing method and related products
CN112311695A (en) On-chip bandwidth dynamic allocation method and system

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination