Data transmission method, system and device and storage medium

CN120956743APending Publication Date: 2025-11-14JINAN INSPUR DATA TECH CO LTD
View PDF 0 Cites 1 Cited by

Patent Information

Application Number
CN202510930296.5
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2025-07-07
Publication Date
2025-11-14

Smart Images

  • Figure CN120956743A_ABST
    Figure CN120956743A_ABST
Patent Text Reader

Abstract

The invention discloses a data transmission method, system and device and a storage medium, is applied to a host end in a non-uniform memory access architecture, and relates to the technical field of data transmission, and the method comprises the steps that a target path mapping table from a target end is received and analyzed, and a plurality of monitoring entrances are obtained; based on the target path mapping table, establishing a plurality of connection paths corresponding to the plurality of monitoring entrances in sequence, and generating a connection pool; in response to a data read-write request generated by the host end for a target end, determining a target processor domain corresponding to the target storage unit according to the target path mapping table, and selecting a connection path associated with the target processor domain from the connection pool as a current read-write path; and monitoring and judging whether the current read-write path is available or not, and if not, reselecting. The data transmission method can be combined with NUMA architecture perception, path state monitoring and a policy-driven selection mechanism to at least solve the problems that in the prior art, path selection lacks topology perception and multiple network cards are difficult to aggregate and use.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the field of data transmission technology, and in particular to a data transmission method, system, device and storage medium applied in a non-uniform memory access architecture. Background Technology

[0002] With the development of high-performance computing and distributed storage, Non-uniform Memory Access (NUMA) architecture is widely used in multiprocessor systems to improve memory access efficiency. At the same time, NVMe overRoCE, as an emerging network storage technology, has become the mainstream storage network protocol in data centers due to its advantages such as low latency, high throughput, and scalability. However, deploying NVMe overRoCE under the NUMA architecture still faces many technical bottlenecks.

[0003] Specifically, existing NVMe over RoCE path configurations typically ignore the NUMA topology association between the host and the target, resulting in high cross-node communication latency and low system resource utilization. At the same time, RoCE paths are mostly statically bound, lacking health status monitoring and fault switching mechanisms. In addition, existing multi-NIC port logical aggregation solutions are limited to within a single NIC, making it difficult to achieve bandwidth aggregation and fault tolerance protection. Summary of the Invention

[0004] This application provides a data transmission method that combines NUMA architecture awareness, path state monitoring, and policy-driven selection mechanisms to at least solve the problems of lack of topology awareness, lack of dynamic switching capability, and difficulty in aggregating and using multiple RoCE network cards in existing technologies.

[0005] This application provides a data transmission method applied to the host side in a non-consistent memory access architecture, including:

[0006] Receive and parse the target path mapping table from the target end to obtain multiple listening entry points;

[0007] Based on the target path mapping table, multiple connection paths corresponding to multiple listening entry points are established sequentially to generate a connection pool;

[0008] In response to a data read / write request generated by the host to the target, the target processor domain corresponding to the target storage unit is determined according to the target path mapping table, and the connection path associated with the target processor domain is selected from the connection pool as the current read / write path.

[0009] Periodically monitor and determine whether the current read / write path is available. If it is, perform data read / write interaction through the current read / write path. Otherwise, based on the preset path selection strategy, select a backup path from the connection pool to replace the current read / write path.

[0010] This application also provides a data transfer method, applied to a target end in a non-uniform memory access architecture, including:

[0011] Set up a target subsystem that provides storage access interfaces to the outside world, and mount multiple storage units to the target subsystem based on the connection information between the storage units and the processor domain;

[0012] Identify the network interface device to which the processor domain belongs and obtain the network resource information of the network interface device;

[0013] Based on network resource information, configure network addresses and port numbers for the network interfaces of network interface devices, and set up listening entry points based on network addresses and port numbers;

[0014] Register multiple listening entries to the target subsystem so that the target subsystem can construct a target path mapping table and push it to the host based on the mapping relationship between the registered listening entries, the mounted storage units and the corresponding processor domains;

[0015] In response to receiving a data read / write request from the host, the request is parsed to determine the storage unit the host requests to read / write and the host access point. The data read / write request is then forwarded to the corresponding storage unit through the network interface corresponding to the host access point.

[0016] This application also provides a data transmission system, including a host end and a target end, wherein the host end and the target end are deployed in a computing environment with a non-uniform memory access architecture, wherein:

[0017] The target end includes:

[0018] The subsystem configuration module is used to set the target subsystem that provides storage access interfaces to the outside world, and to mount multiple storage units to the target subsystem according to the connection relationship between storage units and processor domains;

[0019] The resource identification module is used to identify the network interface device to which the processor domain belongs and to obtain the network resource information of the network interface device.

[0020] The monitoring configuration module is used to configure the network address and port number of the network interface device based on network resource information, and to set the monitoring entry point based on the network address and port number.

[0021] The monitoring registration module is used to register multiple monitoring entries to the target subsystem;

[0022] The request forwarding module is used to respond to a data read / write request sent by the host, parse the data read / write request, determine the host request to read / write storage unit and host access entry, and forward the data read / write request to the corresponding storage unit through the network interface corresponding to the host access entry.

[0023] The target subsystem module is used to construct a target path mapping table and push it to the host system based on the mapping relationship between the registered listening entry points, the mounted storage units and the corresponding processor domains.

[0024] The host side includes:

[0025] The path receiving module, connected to the target subsystem module, is used to receive and parse the target path mapping table;

[0026] The connection building module is used to create multiple connection paths corresponding to multiple listening entry points in sequence based on the target path mapping table, and generate a connection pool.

[0027] The path selection module is used to respond to the host generating a data read / write request to the target end. It determines the target processor domain corresponding to the target storage unit according to the target path mapping table, and selects the connection path associated with the target processor domain from the connection pool as the current read / write path.

[0028] The request sending and path replacement module is used to periodically monitor and determine whether the current read / write path is available. If it is, data read / write interaction is performed through the current read / write path. Otherwise, based on the preset path selection strategy, a backup path is selected from the connection pool to replace the current read / write path.

[0029] This application also provides an electronic device, including: a memory for storing a computer program; and a processor for implementing the steps of any of the above-described data transmission methods when executing the computer program.

[0030] This application also provides a computer-readable storage medium storing a computer program, wherein the computer program, when executed by a processor, implements the steps of any of the above-described data transmission methods.

[0031] This application achieves several improvements. Firstly, by constructing a target path mapping table on the target side, the correspondence between storage units, processor domains, and network interfaces is clearly defined. This enables awareness of the NUMA architecture and alignment of path configuration with the NUMA physical topology. Secondly, the host side can prioritize communication paths within the same NUMA domain as the target storage unit, significantly reducing memory access latency and PCIe cross-node communication overhead, thus optimizing data path performance from a system architecture perspective. Thirdly, by maintaining a connection pool and path mapping table in user space on the host side, multi-path aggregation across RoCE network cards is achieved without requiring underlying hardware bond support or kernel drivers. The system expands upon existing hardware architecture to achieve linear expansion of transmission bandwidth and enhances path redundancy, thereby improving fault tolerance in single-path failure scenarios. Furthermore, by periodically monitoring path latency, connection status, and error codes, and combining path health status with a policy engine to achieve dynamic switching of read and write paths, the system avoids single-path bottlenecks or unreachable states, thus enhancing service continuity and system stability. In addition, since path maintenance, switching, and connection management are entirely based on user space, it has no dependency on the RoCEv2 protocol stack and drivers, and requires no switching architecture coordination, thus exhibiting higher versatility and portability. Attached Figure Description

[0032] To more clearly illustrate the embodiments of this application, the accompanying drawings used in the embodiments will be briefly introduced below. Obviously, the drawings described below are only some embodiments of this application. For those skilled in the art, other drawings can be obtained based on these drawings without creative effort.

[0033] Figure 1 A schematic diagram of an application environment provided for an embodiment of this application;

[0034] Figure 2 A flowchart illustrating a data transmission method applied to a host side, as provided in an embodiment of this application;

[0035] Figure 3 A flowchart illustrating a data transmission method applied to a target end, as provided in an embodiment of this application;

[0036] Figure 4 A connection pool architecture diagram provided for an embodiment of this application;

[0037] Figure 5 This application provides a logic diagram for determining whether a current path is available.

[0038] Figure 6 A path selection logic diagram provided for an embodiment of this application;

[0039] Figure 7This is a target-side processor domain topology diagram provided in an embodiment of this application;

[0040] Figure 8 A data transmission system structure block diagram provided in this application embodiment;

[0041] Figure 9 This is a schematic diagram of an electronic device structure provided in an embodiment of this application. Detailed Implementation

[0042] The technical solutions of the embodiments of this application will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only some embodiments of this application, and not all embodiments. Based on the embodiments of this application, all other embodiments obtained by those of ordinary skill in the art without creative effort are within the protection scope of this application.

[0043] It should be noted that, in the description of this application, the terms "comprising," "including," or any other variations thereof are intended to cover non-exclusive inclusion, such that a process, method, article, or apparatus that comprises a list of elements includes not only those elements but also other elements not expressly listed, or elements inherent to such a process, method, article, or apparatus. The terms "first," "second," etc., in this application are used to distinguish similar objects and are not used to describe a specific order or sequence.

[0044] To enable those skilled in the art to better understand the present application, the present application will be further described in detail below with reference to the accompanying drawings and specific embodiments.

[0045] The data transmission method provided in this application can be applied to, for example... Figure 1 This illustrates a high-performance data communication scenario under a Non-Non-Uniform Memory Access (NUMA) architecture, particularly in an NVMe over RoCE network environment. Host 101 communicates with target 102 via the network. Target 102 constructs a target path mapping table, explicitly describing the topological relationships between storage units, processor domains, and network interfaces, and pushes this table to host 101. This allows host 101 to prioritize the physically optimal transmission path based on NUMA-aware information when initiating data requests, reducing cross-node access overhead.

[0046] Based on the received path mapping information, the host 101 constructs a connection pool and maintains the path status in user space, supporting multi-path aggregation and dynamic switching. It does not rely on the underlying Bond mechanism or kernel extensions, achieving higher bandwidth utilization and stronger path redundancy. Furthermore, through periodic monitoring of communication latency, error status codes, and connection availability, it can intelligently switch over when path performance degrades or fails, ensuring high availability and service continuity. The host 101 can be, but is not limited to, a high-performance computing server, a multi-processor workstation, or a cloud computing node, or other computing device with a NUMA architecture. The target 102 can be, but is not limited to, a storage server, NVMe storage device, or other storage subsystem with multi-processor domains and network interfaces in a distributed storage system.

[0047] Embodiments of this application provide a data transmission method, applied to Figure 1 The Non-Non-Uniform Memory Access (NUMA) architecture shown is completed collaboratively by the host and target sides, including:

[0048] Based on the mapping relationship between storage units, processor domains and network interfaces, the target end sets up multiple listening entry points, constructs a target path mapping table and pushes it to the host end to clarify the topological correspondence between storage units and network resources;

[0049] The host receives and parses the target path mapping table, establishes communication connections with multiple listening entries, builds a processor domain-aware connection pool, and realizes multi-path preparation and management.

[0050] In response to a data request initiated by the host, based on the target path mapping table, the connection path associated with the target processor domain corresponding to the target storage unit is preferably selected as the current read / write path, and the data request is sent to the target end through the current read / write path;

[0051] In response to the target receiving a data request, the data request is forwarded to the target storage unit through the network interface associated with the target processor domain, and information is fed back to the host through the original path of the received request.

[0052] Specifically, this embodiment breaks down the barriers between NUMA physical topology, communication path configuration, and user-space connection scheduling. While maintaining the existing hardware architecture, it significantly reduces cross-NUMA access latency and RoCE cross-node communication overhead, improves the system's data transmission bandwidth, path redundancy, and service continuity, and has good versatility, scalability, and high availability. It is suitable for scenarios that are sensitive to data path performance, such as large-scale distributed computing, storage, or AI inference.

[0053] like Figure 2 As shown, embodiments of this application provide a data transmission method, applied to... Figure 1The host terminal 101 shown includes:

[0054] Step 201: Receive and parse the target path mapping table from the target end to obtain multiple listening entry points;

[0055] Step 202: Based on the target path mapping table, establish multiple connection paths corresponding to multiple listening entry points in sequence to generate a connection pool;

[0056] Step 203: In response to the host generating a data read / write request to the target, the target processor domain corresponding to the target storage unit is determined according to the target path mapping table, and the connection path associated with the target processor domain is selected from the connection pool as the current read / write path.

[0057] Step 204: Periodically monitor and determine whether the current read / write path is available. If it is, perform data read / write interaction through the current read / write path. Otherwise, based on the preset path selection strategy, select a backup path from the connection pool to replace the current read / write path.

[0058] It is worth noting that the processor domain, also known as the NUMA domain, is a set of independent processing units divided from the entire computing platform under the NUMA architecture. Each unit includes a set of CPU cores, local memory, and connected I / O devices (such as network cards, PCIe devices, etc.).

[0059] Since cross-domain access suffers from lower latency and bandwidth than local access, recognizing and prioritizing communication paths located within the same processor domain (NUMA domain) as the target resource can significantly improve data access performance, reduce system communication overhead, and thus greatly optimize data transmission efficiency in NUMA architecture.

[0060] Specifically, the data transmission method provided in this application obtains a target path mapping table, enabling the host to pre-perceive the correspondence between target storage resources and network topology, thus aligning path configuration with the NUMA physical topology. Simultaneously, by combining a connection pool mechanism and a dynamic path selection strategy, it achieves processor domain-aware data read / write path selection under the NUMA architecture, prioritizing connection paths within the same NUMA domain, effectively reducing cross-node access latency and PCIe communication overhead. Furthermore, in conjunction with a path availability monitoring and replacement mechanism, it enhances the system's adaptability under link anomalies or congestion conditions, improving data transmission reliability and bandwidth utilization.

[0061] In one embodiment, based on a target path mapping table, multiple connection paths corresponding to multiple listening entry points are sequentially established to generate a connection pool, including:

[0062] Based on the remote direct memory access protocol, multiple communication queue pairs are established for multiple listening entry points, and each communication queue pair includes at least a sending queue and a receiving queue.

[0063] Multiple communication queues are integrated and encapsulated, and then set up in user space.

[0064] It is worth noting that Remote Direct Memory Access Protocol (RDMA) is a high-performance communication protocol that allows computers to bypass the operating system and directly read and write data between each other's memory. It has the advantages of zero copy, low latency, and low CPU overhead, and is widely used in high-performance computing, database acceleration, distributed storage, and other fields. In practical applications, RDMA is usually implemented using specific network hardware, such as InfiniBand network cards, RoCE (RDMA over Converged Ethernet) network cards, or iWARP network cards. Therefore, the network interface device used in this embodiment is preferably a RoCE NIC, i.e., a RoCE network card.

[0065] Specifically, this embodiment establishes a communication queue pair for each listening entry point based on the RDMA protocol, enabling zero-copy, low-latency data transmission. Simultaneously, the pre-built connection pool can reuse established RDMA connection resources, reducing the overhead of connection establishment and teardown, effectively improving transmission efficiency and reducing CPU load, thus enhancing the system's throughput in high-concurrency scenarios. Furthermore, the connection pool is set in user space, requiring no underlying hardware bond support or kernel extensions, improving the flexibility and efficiency of data transmission and ensuring the stability and high throughput of multi-path concurrent access.

[0066] In one embodiment, such as Figure 4 As shown, based on the target path mapping table, the target processor domain where the target storage unit is located is determined, and the connection path corresponding to the target processor domain is selected from the connection pool as the current read / write path, including:

[0067] Based on the target storage unit identifier, query the target path mapping table to obtain the target processor domain where the target storage unit is located, and further obtain the target network interface device identifier associated with the target processor domain;

[0068] Based on the target network interface device identifier, determine the corresponding target listening entry, and select the target connection path corresponding to the target listening entry from the connection pool as the current read / write path.

[0069] Specifically, in this embodiment, by querying the path mapping table based on the target storage unit identifier and further obtaining the target processor domain and its corresponding network interface device, the path selection can achieve fine awareness of NUMA topology, thereby prioritizing the selection of paths in the same NUMA domain as the target storage unit, minimizing remote memory access and cross-node communication latency, optimizing the path selection strategy, improving the response speed of data reading and writing and the efficiency of system resource utilization, and is especially suitable for large-scale distributed environments.

[0070] In one embodiment, such as Figure 5 As shown, the system periodically monitors and determines whether the current read / write path is available. If so, it performs data read / write interactions through the current read / write path, including:

[0071] Send data read / write requests to the target end through the current read / write path, and receive feedback information from the target end;

[0072] Continuously monitor the feedback information from the target end. If a preset error status code is found in the target feedback information, it is determined that the current read / write path is unavailable. The preset error status code may include, but is not limited to, the NVMe status code.

[0073] Based on a preset heartbeat period, preferably 100ms, heartbeat information is sent through the current read / write path. The heartbeat information includes a heartbeat identifier and a timestamp. If the host does not receive a response within a preset abnormal threshold, the current read / write path is determined to be unavailable. The preset abnormal threshold is preferably set to 3 consecutive heartbeat periods, i.e., 300ms.

[0074] The optimal period is 500ms. The average round-trip time of requests in the current read and write path is measured periodically. If the average round-trip time of requests exceeds the preset available threshold, the current read and write path is determined to be unavailable. The preset available threshold is optimally set to 2000μs.

[0075] If the target feedback information does not contain a preset error status code, and the host receives the response information within a preset exception threshold, and the average request round-trip time is lower than a preset availability threshold, then the current read / write path is determined to be available.

[0076] Specifically, this embodiment employs multi-dimensional path availability monitoring. By combining target-end feedback status codes, heartbeat detection, and round-trip time measurement, path availability is determined, ensuring timely updates to the health status of read and write paths. By promptly detecting abnormal paths and triggering switching, single-path failures are prevented from impacting system performance, thus improving transmission stability and service continuity.

[0077] In one embodiment, in response to the average round-trip time of requests in the current read-write path being less than a preset availability threshold and greater than a preset slow connection judgment threshold, the current read-write path is determined to be available and marked as a slow connection, wherein the preset slow connection judgment threshold is preferably set to 1000μs;

[0078] If the current read / write path is a slow connection, the data interaction traffic of the current read / write path will be gradually reduced based on a gradual weight reduction strategy and timeout determination mechanism until it is determined to be unavailable and a path replacement is triggered.

[0079] In one embodiment, in response to the current read / write path being a slow connection, the data interaction traffic on the current read / write path is gradually reduced based on a progressive weight reduction strategy and a timeout determination mechanism until it is determined to be unavailable and a path replacement is triggered, including:

[0080] If the average round-trip time of the current read / write path is greater than the preset slow connection judgment threshold at least once, the measurement time is recorded and set as the slow connection start time, and the traffic weight is set to 1.

[0081] Starting from the beginning of the slow connection, the periodic measurement of the average round-trip time of the current read / write path will be changed to real-time measurement. If the current read / write path is still in a slow connection within the first monitoring window (optimized to 10 seconds), the traffic weight of the current read / write path will be halved to 0.5, and several available connections will be selected from the connection pool as read / write branch paths. The traffic weight of 0.5 means that subsequent read / write requests have only a 50% probability of being sent through the current read / write path, and the remaining traffic will be carried by the read / write branch paths.

[0082] In response to the halving of the traffic weight of the current read / write path, the average round-trip time of the current read / write path will continue to be monitored within the second monitoring window (optimized to 20 seconds). If it is still a slow connection, the traffic weight will be halved to 0.25. After the third monitoring window (optimized to 5 seconds), the current read / write path will be determined as unavailable.

[0083] If, at any point in time between the first and third monitoring windows, the average round-trip time of the current read / write path is less than the preset slow connection judgment threshold, the traffic weight of the current read / write path will be reset to 1.

[0084] Specifically, the "slow connection determination and progressive weight reduction strategy" introduced in this embodiment enables the system to gradually strip away and replace performance degradation paths without affecting the stability of existing paths. This significantly enhances the adaptability, stability, and fault tolerance of the transmission system to network fluctuations, while also improving the efficiency of connection resource utilization and service quality assurance capabilities.

[0085] In one embodiment, such as Figure 6 As shown, based on a preset path selection strategy, a backup path is selected from the connection pool to replace the current read / write path, including:

[0086] The preset path selection strategy is analyzed to obtain the processor domain affinity strategy, load balancing strategy, and communication latency optimization strategy.

[0087] Based on one or more of the processor domain affinity strategy, load balancing strategy, and communication latency optimization strategy, a backup path is selected from the existing connection paths in the connection pool;

[0088] Stop data transmission on the current read / write path, migrate residual data on the path to the backup path, and use the backup path as the new current read / write path to continue transmitting residual data and subsequent read / write data.

[0089] Specifically, this embodiment achieves intelligent dynamic switching of paths by integrating path selection strategies based on processor domain affinity, load balancing, and latency optimization; combined with seamless migration of path data, it ensures uninterrupted transmission, effectively utilizes multi-path resources, achieves linear bandwidth expansion and stronger fault tolerance, and improves the overall reliability and flexibility of the system.

[0090] In one embodiment, selecting an alternative path from existing connection paths in the connection pool based on one or more of processor domain affinity strategies, load balancing strategies, and communication latency optimization strategies includes:

[0091] The host determines the target processor domain where the target storage unit is located based on the target path mapping table, queries the available paths in the connection pool, calculates the domain distance between the available paths and the target processor domain based on the network interface devices corresponding to the available paths, and selects one or more available paths with the smallest domain distance as the first path. The first path is preferably an available path in the same processor domain as the target processor domain, the second choice is an available path in an adjacent processor domain, and so on.

[0092] If only one first path exists, then the first path is used as the backup path.

[0093] In response to the existence of multiple first paths, the current queue depth of the multiple first paths is counted, that is, the number of read and write requests being processed and pending. Based on the current queue depth, the multiple first paths are sorted in ascending order, and one or more paths with the smallest queue depth or a queue depth below the threshold are selected as the second path. The maximum queue depth is set to 30%.

[0094] If only one second path exists, then the second path will be used as the backup path.

[0095] In response to the existence of multiple second paths, the average round-trip time of the multiple second paths is measured by active probing or passive estimation. Based on the average round-trip time, the multiple second paths are sorted in ascending order, and the path with the lowest average round-trip time is selected as the backup path.

[0096] Specifically, this embodiment employs a path selection mechanism that combines three strategies: processor domain affinity, load balancing, and communication latency optimization, to hierarchically select the optimal backup path in the connection pool. First, affinity paths are preferentially selected based on NUMA-aware domain distance to reduce cross-domain memory access latency and PCIe contention. If multiple affinity paths exist, the path with the lighter load is prioritized based on the current queue depth to prevent path congestion. When loads are similar, average round-trip time (RTT) measurement is further introduced to select the path with the lowest communication latency, dynamically adapting to network fluctuations. This mechanism is implemented entirely in user space, without relying on underlying bond hardware or driver extensions, thus improving data transmission performance and fault tolerance while possessing good versatility and deployment flexibility.

[0097] like Figure 3 As shown, embodiments of this application also provide a data transmission method, applied to... Figure 1 The target end 102 shown includes:

[0098] Step 301: Set up a target subsystem that provides storage access interfaces to the outside world, and mount multiple storage units to the target subsystem according to the connection information between the storage units and the processor domain;

[0099] Step 302: Identify the network interface device to which the processor domain belongs and obtain the network resource information of the network interface device;

[0100] Step 303: Based on network resource information, configure the network address and port number for the network interface of the network interface device, and set up the listening entry based on the network address and port number;

[0101] Step 304: Register multiple listening entry points to the target subsystem so that the target subsystem can construct a target path mapping table and push it to the host based on the mapping relationship between the registered listening entry points, the mounted storage units and the corresponding processor domains.

[0102] Step 305: In response to receiving a data read / write request from the host, the data read / write request is parsed to determine the host's requested storage unit and host access entry point. The data read / write request is then forwarded to the corresponding storage unit through the network interface corresponding to the host access entry point.

[0103] Specifically, in this embodiment, the target end automatically configures the listening entry and constructs the mapping relationship based on the physical topology between the storage unit, the processor domain, and the network interface device, ensuring the accuracy and completeness of the path mapping table; furthermore, it constructs and registers the mapping table with the target subsystem, enabling regional management of storage resources; at the same time, combined with the identification of host requests and the path-level forwarding mechanism, the target end can support high-concurrency access from multiple entry points, thereby improving the system's scalability and its ability to support concurrent read and write requests.

[0104] In one embodiment, the target subsystem constructs a target path mapping table and pushes it to the host based on the mapping relationship between registered listening entries, mounted storage units, and corresponding processor domains, including:

[0105] Based on the mounted storage units and their corresponding processor domains, determine the storage unit identifier and the corresponding processor domain identifier, and generate several storage unit-processor domain mapping pairs;

[0106] Parse the registered listening entry points, determine the network interface device identifier to which the processor domain belongs, and generate several processor domain-network interface device mapping pairs;

[0107] Based on the topology mapping relationship of the target end, several storage unit-processor domain mapping pairs, several processor domain-network interface device mapping pairs, and registered listening entry points are sequentially mapped to obtain several path mappings and generate a target path mapping table.

[0108] Specifically, this embodiment constructs a complete mapping relationship of "storage unit-processor domain-network interface-listening entry point" to achieve accurate construction and real-time push of the target path mapping table. This mapping table enhances the host's ability to perceive the target topology, provides data assurance for path selection and health monitoring, promotes intelligent dynamic path management, and improves system performance and reliability.

[0109] It is worth noting that, such as Figure 7 In the target topology shown, which includes two processor domains and two network interface devices, several storage units belong to different processor domains. Each processor domain corresponds to a network interface device, and each network interface device is configured with several listening entries. The listening entries and storage units are centrally managed within the target subsystem, and a path mapping table is constructed for each. When a host needs to access a storage unit, it preferentially selects the listening entry on the network interface device corresponding to its processor domain. Only when that listening entry is unavailable will it select an adjacent or other available listening entry for cross-domain access.

[0110] Through the above description of the embodiments, those skilled in the art can clearly understand that the methods according to the above embodiments can be implemented by means of software plus necessary general-purpose hardware platforms. Of course, they can also be implemented by hardware, but in many cases the former is a better implementation method.

[0111] Embodiments of this application also provide a data transmission system, such as... Figure 8 As shown, this includes a host and a target, both deployed in a computing environment with a non-uniform memory access architecture, where:

[0112] The target end includes:

[0113] The subsystem configuration module is used to set the target subsystem that provides storage access interfaces to the outside world, and to mount multiple storage units to the target subsystem according to the connection relationship between storage units and processor domains;

[0114] The resource identification module is used to identify the network interface device to which the processor domain belongs and to obtain the network resource information of the network interface device.

[0115] The monitoring configuration module is used to configure the network address and port number of the network interface device based on network resource information, and to set the monitoring entry point based on the network address and port number.

[0116] The monitoring registration module is used to register multiple monitoring entries to the target subsystem;

[0117] The request forwarding module is used to respond to a data read / write request sent by the host, parse the data read / write request, determine the host request to read / write storage unit and host access entry, and forward the data read / write request to the corresponding storage unit through the network interface corresponding to the host access entry.

[0118] The target subsystem module is used to construct a target path mapping table and push it to the host system based on the mapping relationship between the registered listening entry points, the mounted storage units and the corresponding processor domains.

[0119] The host side includes:

[0120] The path receiving module, connected to the target subsystem module, is used to receive and parse the target path mapping table;

[0121] The connection building module is used to create multiple connection paths corresponding to multiple listening entry points in sequence based on the target path mapping table, and generate a connection pool.

[0122] The path selection module is used to respond to the host generating a data read / write request to the target end. It determines the target processor domain corresponding to the target storage unit according to the target path mapping table, and selects the connection path associated with the target processor domain from the connection pool as the current read / write path.

[0123] The request sending and path replacement module is used to periodically monitor and determine whether the current read / write path is available. If it is, data read / write interaction is performed through the current read / write path. Otherwise, based on the preset path selection strategy, a backup path is selected from the connection pool to replace the current read / write path.

[0124] The target subsystem module is also used to determine the storage unit identifier and the corresponding processor domain identifier based on the mounted storage units and the corresponding processor domains, and generate several storage unit-processor domain mapping pairs; parse the registered listening entry, determine the network interface device identifier to which the processor domain belongs, and generate several processor domain-network interface device mapping pairs; based on the topology mapping relationship of the target end, match several storage unit-processor domain mapping pairs, several processor domain-network interface device mapping pairs and the registered listening entry in sequence to obtain several path mappings, and generate a target path mapping table.

[0125] This connection building module is also used to establish multiple communication queue pairs for multiple listening entries based on the remote direct memory access protocol. Each communication queue pair includes at least a send queue and a receive queue.

[0126] The path selection module is also used to query the target path mapping table based on the target storage unit identifier to obtain the target processor domain where the target storage unit is located, and further obtain the target network interface device identifier associated with the target processor domain; determine the corresponding target listening entry based on the target network interface device identifier, and select the target connection path corresponding to the target listening entry from the connection pool as the current read / write path based on the target listening entry.

[0127] The request sending and path changing module is also used to send data read / write requests to the target end through the current read / write path and receive feedback information from the target end; continuously monitor the feedback information from the target end, and if a preset error status code is present in the target feedback information, the current read / write path is determined to be unavailable; based on a preset heartbeat period, heartbeat information is sent through the current read / write path, and if the host end does not receive a response information within a preset abnormal threshold, the current read / write path is determined to be unavailable; periodically measure the average request round-trip time in the current read / write path, and if the average request round-trip time exceeds a preset availability threshold, the current read / write path is determined to be unavailable; if there is no preset error status code in the target feedback information, and the host end receives a response information within the preset abnormal threshold, and the average request round-trip time is lower than the preset availability threshold, the current read / write path is determined to be available.

[0128] The request sending and path replacement module is also used to parse the preset path selection strategy to obtain the processor domain affinity strategy, load balancing strategy and communication latency optimization strategy; based on one or more of the processor domain affinity strategy, load balancing strategy and communication latency optimization strategy, a backup path is selected from the existing connection paths in the connection pool; the data transmission of the current read / write path is stopped, and the residual data of the path is migrated to the backup path, and the backup path is used as the new current read / write path to continue transmitting the residual data of the path and subsequent read / write data.

[0129] For a description of the features in the embodiment corresponding to the data transmission system, please refer to the relevant description in the embodiment corresponding to the data transmission method, which will not be repeated here.

[0130] Embodiments of this application also provide an electronic device, such as... Figure 9 As shown, it includes a memory and a processor, the memory storing a computer program, and the processor being configured to run the computer program to perform the steps in any of the above-described data transmission method embodiments.

[0131] Embodiments of this application also provide a computer-readable storage medium storing a computer program, wherein the computer program is configured to execute the steps in any of the above-described data transmission method embodiments when it is run.

[0132] In one exemplary embodiment, the aforementioned computer-readable storage medium may include, but is not limited to, various media capable of storing computer programs, such as a USB flash drive, read-only memory (ROM), random access memory (RAM), portable hard disk, magnetic disk, or optical disk.

[0133] Embodiments of this application also provide a computer program product, which includes a computer program that, when executed by a processor, implements the steps in any of the above-described data transmission method embodiments.

[0134] Embodiments of this application also provide another computer program product, including a non-volatile computer-readable storage medium storing a computer program, which, when executed by a processor, implements the steps in any of the above-described data transmission method embodiments.

[0135] Those skilled in the art will further recognize that the units and algorithm steps of the various examples described in conjunction with the embodiments disclosed herein can be implemented in electronic hardware, computer software, or a combination of both. To clearly illustrate the interchangeability of hardware and software, the components and steps of the various examples have been generally described in terms of functionality in the foregoing description. Whether these functions are implemented in hardware or software depends on the specific application and design constraints of the technical solution. Those skilled in the art can use different methods to implement the described functions for each specific application, but such implementation should not be considered beyond the scope of this application.

[0136] The data transmission method, system, device, storage medium, and product provided in this application have been described in detail above. Specific examples have been used to illustrate the principles and implementation methods of this application. The descriptions of the embodiments above are merely for the purpose of helping to understand the method and its core ideas. It should be noted that those skilled in the art can make various improvements and modifications to this application without departing from its principles, and these improvements and modifications also fall within the protection scope of the claims of this application.

Claims

1. A data transmission method applied to the host side in a non-uniform memory access architecture, characterized in that, The method includes: Receive and parse the target path mapping table from the target end to obtain multiple listening entry points; Based on the target path mapping table, multiple connection paths corresponding to the multiple listening entry points are sequentially established to generate a connection pool; In response to the host generating a data read / write request to the target, the target processor domain corresponding to the target storage unit is determined according to the target path mapping table, and a connection path associated with the target processor domain is selected from the connection pool as the current read / write path. The system periodically monitors and determines whether the current read / write path is available. If it is, data read / write interaction is performed through the current read / write path. Otherwise, based on a preset path selection strategy, a backup path is selected from the connection pool to replace the current read / write path.

2. The data transmission method according to claim 1, characterized in that, The step of establishing multiple connection paths corresponding to the multiple listening entry points in sequence based on the target path mapping table, and generating a connection pool, includes: Based on the Remote Direct Memory Access protocol, multiple communication queue pairs are established for the multiple listening entrances, and each communication queue pair includes at least a sending queue and a receiving queue.

3. The data transmission method according to claim 1, characterized in that, The step of determining the target processor domain where the target storage unit is located based on the target path mapping table, and selecting the connection path corresponding to the target processor domain from the connection pool as the current read / write path, includes: Based on the target storage unit identifier, the target path mapping table is queried to obtain the target processor domain where the target storage unit is located, and the target network interface device identifier associated with the target processor domain is further obtained; Based on the target network interface device identifier, the corresponding target listening entry is determined, and based on the target listening entry, the target connection path corresponding to the target listening entry is selected from the connection pool as the current read / write path.

4. The data transmission method according to claim 1, characterized in that, The periodic monitoring and determination of whether the current read / write path is available, and if so, the data read / write interaction through the current read / write path, includes: The data read / write request is sent to the target terminal through the current read / write path, and feedback information from the target terminal is received; the feedback information from the target terminal is continuously monitored, and if a preset error status code is found in the target feedback information, the current read / write path is determined to be unavailable; Based on a preset heartbeat cycle, heartbeat information is sent through the current read / write path. If the host does not receive a response within a preset abnormal threshold, the current read / write path is determined to be unavailable. The average round-trip time of requests in the current read / write path is periodically measured. If the average round-trip time of requests exceeds a preset availability threshold, the current read / write path is determined to be unavailable. If the target feedback information does not contain a preset error status code, and the host receives the response information within a preset exception threshold, and the average request round-trip time is lower than a preset availability threshold, then the current read / write path is determined to be available.

5. The data transmission method according to claim 1, characterized in that, The step of selecting a backup path from the connection pool to replace the current read / write path based on a preset path selection strategy includes: The preset path selection strategy is analyzed to obtain the processor domain affinity strategy, load balancing strategy, and communication latency optimization strategy. Based on one or more of the processor domain affinity strategy, the load balancing strategy, and the communication latency optimization strategy, a backup path is selected from the existing connection paths in the connection pool; Stop the data transmission of the current read / write path, migrate the residual data of the path to the backup path, and use the backup path as the new current read / write path to continue transmitting the residual data of the path and subsequent read / write data.

6. A data transmission method, applied to a target end in a non-consistent memory access architecture, characterized in that, The method includes: Set up a target subsystem that provides an external storage access interface, and mount multiple storage units to the target subsystem based on the connection information between the storage units and the processor domain; Identify the network interface device to which the processor domain belongs, and obtain the network resource information of the network interface device; Based on the network resource information, configure the network address and port number for the network interface of the network interface device, and set up a listening entry point based on the network address and the port number; Multiple listening entry points are registered to the target subsystem, so that the target subsystem can construct a target path mapping table and push it to the host based on the mapping relationship between the registered listening entry points, the mounted storage units and the corresponding processor domains; In response to receiving a data read / write request from the host, the data read / write request is parsed to determine the host request to read / write the storage unit and the host access entry point. The data read / write request is then forwarded to the corresponding storage unit through the network interface corresponding to the host access entry point.

7. A data transmission method according to claim 6, characterized in that, The target subsystem constructs a target path mapping table and pushes it to the host based on the mapping relationship between registered listening entry points, mounted storage units, and corresponding processor domains, including: Based on the mounted storage units and their corresponding processor domains, determine the storage unit identifier and the corresponding processor domain identifier, and generate several storage unit-processor domain mapping pairs; The registered listening entry is parsed to determine the network interface device identifier to which the processor domain belongs, and several processor domain-network interface device mapping pairs are generated. Based on the topology mapping relationship of the target end, the several storage unit-processor domain mapping pairs, the several processor domain-network interface device mapping pairs, and the registered listening entry are sequentially mapped to obtain several path mappings, and the target path mapping table is generated.

8. A data transmission system, characterized in that, This includes a host and a target, both deployed in a computing environment with a non-uniform memory access architecture, wherein: The target end includes: The subsystem configuration module is used to set the target subsystem that provides storage access interface to the outside world, and to mount multiple storage units to the target subsystem according to the connection relationship between storage units and processor domains; The resource identification module is used to identify the network interface device to which the processor domain belongs and to obtain the network resource information of the network interface device. The monitoring configuration module is used to configure the network address and port number for the network interface of the network interface device based on the network resource information, and to set the monitoring entry point based on the network address and the port number; The monitoring registration module is used to register multiple monitoring entry points to the target subsystem; The request forwarding module is used to respond to a data read / write request sent by the host, parse the data read / write request, determine the host request to read / write storage unit and host access entry, and forward the data read / write request to the corresponding storage unit through the network interface corresponding to the host access entry. The target subsystem module is used to construct a target path mapping table and push it to the host system based on the mapping relationship between the registered listening entry points, the mounted storage units and the corresponding processor domains. The host terminal includes: A path receiving module, connected to the target subsystem module, is used to receive and parse the target path mapping table; The connection construction module is used to establish multiple connection paths corresponding to the multiple listening entry points in sequence based on the target path mapping table, and generate a connection pool; The path selection module is used to respond to the host generating a data read / write request to the target end, and then determine the target processor domain corresponding to the target storage unit according to the target path mapping table, and select the connection path associated with the target processor domain from the connection pool as the current read / write path; The request sending and path changing module is connected to the request forwarding module. It is used to periodically monitor and determine whether the current read / write path is available. If it is, data read / write interaction is performed through the current read / write path. Otherwise, based on the preset path selection strategy, a backup path is selected from the connection pool to replace the current read / write path.

9. An electronic device, characterized in that, include: Memory, used to store computer programs; A processor, configured to implement the steps of the data transmission method as described in any one of claims 1 to 7 when executing the computer program.

10. A computer-readable storage medium, characterized in that, The computer-readable storage medium stores a computer program, wherein the computer program, when executed by a processor, implements the steps of the data transmission method as described in any one of claims 1 to 7.

Citation Information

Cited By

  • CoE Fabric management method, equipment, system and medium

    CN121792470A