Data acquisition method and device, equipment and medium
By having the client actively select a data server with high communication quality, the high latency and request failure issues caused by the unified backend routing were resolved, improving data access efficiency and system reliability, and optimizing the user experience.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- BEIJING QIYI CENTURY SCI & TECH CO LTD
- Filing Date
- 2026-03-10
- Publication Date
- 2026-05-26
AI Technical Summary
In the current digital service architecture, the high latency and request failures caused by the client's reliance on the unified backend routing affect the system's response efficiency and reliability.
The client actively combines data distribution information and network topology information to dynamically select a target data server that stores the target data and has good communication quality from multiple data servers, and obtains the target data through a data acquisition request.
It improves the response efficiency of data access, system robustness and service reliability, optimizes the user experience, and reduces request forwarding overhead and decision latency.
Smart Images

Figure CN122093398A_ABST
Abstract
Description
Technical Field
[0001] This disclosure relates to the field of computer technology, and in particular to a data acquisition method, apparatus, device, and medium. Background Technology
[0002] In current digital service architectures, user data is typically stored and deployed in regional partitions based on geographic compliance requirements and performance optimization goals. In related technologies, after a client initiates a data retrieval request, the backend service is responsible for routing the request to the corresponding data server. However, this passive access model is prone to high latency or request failures, impacting system response efficiency. Summary of the Invention
[0003] In order to solve the above-mentioned technical problems, or at least partially solve the above-mentioned technical problems, this disclosure provides a data acquisition method, apparatus, device and medium.
[0004] This disclosure provides a data acquisition method, the method comprising: In response to an instruction to acquire target data, based on data distribution information indicating the data storage status of multiple data servers, candidate data servers storing the target data are determined from the multiple data servers to form a candidate data server set; Based on network topology information indicating the communication quality of the candidate data servers, a target data server that meets preset conditions is determined from the set of candidate data servers. The preset conditions indicate that the communication quality of the target data server is better than the communication quality of the other candidate data servers in the set of candidate data servers. The communication quality is determined based on at least one of a communication delay parameter, a communication stability parameter, and a communication cost parameter. Send a data acquisition request for the target data to the target data server; Receive the target data returned by the target data server in response to the data acquisition request.
[0005] In some embodiments, the network topology information includes at least one of the communication delay parameter, the communication stability parameter, and the communication cost parameter corresponding to the candidate data server; determining the target data server that meets preset conditions from the candidate data server set based on the network topology information indicating the communication quality of the candidate data server includes: From the network topology information, obtain at least one of the communication delay parameter, the communication stability parameter, and the communication cost parameter corresponding to the candidate data server; Based on the acquired parameters, the quality parameters of the candidate data server are determined, and the quality parameters are negatively correlated with the communication quality. Based on the quality parameters of each candidate data server in the candidate data server set, a target data server that meets the preset conditions is determined from the candidate data server set. The preset conditions indicate that the quality parameters of the target data server are lower than the quality parameters of the other candidate data servers in the candidate data server set.
[0006] In some embodiments, the network topology information includes at least one of the communication latency parameter, the communication stability parameter, and the communication cost parameter among the plurality of data servers; obtaining at least one of the communication latency parameter, the communication stability parameter, and the communication cost parameter corresponding to the candidate data server from the network topology information includes: From the network topology information, at least one of the communication delay parameter, the communication stability parameter, and the communication cost parameter between the candidate data server and the adjacent data server is extracted; wherein, the adjacent data server is the one among the plurality of data servers that is closest to the location of the terminal, and the client is installed on the terminal.
[0007] In some embodiments, the network topology information includes the communication latency parameter, the communication stability parameter, and the communication cost parameter corresponding to the candidate data server; determining the quality parameter of the candidate data server based on the acquired parameters includes: The weighted values of the communication delay parameter, the communication stability parameter, and the communication cost parameter are determined respectively; The quality parameter is obtained by subtracting the weighted value of the communication stability parameter from the sum of the weighted values of the communication delay parameter and the communication cost parameter.
[0008] In some embodiments, the data distribution information indicates the data identifier of data already stored in each data server; in response to an instruction to retrieve target data, based on the data distribution information indicating the data storage status of multiple data servers, candidate data servers storing the target data are determined from the multiple data servers to form a candidate data server set, including: In response to the acquisition instruction, based on the data identifier of the target data, a candidate data server storing the target data is queried from the data distribution information to form the candidate data server set.
[0009] In some embodiments, the data distribution information further indicates permitted data servers; the step of querying candidate data servers storing the target data from the data distribution information in response to the acquisition instruction, based on the data identifier of the target data, constitutes the candidate data server set, including: In response to the acquisition instruction, a query is performed from the data distribution information based on the data identifier of the target data to obtain the data server storing the target data; Based on the data distribution information, candidate data servers that are allowed to be accessed are determined from the queried data servers, forming the candidate data server set.
[0010] In some embodiments, in response to an instruction to acquire target data, determining candidate data servers storing the target data from among the multiple data servers based on data distribution information indicating the data storage status of multiple data servers, thereby forming a candidate data server set, includes: In response to the acquisition instruction, based on the data distribution information and the access constraint information corresponding to the object identifier logged in by the client, candidate data servers that store the target data and allow the object identifier to access it are determined from the plurality of data servers, forming the candidate data server set, and the access constraint information indicates the data server that allows the object identifier to access it.
[0011] In some embodiments, sending a data acquisition request for the target data to the target data server includes: If the target data server is not a neighboring data server, the data acquisition request is sent to the neighboring data server; wherein, the neighboring data server is used to forward the data acquisition request to the target data server, receive the target data returned by the target data server in response to the data acquisition request, and return the target data to the client; the neighboring data server is the one among the plurality of data servers that is closest to the location of the terminal, and the client is installed on the terminal; The step of receiving the target data returned by the target data server in response to the data acquisition request includes: Receive the target data returned by the adjacent data server.
[0012] In some embodiments, before determining candidate data servers storing the target data from the plurality of data servers based on data distribution information indicating the data storage status of a plurality of data servers in response to an instruction to acquire target data, and forming a candidate data server set, the method further includes: In response to the client's startup, the data distribution information and network topology information are obtained from the auxiliary server.
[0013] In some embodiments, before determining candidate data servers storing the target data from the plurality of data servers based on data distribution information indicating the data storage status of a plurality of data servers in response to an instruction to acquire target data, and forming a candidate data server set, the method further includes: If the data distribution information and the network topology information have been obtained from the auxiliary server, in response to an update of the data distribution information or network topology information in the auxiliary server, the updated data distribution information or updated network topology information is obtained. In response to an instruction to acquire target data, based on data distribution information indicating the data storage status of multiple data servers, candidate data servers storing the target data are determined from the multiple data servers, forming a candidate data server set, including: In response to the acquisition instruction, based on the latest data distribution information, candidate data servers storing the target data are determined from the plurality of data servers to form the candidate data server set; The step of determining a target data server that meets preset conditions from the set of candidate data servers based on network topology information indicating the communication quality of the candidate data servers includes: Based on the latest network topology information, target data servers that meet preset conditions are determined from the set of candidate data servers.
[0014] In some embodiments, the auxiliary server deploys a metadata microservice and a topology microservice; the step of obtaining the data distribution information and the network topology information from the auxiliary server in response to the client's startup includes: In response to the client's startup, a first retrieval request is sent to the metadata microservice, and a second retrieval request is sent to the topology microservice; Receive the data distribution information returned by the metadata microservice in response to the first acquisition request; Receive the network topology information returned by the topology microservice in response to the second acquisition request.
[0015] In some embodiments, the auxiliary server includes a first sub-server with the metadata microservice deployed and a second sub-server with the topology microservice deployed.
[0016] In some embodiments, in response to an instruction to acquire target data, determining candidate data servers storing the target data from among the multiple data servers based on data distribution information indicating the data storage status of multiple data servers, thereby forming a candidate data server set, includes: In response to a command to acquire target data, the data distribution information and the network topology information are acquired from an auxiliary server. Based on the data distribution information, candidate data servers storing the target data are determined from the plurality of data servers, forming the candidate data server set.
[0017] This disclosure also provides a data acquisition device, including: The determination module is used to respond to the acquisition instruction for target data, and determine the candidate data server storing the target data from the multiple data servers based on data distribution information indicating the data storage status of multiple data servers, thereby forming a candidate data server set; The determining module is further configured to determine a target data server that meets preset conditions from the set of candidate data servers based on network topology information indicating the communication quality of the candidate data servers. The preset conditions indicate that the communication quality of the target data server is better than the communication quality of the other candidate data servers in the set of candidate data servers. The communication quality is determined based on at least one of a communication delay parameter, a communication stability parameter, and a communication cost parameter. The sending module is used to send a data acquisition request for the target data to the target data server; A receiving module is used to receive the target data returned by the target data server in response to the data acquisition request.
[0018] This disclosure also provides an electronic device, the electronic device comprising: a processor; a memory for storing executable instructions of the processor; the processor being configured to read the executable instructions from the memory and execute the instructions to implement the data acquisition method provided in this disclosure.
[0019] This disclosure also provides a computer-readable storage medium storing a computer program for performing the data acquisition method provided in this disclosure.
[0020] This disclosure also provides a computer program product, including a computer program that, when executed by a processor, implements the data acquisition method provided in this disclosure.
[0021] In the solution provided by this disclosure, during operation, the client, in response to a command to retrieve target data, can proactively combine data distribution information and network topology information to dynamically select a target data server from multiple associated data servers that both stores the target data and possesses excellent communication quality. The client then communicates with the target data server to retrieve the target data. This eliminates the traditional passive mode that relies on unified backend routing, avoiding problems such as high latency and request failures caused by static routing strategies or blind forwarding. It improves the response efficiency of data access, system robustness, and service reliability, thereby optimizing the overall user experience.
[0022] It should be understood that the description in this section is not intended to identify key or essential features of the embodiments of this disclosure, nor is it intended to limit the scope of this disclosure. Other features of this disclosure will become readily apparent from the following description. Attached Figure Description
[0023] The accompanying drawings, which are incorporated in and form a part of this specification, illustrate embodiments consistent with this disclosure and, together with the description, serve to explain the principles of this disclosure.
[0024] To more clearly illustrate the technical solutions in the embodiments of this disclosure or the prior art, the accompanying drawings used in the description of the embodiments or the prior art will be briefly introduced below. Obviously, for those skilled in the art, other drawings can be obtained based on these drawings without creative effort.
[0025] Figure 1 A flowchart illustrating a data acquisition method provided in an embodiment of this disclosure; Figure 2 A flowchart illustrating another data acquisition method provided in this embodiment of the disclosure; Figure 3 This is a schematic diagram of data distribution information provided in an embodiment of the present disclosure; Figure 4 A schematic diagram of network topology information provided in an embodiment of this disclosure; Figure 5 A schematic diagram of an initialization and topology awareness process provided in an embodiment of this disclosure; Figure 6 A schematic diagram illustrating a topology and distribution update process provided in an embodiment of this disclosure; Figure 7 This is a schematic diagram of the structure of a data acquisition device provided in an embodiment of the present disclosure; Figure 8 This is a schematic diagram of the structure of an electronic device provided in an embodiment of this disclosure. Detailed Implementation
[0026] To better understand the above-mentioned objectives, features, and advantages of this disclosure, the solutions disclosed herein will be further described below. It should be noted that, unless otherwise specified, the embodiments and features described herein can be combined with each other.
[0027] Numerous specific details are set forth in the following description in order to provide a full understanding of this disclosure, but this disclosure may also be implemented in other ways different from those described herein; obviously, the embodiments in the specification are only some, and not all, of the embodiments of this disclosure.
[0028] In the current globalized digital service architecture, user data (such as profiles, behavior logs, and preference settings) is typically stored and deployed in regional partitions based on geographic compliance requirements and performance optimization goals. In related technologies, after a client initiates a data retrieval request, the routing decision is generally centrally handled by the backend service. However, this centralized mechanism has significant drawbacks: traditional clients rely solely on static domain name resolution or general CDN (Content Delivery Network) scheduling, failing to perceive the actual geographic sharding of specific data characteristics, easily leading to implicit cross-border access and compliance risks; when users move or data distribution dynamically adjusts, clients lack adaptive capabilities, making it difficult to update access policies in a timely manner, resulting in high latency or incorrect routing; disaster recovery and degradation strategies are mostly implemented unilaterally by the backend, and clients cannot proactively select the optimal backup path when network partitions or local node failures occur; simultaneously, the multi-dimensional trade-offs between data consistency, access legitimacy, and performance lack a unified policy evaluation engine on the client side. These limitations leave clients in a passive access state, prone to increased latency, request failures, and other problems, severely impacting system response efficiency and service reliability. To improve at least one of the above problems, this disclosure provides a data acquisition method, apparatus, device, and medium, which are described in detail below.
[0029] Figure 1 This is a flowchart illustrating a data acquisition method provided in an embodiment of this disclosure. The method can be executed by a client, which runs on an electronic device, and its functions can be implemented through software, hardware, or a combination of both. Figure 1 As shown, the method mainly includes the following steps S101 to S104: Step S101: In response to the instruction to acquire target data, based on data distribution information indicating the data storage status of multiple data servers, candidate data servers storing target data are determined from the multiple data servers to form a candidate data server set.
[0030] In this embodiment of the disclosure, the client is associated with multiple data servers, which are used to store data related to the client. When the client needs to obtain specific data while running on the electronic device, it will intelligently select a target data server from the multiple data servers by comprehensively considering data distribution information and network topology information, and establish communication with it to efficiently obtain the required data.
[0031] The target data refers to the specific data required by the electronic device when running the client. This target data can be any data, such as specific data about the object identifier that the client is logged into. This object identifier is used to uniquely identify the identity information of the currently logged-in client, such as the object identifier being a user account. For example, the target data could be the avatar or personalized configuration information corresponding to the object identifier. The instruction to retrieve the target data is triggered during the client's operation. For example, after a user enters their account and password on the client's login interface through the electronic device and clicks the login button, the electronic device is equivalent to detecting an instruction to retrieve the avatar and personalized configuration information of the account through the client. The feature placement map (FPM) is essentially metadata used to indicate the data storage status of multiple data servers. This data placement map reflects what data is stored in each data server, but does not include the data itself stored by the data servers. For example, the data placement map indicates which feature dimensions of data are stored in each data server, such as data server 1 storing feature dimension A and data server 2 storing feature dimension B. Candidate data servers are data servers among multiple data servers that store the target data. The set of candidate data servers includes at least one candidate data server. A data server may be a single physical device; however, a data server may also not be a single physical device, but a logical or physical server cluster composed of multiple sub-servers.
[0032] In this embodiment of the disclosure, since the client is associated with multiple data servers, the same data may be stored in one or more data servers. The data distribution information indicates the data storage status of each data server. Therefore, based on the data distribution information, candidate data servers storing the target data are first selected from multiple data servers. The selected candidate data servers form a candidate data server set so that the target data server can be selected from the candidate data server set later.
[0033] Step S102: Based on the network topology information indicating the communication quality of candidate data servers, determine the target data server that meets the preset conditions from the candidate data server set. The preset conditions indicate that the communication quality of the target data server is better than the communication quality of the other candidate data servers in the candidate data server set. The communication quality is determined based on at least one of the communication delay parameter, communication stability parameter, and communication cost parameter.
[0034] In this embodiment of the disclosure, each data server is deployed in a different region. The network topology information, also known as the Region Topology Graph (RTG), can reflect the communication quality of each candidate data server. Since each candidate data server stores the target data, the candidate data server set is filtered based on the network topology information to select the candidate data server with better communication quality as the target data server, so as to ensure that the target data can be accurately obtained and the communication efficiency of obtaining the target data is guaranteed.
[0035] Communication quality refers to the comprehensive reflection of the accuracy, completeness, timeliness, and reliability of data retrieval from candidate data servers. In other words, communication quality measures whether data is transmitted correctly, completely, quickly, and stably. Communication quality depends on communication latency, communication stability, and communication cost parameters. Latency represents the time required for the client to retrieve data from the candidate data server, reflecting the communication's response speed and real-time performance. Stability represents the ability of the communication link to maintain reliable, continuous, and uninterrupted data transmission over a period of time when the client retrieves data from the candidate data server. Cost represents the resources or economic cost consumed by the candidate data server to complete one communication, reflecting the communication's efficiency and sustainability. Preset conditions refer to prioritizing candidate data servers with better communication quality as target data servers. There may be one or more target data servers that meet the preset conditions.
[0036] Step S103: Send a data acquisition request for the target data to the target data server.
[0037] In this embodiment of the disclosure, after identifying a target data server that stores the target data and has sufficiently good communication quality, the electronic device can send a data acquisition request for the target data to the target data server through the client, so that the target data server can return the target data in response to the data acquisition request, thereby enabling the client to receive the target data to support the operation of the client.
[0038] In this embodiment of the disclosure, the electronic device can send a data acquisition request to the target data server directly or indirectly through a client. Sending the data acquisition request directly to the target data server indicates that the electronic device communicates directly with the target data server through the client to obtain the target data. Sending the data acquisition request indirectly to the target data server indicates that the electronic device first sends a data acquisition request to another server through the client, and then that other server acts as a communication proxy to communicate with the target data server to obtain the target data.
[0039] Step S104: Receive the target data returned by the target data server in response to the data acquisition request.
[0040] In the solution provided by this disclosure, during operation, the client, in response to a command to retrieve target data, can proactively combine data distribution information and network topology information to dynamically select a target data server from multiple associated data servers that both stores the target data and possesses excellent communication quality. The client then communicates with the target data server to retrieve the target data. This eliminates the traditional passive mode that relies on unified backend routing, avoiding problems such as high latency and request failures caused by static routing strategies or blind forwarding. It improves the response efficiency of data access, system robustness, and service reliability, thereby optimizing the overall user experience.
[0041] In the above Figure 1 Based on the embodiments shown, in this embodiment of the disclosure, the client communicates with the auxiliary server when it starts up to obtain data distribution information and network topology information including various parameters for representing communication quality in advance, so as to be able to determine the target data server in a timely manner when a data acquisition command is triggered subsequently. For details of the process, please refer to the following embodiments. Figure 2 This is a flowchart illustrating a data acquisition method provided in an embodiment of this disclosure. The method can be executed by a client, which runs on an electronic device, and its functions can be implemented through software, hardware, or a combination of both. Figure 2 As shown, the method mainly includes the following steps S201 to S207: Step S201: In response to client startup, obtain data distribution information and network topology information from the auxiliary server. The data distribution information indicates the data storage status of multiple data servers, and the network topology information includes at least one of the following: communication latency parameters, communication stability parameters, and communication cost parameters corresponding to each data server.
[0042] In this embodiment, the client actively communicates with the auxiliary server upon startup to obtain data distribution information and network topology information. This mechanism of pre-obtaining data distribution and network topology information ensures that subsequent data retrieval commands can promptly identify the corresponding target data server, thereby guaranteeing the response efficiency of subsequent data access. The auxiliary server provides the data distribution and network topology information and can be any server other than multiple data servers.
[0043] In some embodiments, after obtaining the data distribution information and network topology information, the data distribution information and network topology information are cached for use in subsequent client operations.
[0044] In some embodiments, the auxiliary server is deployed with a metadata microservice and a topology microservice; then step S201 includes: in response to client startup, sending a first acquisition request to the metadata microservice and a second acquisition request to the topology microservice; receiving data distribution information returned by the metadata microservice in response to the first acquisition request; and receiving network topology information returned by the topology microservice in response to the second acquisition request.
[0045] In this system architecture, an auxiliary server (or secondary server) provides support services to clients. It does not directly store user business data but instead hosts lightweight service modules for coordination, scheduling, or management. A metadata microservice (MetaService) is a microservice deployed on an auxiliary server that manages and provides data distribution information, helping clients understand the physical or logical location of target data. A topology microservice (Topo Service) is another microservice deployed on an auxiliary server that maintains and provides network topology information, reflecting the current network connectivity and communication quality. The first retrieval request requests data distribution information, and the second retrieval request requests network topology information.
[0046] In this embodiment, by deploying metadata microservices and topology microservices on the auxiliary server, the client can proactively request and obtain data distribution information and network topology information in parallel upon startup. This mechanism enables the client to locally determine two key decision-making criteria: where the data is located and which path is optimal. This allows the client to autonomously and accurately select the optimal target data server during subsequent data access, reducing request forwarding overhead and decision latency, enhancing the system's adaptability and fault tolerance. It not only improves data acquisition efficiency and communication reliability but also provides strong support for stable services in high-concurrency, cross-regional scenarios, further optimizing the user experience.
[0047] In some embodiments, the auxiliary server includes a first sub-server with a metadata microservice deployed and a second sub-server with a topology microservice deployed.
[0048] In this embodiment, the auxiliary server is not a single physical device, but a logical or physical server cluster composed of multiple sub-servers. Specifically: the first sub-server is dedicated to deploying metadata microservices, responsible for managing and providing data distribution information; the second sub-server is dedicated to deploying topology microservices, responsible for collecting, maintaining, and providing network topology information.
[0049] In this embodiment, the auxiliary server is implemented as a server cluster containing multiple sub-servers, wherein the metadata microservice and the topology microservice are deployed on independent first and second sub-servers, respectively. In this way, the client can efficiently and in parallel obtain accurate data distribution information and real-time network topology information from two dedicated service nodes at startup, realizing functional decoupling and resource isolation. This not only improves the accuracy and timeliness of information acquisition, but also enhances the stability and maintainability of the overall architecture, laying a solid foundation for the client to intelligently select the optimal data server, thereby improving data access efficiency, system robustness, and user experience.
[0050] Step S202: In response to the instruction to acquire the target data, based on the data distribution information indicating the data storage status of multiple data servers, candidate data servers storing the target data are determined from the multiple data servers to form a candidate data server set.
[0051] In this embodiment of the disclosure, since the client has already obtained the data distribution information and network topology information, during the client's operation, in response to the instruction to obtain the target data, the cached data distribution information is directly used to determine the candidate data server set.
[0052] In some embodiments, the data distribution information indicates the data identifier of the data stored in each data server; step S202 includes: in response to an instruction to obtain target data, querying the data distribution information for candidate data servers storing the target data based on the data identifier of the target data, thereby forming a set of candidate data servers.
[0053] In this embodiment of the disclosure, the data distribution information indicates the data identifier of the data already stored in each data server, that is, it reflects which data each data server stores. Based on the data identifier of the target data, a query can be performed from the data distribution information to determine the data server that stores the target data. These data servers that store the target data are called candidate data servers and constitute a candidate data server set. In this way, it is ensured that the determined candidate data servers do indeed store the target data, thereby ensuring the accuracy of the candidate data server set.
[0054] The data identifier is used to indicate the data type, for example, data type A, data type B, or data type C. Alternatively, the data identifier is a unique identifier for the data, and different data have different data identifiers; the data identifier can be represented in any form, for example, the data identifier can be represented as a string.
[0055] For example, if data identifiers are used to indicate the data type, data distribution information such as... Figure 3 As shown, the data types include data type F1, data type F2, data type F3, data type F4, and data type F5; multiple data servers are designated as data server A, data server B, and data server C. Data servers A, B, and C are deployed in different regions, which can be represented as Region A, Region B, and Region C, respectively. Data distribution information indicates that data server A stores data belonging to data types F1 and F2, data server B stores data belonging to data types F1, F4, and F5, and data server C stores data belonging to data types F3 and F2. Therefore, by querying the data distribution information based on the data identifier (i.e., the data type) of the target data, the data server storing the target data can be found.
[0056] For example, if the data identifier is a unique identifier used to represent the data, and the data distribution information indicates that data server 1 stores data corresponding to data identifier 1 and data identifier 2, data server 2 stores data corresponding to data identifier 3 and data identifier 4, and data server 2 stores data corresponding to data identifier 5 and data identifier 6, taking data identifier 4 as the data identifier of the target data as an example, by querying from the data distribution information, it can be determined that data server 2 stores the target data, and data server 2 can be added as a candidate data server to the candidate data server set.
[0057] In some embodiments, the data distribution information indicates not only the data identifier of the data stored in each data server, but also the data servers that are allowed to be accessed; then the process of obtaining the candidate data server set includes: in response to an instruction to obtain target data, querying the data distribution information based on the data identifier of the target data to obtain the data servers that store the target data; and determining the candidate data servers that are allowed to be accessed from the queried data servers based on the data distribution information to form a candidate data server set.
[0058] In this embodiment of the disclosure, the data distribution information not only indicates the data identifier of the data stored in each data server, but also indicates the data servers that are allowed to be accessed. That is, there may be data servers that are not allowed to be accessed among the multiple data servers. Even if the target data is stored in these data servers that are not allowed to be accessed, it is impossible to communicate with these data servers to obtain the target data. Therefore, after querying the data server that stores the target data from the data distribution information, it is necessary to exclude these data servers that are not allowed to be accessed in order to ensure that each candidate data server in the determined candidate data server set stores the target data and is allowed to be accessed. This ensures the accuracy of the determined candidate data server set, so as to ensure that the target data can be accurately obtained in the future, thereby ensuring the response efficiency, system robustness and service reliability of subsequent data access.
[0059] In this embodiment of the disclosure, a data server may become inaccessible due to its own malfunction, such as a data server crash, database service failure, disk failure, or storage space exhaustion. In such cases, when the data distribution information indicates which data servers are allowed to access, those that are inaccessible due to their own malfunction will be excluded. Alternatively, administrators can specify which data servers are allowed to access and which are not. In this case, when the data distribution information indicates which data servers are allowed to access, those specified by the administrator as inaccessible will be excluded.
[0060] In some embodiments, step S202 includes: in response to an instruction to acquire target data, determining candidate data servers that store the target data and are accessible to the object identifier from multiple data servers based on data distribution information and access constraint information corresponding to the object identifier logged in by the client, forming a candidate data server set, wherein the access constraint information indicates the data servers accessible to the object identifier. The object identifier is used to uniquely identify the identity information of the currently logged-in client. The access constraint information is equivalent to a security policy associated with the object identifier, specifying which data servers the object identifier is allowed to access (e.g., restrictions based on object identifier permissions, the region where the data server is located, security level, etc.). For example, the access constraint information includes server identifiers, which indicate the data servers accessible to the object identifier. A server identifier is a unique identifier used to represent a data server and can be represented by the data server's ID (IDentification).
[0061] In this embodiment, after the client initiates a command to retrieve target data, data distribution information is used to determine which data servers store the target data. Next, the object identifier used by the current client login is identified, and the access constraint information corresponding to that object identifier is queried to determine the data servers that the object identifier has the authority to access. Only data servers that simultaneously meet the conditions of storing target data and being authorized to access it are included in the candidate data server set. This avoids blindly reading from any data server storing the target data, achieving a fusion of precise data access routing and access control. By using data distribution information to ensure the location of the actual data server storing the target data, data retrieval efficiency is improved. Simultaneously, by dynamically filtering illegal or unauthorized access paths using access constraint information, sensitive data leakage or unauthorized operations are prevented, balancing data accessibility and security.
[0062] In some embodiments, the process of obtaining access constraint information includes: in response to a client logging in based on an object identifier, obtaining access constraint information corresponding to the object identifier from an auxiliary server. In this embodiment, after the client logs in based on the object identifier, the instruction to obtain the target data is triggered only during the client's operation. When the client logs in based on the object identifier, the client can communicate with the auxiliary server to obtain the access constraint information corresponding to the object identifier. This mechanism of pre-accessing constraint information ensures that subsequent instructions to obtain certain data can promptly identify the corresponding target data server, thereby ensuring the response efficiency of subsequent data access.
[0063] In some embodiments, an authentication microservice is deployed in the auxiliary server; the process of obtaining access constraint information includes: in response to a client logging in based on an object identifier, sending a third retrieval request to the authentication microservice, and receiving access constraint information returned by the authentication microservice in response to the third retrieval request.
[0064] The Auth Service is a microservice deployed on a secondary server that manages and provides access constraint information corresponding to each object identifier. The third request carries the object identifier to request the access constraint information corresponding to that object identifier.
[0065] In this embodiment, by deploying an authentication microservice on an auxiliary server, the client can proactively request access constraint information corresponding to the object identifier when logging in based on the object identifier. This mechanism enables the client to locally grasp the data server information allowed by the object identifier, thereby autonomously and accurately selecting the optimal target data server in subsequent data accesses. This reduces request forwarding overhead and decision latency, enhances the system's adaptability and fault tolerance, and improves both data acquisition efficiency and communication reliability.
[0066] In some embodiments, the auxiliary server includes a third sub-server on which authentication microservices are deployed.
[0067] In this embodiment, the auxiliary server is not a single physical device, but a logical or physical server cluster composed of multiple sub-servers. Specifically, the third sub-server deploys an authentication microservice, responsible for managing and providing access constraint information corresponding to each object identifier. For example, the auxiliary server includes a first sub-server, a second sub-server, and a third sub-server, each with different microservices deployed on it.
[0068] It should be noted that the above embodiment is illustrated by taking the acquisition of access constraint information when the client logs in based on an object identifier as an example. In another embodiment, in response to an instruction to acquire target data, access constraint information corresponding to the object identifier is acquired from an auxiliary server. In this embodiment, after the client logs in based on the object identifier, the instruction to acquire target data is triggered only during the client's operation. Therefore, when the instruction to acquire target data is triggered, the access constraint information corresponding to the object identifier is acquired from the auxiliary server. This ensures that the acquired access constraint information is the most accurate information at present, thus ensuring the accuracy of the access constraint information and consequently ensuring the accuracy of the subsequent selection of the optimal target data server, thereby improving communication reliability.
[0069] Step S203: From the network topology information, obtain at least one of the following parameters: communication delay parameter, communication stability parameter, and communication cost parameter, corresponding to the candidate data server in the candidate data server set.
[0070] In this embodiment of the disclosure, the network topology information includes at least one of the communication delay parameters, communication stability parameters, and communication cost parameters corresponding to each data server. Then, for each candidate data server in the candidate data server set, at least one of the communication delay parameters, communication stability parameters, and communication cost parameters corresponding to the candidate data server will be obtained from the network topology information.
[0071] In some embodiments, the network topology information includes at least one of communication latency parameters, communication stability parameters, and communication cost parameters between multiple data servers; then step S203 includes: extracting at least one of the communication latency parameters, communication stability parameters, and communication cost parameters between the candidate data server and its neighboring data servers from the network topology information; wherein, the neighboring data server is the one among the multiple data servers that is closest to the location of the terminal, and the client is installed on the terminal. The network topology information is used to describe the connection relationships and communication characteristics between multiple data servers, i.e., parameters such as communication latency, stability, and cost between different data servers. For example, the network topology information is as follows: Figure 4As shown, data servers A, B, C, D, and E, deployed in different regions, are represented by Region A, Region B, Region C, Region D, and Region E, respectively. The network topology information can present the connection relationships between the various data servers and parameters such as communication latency, stability, and cost. An adjacent data server refers to the one among multiple data servers that is geographically closest to the client's terminal, and is used as a reference node for communication performance evaluation.
[0072] In this embodiment, the communication characteristics between each candidate data server and its neighboring data servers (i.e., the data server closest to the user terminal) are extracted from pre-stored network topology information, including at least one of communication latency, stability, or cost. Although the user terminal itself may not be directly connected to the candidate data server, the potential efficiency and reliability of obtaining target data from the candidate data server can be indirectly inferred by the communication performance between the candidate data server and the nearest data server. This proxy evaluation method based on proximity nodes can achieve a reasonable estimate of the network service quality of candidate data servers in the absence of direct terminal connection measurement data. By introducing communication parameters from the network topology information, the selection of data servers is not only based on permissions and data existence, but also takes into account network transmission performance. By prioritizing candidate data servers with low communication latency, high stability, or low cost with neighboring nodes, user experience can be improved (e.g., reducing loading wait time), system operating costs can be reduced (e.g., reducing cross-regional traffic costs), and service robustness can be enhanced (e.g., avoiding high packet loss links).
[0073] It should be noted that the embodiments disclosed herein are illustrated using the example of network topology information including at least one of the communication latency parameters, communication stability parameters, and communication cost parameters corresponding to each data server. In another embodiment, the network topology information includes at least one of the communication latency parameters, communication stability parameters, and communication cost parameters corresponding to each candidate data server in the candidate data server set, without limiting whether it includes at least one of the communication latency parameters, communication stability parameters, and communication cost parameters corresponding to other data servers.
[0074] Step S204: Based on the obtained parameters, determine the quality parameters of the candidate data server. The quality parameters are negatively correlated with the communication quality.
[0075] In this embodiment of the disclosure, at least one of the communication delay parameter, communication stability parameter, and communication cost parameter corresponding to each candidate data server can be obtained by following step S203 above; then, for each candidate data server, the quality parameter of the candidate data server is determined based on the obtained parameter to evaluate the communication quality of the candidate data server; wherein, the higher the quality parameter, the worse the communication quality; the lower the quality parameter, the better the communication quality.
[0076] Among them, the quality parameters are indicators used to quantitatively evaluate the service performance or communication efficiency of the data server. The quality parameters can be represented in any form. The quality parameters are determined based on at least one of the communication latency parameters, communication stability parameters, and communication cost parameters. The quality parameters are equivalent to the parameters used to select the target data server from the set of candidate data servers.
[0077] In some embodiments, the quality parameter is positively correlated with the communication delay parameter and the communication cost parameter, and negatively correlated with the communication stability parameter. That is, the larger the communication delay parameter, the larger the quality parameter, and the smaller the communication delay parameter, the smaller the quality parameter; the larger the communication cost parameter, the larger the quality parameter, and the smaller the communication cost parameter, the smaller the quality parameter; the larger the communication stability parameter, the smaller the quality parameter, and the smaller the communication stability parameter, the larger the quality parameter.
[0078] In some embodiments, the network topology information includes communication delay parameters, communication stability parameters, and communication cost parameters corresponding to the candidate data servers; then step S204 includes: determining the weighted values of the communication delay parameters, communication stability parameters, and communication cost parameters respectively; and subtracting the weighted value of the communication stability parameters from the sum of the weighted values of the communication delay parameters and the communication cost parameters to obtain the quality parameters.
[0079] In this embodiment of the disclosure, the network topology information includes communication latency parameters, communication stability parameters, and communication cost parameters corresponding to the candidate data servers. For each candidate data server, the communication latency parameters, communication stability parameters, and communication cost parameters corresponding to that candidate data server can be obtained. These three parameters are then weighted and calculated to obtain a quality parameter, so that the quality parameter can accurately reflect the communication quality corresponding to the candidate data server, ensuring the accuracy of the quality parameter, and thus ensuring the accuracy of subsequent selection of target data servers.
[0080] In some embodiments, the communication delay parameter, communication stability parameter, communication cost parameter, and quality parameter satisfy the following relationship: Score=W1×latency+W2×cost–W3×stability Wherein, Score represents the quality parameter, W1 represents the weight of the communication delay parameter, latency represents the communication delay parameter, and W1×latency represents the weighted value of the communication delay parameter; W2 represents the weight of the communication cost parameter, cost represents the communication cost parameter, and W2×cost represents the weighted value of the communication cost parameter; W3 represents the weight of the communication stability parameter, stability represents the communication stability parameter, and W3×stability represents the weighted value of the communication stability parameter.
[0081] It should be noted that the embodiments disclosed herein are illustrated using the example of a negative correlation between quality parameters and communication quality. In another embodiment, however, quality parameters are positively correlated with communication quality, that is, quality parameters are negatively correlated with communication delay parameters and communication cost parameters, but positively correlated with communication stability parameters. In this case, the weighted values of communication delay parameters and communication cost parameters can be subtracted from the weighted values of communication stability parameters to obtain the quality parameters.
[0082] Step S205: Based on the quality parameters of each candidate data server in the candidate data server set, determine the target data server that meets the preset conditions from the candidate data server set. The preset conditions indicate that the quality parameters of the target data server are lower than the quality parameters of the other candidate data servers in the candidate data server set.
[0083] In this embodiment, for a set of candidate data servers that have passed permission and data existence verification, the quality parameters corresponding to each candidate data server are obtained. Then, the quality parameters of each candidate data server are compared according to preset conditions to determine the target data server. This ensures that the quality parameters of the target data server are lower than those of the other candidate data servers, meaning that the communication quality of the target data server is superior to that of the other candidate data servers. This mechanism not only ensures data accessibility and security but also enables intelligent scheduling based on real-time or near-real-time service quality, thereby improving overall system performance and user experience.
[0084] In this embodiment, the scheme integrates multi-dimensional communication quality indicators such as communication latency, stability, and cost from network topology information into a unified quality parameter, which is then used as the basis for selecting the best data server, achieving a refined and quantitative evaluation of candidate data servers. Since the quality parameter is negatively correlated with communication quality, it can accurately identify the target data server with the best communication performance. This not only reduces response latency in data acquisition and improves transmission reliability, but also reduces communication overhead in cross-regional or multi-billing scenarios, enhancing the intelligence, adaptability, and economy of data scheduling.
[0085] In some embodiments, there are one or more target data servers. If one target data server is determined, the candidate data server with the lowest quality parameter in the candidate data server set is taken as the target data server. If multiple target data servers are determined, the candidate data servers in the candidate data server set are arranged in order of increasing quality parameter, and the multiple candidate data servers ranked first are all taken as target data servers.
[0086] It should be noted that the embodiments disclosed herein use the example of determining a target data server based on communication delay parameters, communication stability parameters, or communication cost parameters in network topology information for illustration. In another embodiment, it is not necessary to perform the above steps S203-S205. Instead, other methods are adopted to determine a target data server that meets preset conditions from the set of candidate data servers based on network topology information indicating the communication quality of candidate data servers. The preset conditions indicate that the communication quality of the target data server is better than the communication quality of the other candidate data servers in the set of candidate data servers. The communication quality is determined based on at least one of the communication delay parameters, communication stability parameters, and communication cost parameters.
[0087] Step S206: Send a data retrieval request for the target data to the target data server.
[0088] Step S207: Receive the target data returned by the target data server in response to the data acquisition request.
[0089] In this embodiment of the disclosure, regardless of whether the target data server is an adjacent data server (i.e., the data server closest to the user terminal), the client can directly communicate with the target data server in order to obtain the target data from the target data server.
[0090] In some embodiments, if the target data server is not a neighboring data server, a neighboring data server can act as a proxy to interact with the target data server to obtain the target data. That is, the above steps S206-S207 include: if the target data server is not a neighboring data server, sending a data acquisition request to the neighboring data server; wherein, the neighboring data server is used to forward the data acquisition request to the target data server, receive the target data returned by the target data server in response to the data acquisition request, and return the target data to the client; the neighboring data server is the one among multiple data servers that is closest to the location of the terminal, and the client is installed on the terminal; receiving the target data returned by the neighboring data server.
[0091] In this embodiment, a proxy forwarding mechanism is adopted. The adjacent data server is not the optimal data server for acquiring the target data, but it acts as an intermediate node, forwarding the data acquisition request to the target data server and sending back the response, thus functioning as a "communication proxy." The terminal is a user device (such as a mobile phone or computer) with a client application installed, and it is the initiator of the data acquisition request.
[0092] In this embodiment, when the selected target data server is not the nearest neighboring data server to the user, the client is not forced to communicate directly with the remote target data server. Instead, a proxy forwarding mode is adopted: the client sends a data acquisition request to the neighboring data server (i.e., the data server closest to it), which acts as a proxy, forwarding the data acquisition request to the actual target data server, receiving the target data returned, and then sending the target data back to the client. By introducing a neighboring data server as a proxy, the client always communicates with a low-latency, high-stability local node, avoiding the risks of high latency, packet loss, or connection failure caused by directly connecting to the remote target data server. At the same time, the internal communication between data servers is usually deployed in a high-bandwidth, low-jitter private network, making the overhead of proxy forwarding controllable and even better than direct terminal connection. This mechanism retains the flexibility of target data server selection while optimizing the access experience on the terminal side.
[0093] In the solution provided by this disclosure, during operation, the client, in response to a command to retrieve target data, can proactively combine data distribution information and network topology information to dynamically select a target data server from multiple associated data servers that both stores the target data and possesses excellent communication quality. The client then communicates with the target data server to retrieve the target data. This eliminates the traditional passive mode that relies on unified backend routing, avoiding problems such as high latency and request failures caused by static routing strategies or blind forwarding. It improves the response efficiency of data access, system robustness, and service reliability, thereby optimizing the overall user experience.
[0094] It should be noted that the above Figure 2The illustrated embodiment uses the data distribution information and network topology information obtained when the client starts to determine the target data server. In another embodiment, if the data distribution information and network topology information obtained when the client starts may be updated, the client will use the latest data distribution information and network topology information to determine the target data server. That is, the process of determining the target data server includes: if data distribution information and network topology information have been obtained from the auxiliary server, in response to an update of the data distribution information or network topology information in the auxiliary server, obtaining the updated data distribution information or updated network topology information; in response to an acquisition command, based on the latest data distribution information, determining candidate data servers storing the target data from multiple data servers to form a candidate data server set; and based on the latest network topology information, determining the target data server that meets preset conditions from the candidate data server set.
[0095] In this embodiment, upon startup, the client obtains initial data distribution information and initial network topology information from the auxiliary server. This information is used to determine the target data server when accessing certain data. However, since data in a distributed system may change due to load balancing, fault migration, or expansion, and network conditions may fluctuate over time, the data distribution information and network topology information in the auxiliary server are not static. When an update to the data distribution information or network topology information is detected, the client communicates with the auxiliary server to retrieve the latest data distribution information or network topology information. This ensures that the client always caches the latest data distribution information and network topology information, thereby guaranteeing that the client always determines the optimal target data server based on the latest data distribution information and network topology information, i.e., makes the optimal access decision.
[0096] In this embodiment, the client obtains initial data distribution information and initial network topology information from the auxiliary server upon startup. When an update to the data distribution information or network topology information is detected, the client communicates with the auxiliary server to retrieve the latest data distribution information or the latest network topology information. In this way, in response to a request to retrieve target data, the optimal target data server can be determined based on the latest data distribution information and the latest network topology information. By dynamically sensing and responding to updates to the data distribution information and network topology information, request failures or retry overhead caused by accessing the wrong server due to the use of outdated data distribution information are avoided. Optimizing server selection using real-time network topology information reduces access latency, increases throughput, and enhances the robustness and adaptability of the system in dynamic network environments, thereby improving the accuracy and efficiency of the client's access to target data.
[0097] In this embodiment, the instruction to acquire target data is triggered after the data distribution information or network topology information has been updated; therefore, the target data server can be determined using the latest data distribution information and the latest network topology information. Alternatively, the instruction to acquire target data may be triggered before the data distribution information or network topology information has been updated. In this case, the target data server can be determined using the data distribution information and network topology information obtained when the client starts. After the data distribution information or network topology information has been updated, the client will obtain the latest data distribution information and the latest network topology information. Then, in response to an instruction to acquire any data, the latest data distribution information and the latest network topology information will be combined to determine the corresponding target data server.
[0098] In this embodiment, when data distribution information and network topology information are updated, the client actively communicates with the auxiliary server to obtain the latest data distribution information and network topology information; alternatively, the auxiliary server may actively push the latest data distribution information and network topology information to the client. For example, the client subscribes to the auxiliary server's information update time or periodically polls. If the version of the data distribution information stored on the auxiliary server differs from the version stored on the client, or if the version of the network topology information stored on the auxiliary server differs from the version stored on the client, the client will actively send a request to the auxiliary server to obtain the latest version of the data distribution information or the latest version of the network topology information. For example, when the data distribution information or network topology information in the auxiliary server is updated, the server will actively push the latest data distribution information or the latest network topology information to the client, so that the client receives and updates its locally cached data distribution information or network topology information, ensuring that the client always caches the latest data distribution information and the latest network topology information.
[0099] It should be noted that the above Figure 2 The illustrated embodiment uses the data distribution information and network topology information obtained when the client starts to determine the target data server as an example. In another embodiment, step S201 is not required; instead, other methods are used to obtain the data distribution information and network topology information. In some embodiments, the client obtains the data distribution information and network topology information in response to a request for certain data. That is, the process of obtaining the data distribution information and network topology information includes: in response to a request for target data, obtaining the data distribution information and network topology information from an auxiliary server; and then determining the target data server based on the data distribution information and network topology information according to steps S101-S102 or S202-S205.
[0100] In this embodiment, the client does not uniformly obtain data distribution information and network topology information upon startup. Instead, it adopts an on-demand acquisition strategy: only when it receives an instruction to acquire specific target data does it initiate an acquisition request to the auxiliary server, retrieving the latest data distribution information and current network topology information related to that target data in real time. This approach avoids preloading data that may not be needed temporarily during the client startup phase, reducing unnecessary resource overhead, lowering the client's initialization burden and network bandwidth consumption. Furthermore, by acquiring data distribution information and network topology information only when data is actually needed, it ensures that the data distribution information and network topology information used are highly timely, avoiding access errors or performance degradation due to cache expiration.
[0101] Based on the embodiments shown above, in this embodiment of the disclosure, the client is equipped with a Topo Agent (Topology Agent) and a Policy Evaluation Engine (PEE). When the client starts, the Topo Agent interacts with each microservice to pre-obtain data distribution information, network topology information, and access constraint information, such as... Figure 5 As shown, the initialization and topology-aware process includes: S501, Topo Agent identifies the local region, collects basic network metrics, and sends the local region and basic network metrics to TopoService (i.e., topology microservice).
[0102] The Topo Agent is a lightweight agent module deployed locally on the client side. It is used to understand the local network environment, collect network metrics, and communicate with various microservices. The local region represents the client's adjacent data servers (i.e., the data server closest to the user's terminal). Basic network metrics are quantitative indicators representing the communication quality between the client and adjacent data server points.
[0103] In this embodiment, the Topo Agent, as a sensing unit deployed on the client, first identifies the local region where the client is located. This region information can come from configuration files, cloud platform metadata interfaces, or IP address geolocation mapping. Subsequently, the Topo Agent actively collects basic network metrics between itself and neighboring data servers. After completing information collection, the Topo Agent packages the local region identifier with the collected basic network metrics and sends it to the Topo Service over the network. Based on the data reported by each Topo Agent, the Topo Service constructs and maintains real-time, dynamic global network topology information, providing a decision-making basis for the client to select the optimal target data server.
[0104] S502, Topo Service sends network topology information with a version number to Topo Agent, which receives and caches the network topology information.
[0105] S503, Topo Agent sends a request to Meta Service (i.e., metadata microservice) to request data distribution information on demand.
[0106] S504 and Meta Service obtain data distribution information based on the feature set or user range indicated by the request, and return the data distribution information to the Topo Agent, which receives and caches the data distribution information.
[0107] In this embodiment, after completing local region identification and basic network metric collection, the Topo Agent further initiates a metadata retrieval request to the Meta Service. This metadata retrieval request may carry specific information based on the current business context, such as the identifier of the target feature set to be accessed, the current user identifier, or the user group / region range to which it belongs. Upon receiving the metadata retrieval request, the Meta Service does not return the full data distribution information. Instead, it retrieves the data distribution information related to the feature set or user range as needed based on the parameters carried in the metadata retrieval request and returns it to the Topo Agent. The returned data distribution information describes the storage location of the relevant data on multiple data servers, thereby avoiding the transmission of redundant metadata.
[0108] S505, Topo Agent sends a token request to Auth Service (i.e., the authentication microservice).
[0109] S506, Auth Service responds to the token request by issuing a region binding token to the Topo Agent. The region binding token contains a list of regions that the user is authorized to access and the permitted feature categories of permissions.
[0110] In this embodiment, to ensure the security and compliance of data access, an authentication microservice is introduced to verify user requests. Once a user is authenticated, the Auth Service issues a region-binding token. This token not only identifies the user but also embeds two key policy pieces of information: first, a list of allowed regions (e.g., Region 1, Region 2, etc.), restricting the user to reading data only from their authorized region; and second, feature category permissions (e.g., Feature Category 1, Feature Category 2, etc.), controlling the types of data the user can access. The region-binding token will subsequently be used for permission verification, ensuring that data access is both efficient and secure.
[0111] In this embodiment, the policy evaluation engine preloads access policy configuration, network topology information, and data distribution information, entering a ready state to process data access requests. As the core decision-making module of the client, the policy evaluation engine actively loads network topology and data distribution information during the initialization phase. Once loaded, the client possesses the network topology and data distribution information and can perform policy evaluation and target data server selection based on this information. The policy evaluation engine then enters a "standby" state, ready to respond to data acquisition requests initiated by upper-layer applications. When a request arrives, the policy evaluation engine can immediately combine the loaded network topology and data distribution information to quickly complete permission verification, server selection, and routing decisions, thereby reducing request processing latency and improving system real-time performance and response efficiency.
[0112] Based on the embodiments shown above, the policy evaluation engine responds to the instruction to obtain target data, taking as input the data identifier (feature id), local region, network topology information, data distribution information, access policy configuration, and live network metrics. The execution steps are as follows: Step 1: Obtain the primary storage region corresponding to the feature ID from the data distribution information, and denote it as primary.
[0113] Where, primary = FPM.primary region(feature id).
[0114] Step 2: Obtain the replica regions corresponding to the feature ID from the data distribution information, and construct the initial set of candidate data servers by combining the replica regions with the primary storage regions, which are the initial candidates.
[0115] The initial candidates are set to [primary] + FPM.replica regions (feature id).
[0116] Step 3: Filter the initial candidates based on hard constraints: r belongs to the set of allowed regions declared in the data distribution information, and the currently held region binding token is authorized to access the region r, thus obtaining the filtered candidates.
[0117] The filtered candidates = filter(initial candidates, r in FPM.allowedregions and token.permits(r)), meaning that the filtered candidates are those r that meet the above two conditions.
[0118] Step 4: For each candidate data server in the filtered candidates, extract the communication delay parameters, communication stability parameters, and communication cost parameters between adjacent data servers and candidate data servers from the network topology information, and use the communication delay parameters, communication stability parameters, and communication cost parameters to calculate the quality parameters, also known as the comprehensive score.
[0119] The communication delay parameter is `latency=RTG.latency(local region, r)` adjusted to the most recent measurement value, the communication stability parameter is `stability=RTG.stability(local region, r)`, and the communication cost parameter is `cost=RTG.cost(local region, r)`.
[0120] In this embodiment of the disclosure, the communication latency parameter can be dynamically corrected by combining the most recently measured network latency in real-time network metrics.
[0121] Step 5: Sort the candidate data servers in the filtered candidates in ascending order of their comprehensive score, and select the candidate data server with the lowest comprehensive score as the optimal target data server.
[0122] Step 6: If the target data server is an adjacent data server, the local direct connection mode is used to directly obtain the target data from the adjacent data server; if the target data server is not an adjacent data server, the cross-region access mode is entered. According to the routing policy in the access policy configuration, a proxy channel is established through the region gateway corresponding to the local region (i.e., the adjacent data server), and the data acquisition request is forwarded to the target data server through the gateway to obtain the target data; or, the proxy is bypassed and the target data server is directly connected to obtain the target data.
[0123] Step 7: Return the final access endpoint information and access mode.
[0124] The access endpoint information includes the target data server address. The access mode indicates direct connection mode or proxy mode, as well as the caching policy. The caching policy indicates whether local caching is allowed, the maximum cache lifespan, and whether bypass caching is required.
[0125] In this embodiment, the policy evaluation engine itself is a decision-making component used to return the optimal access endpoint and access mode, but it does not directly initiate network requests or read data. After the policy evaluation engine returns the result, the data access execution module in the client is responsible for the subsequent actual data reading operation.
[0126] Based on the embodiments shown above, this disclosure provides a flowchart for topology and distribution updates, such as... Figure 6 As shown, the method includes: Step 1: The Topo Agent, acting as the client's topology-aware agent, establishes a persistent connection with the Topo Service through an event subscription mechanism or a timed polling method. When the Topo Service detects a change in network topology information, it will publish a network topology information change notification with an incrementing version number. After receiving the change notification, the Topo Agent retrieves the latest network topology information and updates the locally stored communication latency parameters, communication stability parameters, and communication cost parameters according to the new version of the network topology information.
[0127] Step 2: When the data distribution information is updated, the Meta Service actively pushes a notification of the data distribution information change to the policy evaluation engine in the registered client. After receiving the notification, the policy evaluation engine retrieves the latest data distribution information from the Meta Service, refreshes the locally cached data distribution information, triggers route reconstruction, and re-evaluates the candidate region list.
[0128] Step 3: During the data access process, the Topo Agent collects data reading results from the client, including recent telemetry data such as actual latency, success rate, and response time; this feedback data is reported to the dynamic tuning engine inside the policy evaluation engine; the dynamic tuning engine automatically adjusts the weights of communication latency parameters, communication stability parameters, and communication cost parameters in the scoring formula based on recent telemetry data to reflect the real user experience.
[0129] This disclosure proposes a novel client-side intelligent routing mechanism. By introducing four core components on the client side—network topology information, data distribution information, policy evaluation engine, and secure access adapter—and combining them with a centralized topology update and telemetry feedback mechanism, it enables dynamic, compliant, and efficient access to feature data. Specifically, the client locally maintains a versioned network topology information. This network topology information is constructed based on multi-source information and reflects the logical regions represented by each data server node. Edge weights include indicators such as network latency, link stability, interconnection relationships, and access costs between regions, which are used to support real-time endpoint scoring, reduce reliance on server redirection, make decisions closer to the user's actual network conditions, and reduce tail latency and switching time. At the same time, the client obtains and caches data distribution information on demand through metadata microservices, binding each feature key or data shard to its primary resident region, readable replica region, and compliant allowed access region set in a standardized form, ensuring the accuracy and timeliness of data location and permission information. On this basis, the policy evaluation engine performs compliance hard filtering based on the region binding token and access constraints in the data distribution information, eliminating illegal candidate regions. Then, based on the multi-dimensional network indicators in the network topology information, it selects the optimal access endpoint from the legitimate candidates through a weighted scoring function, and has built-in read / write consistency levels and disaster recovery degradation strategies. In addition, the Secure Access Adapter (SAA) is responsible for performing region binding credential verification and end-to-end encryption to ensure the security of cross-region access. Without altering the backend storage system, this mechanism can automatically perceive regional topology and characteristic distribution, select the best access endpoint based on compliance constraints and performance indicators, and provide disaster recovery, degradation, and consistency strategies.
[0130] In recommendation or risk control scenarios, business data is typically deployed across multiple locations. Without the solution provided in this disclosure, access policies rely on static configurations loaded at service startup, such as binding to a storage service in a specific region. If the storage service in that region fails, data will be unavailable, causing business interruption and significant losses. However, the solution provided in this disclosure dynamically loads access policies based on real-time topology relationships. As long as available feature service nodes exist, the system can automatically switch and continue operating normally, only failing when all related storage services become unavailable, thus improving system stability.
[0131] In this embodiment of the disclosure, to address the cold start problem when new users or new regions access the system, a cold start optimization mechanism is further introduced: During the initial access phase, the client generates an initial access strategy by combining prior knowledge (such as global default feature distribution, topology and performance data of historical similar users / regions), and quickly verifies the candidate data server with a small number of concurrent probe requests. This reduces probe overhead and quickly converges to the near-optimal access path, shortens the decision delay during the cold start phase, significantly reduces the tail latency when new users or new regions access the system for the first time, and improves the overall service experience.
[0132] Corresponding to the aforementioned data acquisition method, this disclosure further provides a data acquisition device. Figure 7 This is a schematic diagram of a data acquisition device provided in an embodiment of the present disclosure. The device can be implemented by software and / or hardware, and is generally integrated into an electronic device, such as... Figure 7 As shown, the data acquisition device includes: The determining module 701 is used to respond to the acquisition instruction for the target data, and determine the candidate data server storing the target data from the multiple data servers based on the data distribution information indicating the data storage situation of multiple data servers, thereby forming a candidate data server set; The determining module 701 is further configured to determine a target data server that meets preset conditions from the set of candidate data servers based on network topology information indicating the communication quality of candidate data servers. The preset conditions indicate that the communication quality of the target data server is better than the communication quality of the other candidate data servers in the set of candidate data servers. The communication quality is determined based on at least one of a communication delay parameter, a communication stability parameter, and a communication cost parameter. Sending module 702 is used to send a data acquisition request for target data to the target data server; The receiving module 703 is used to receive the target data returned by the target data server in response to the data acquisition request.
[0133] In some embodiments, the network topology information includes at least one of a communication delay parameter, a communication stability parameter, and a communication cost parameter corresponding to the candidate data server; the determining module 701 is configured to obtain at least one of the communication delay parameter, communication stability parameter, and communication cost parameter corresponding to the candidate data server from the network topology information; determine the quality parameter of the candidate data server based on the obtained parameter, wherein the quality parameter is negatively correlated with the communication quality; and determine the target data server that meets the preset conditions from the candidate data server set based on the quality parameter of each candidate data server in the candidate data server set, wherein the preset conditions indicate that the quality parameter of the target data server is lower than the quality parameters of the other candidate data servers in the candidate data server set.
[0134] In some embodiments, the network topology information includes at least one of communication delay parameters, communication stability parameters, and communication cost parameters between multiple data servers; the determining module 701 is used to extract at least one of the communication delay parameters, communication stability parameters, and communication cost parameters between the candidate data server and the adjacent data server from the network topology information; wherein, the adjacent data server is the one among multiple data servers that is closest to the location of the terminal, and the client is installed in the terminal.
[0135] In some embodiments, the network topology information includes communication delay parameters, communication stability parameters, and communication cost parameters corresponding to the candidate data servers; the determining module 701 is used to determine the weighted values of the communication delay parameters, communication stability parameters, and communication cost parameters respectively; the quality parameter is obtained by subtracting the weighted value of the communication stability parameters from the sum of the weighted values of the communication delay parameters and the communication cost parameters.
[0136] In some embodiments, the data distribution information indicates the data identifier of the data stored in each data server; the determination module 701 is used to query the candidate data servers storing the target data from the data distribution information based on the data identifier of the target data in response to the acquisition instruction, thereby forming a candidate data server set.
[0137] In some embodiments, the data distribution information further indicates the data servers that are allowed to be accessed; the determining module 701 is configured to, in response to the acquisition instruction, query the data distribution information based on the data identifier of the target data to obtain the data server storing the target data; and, based on the data distribution information, determine the candidate data servers that are allowed to be accessed from the queried data servers to form a set of candidate data servers.
[0138] In some embodiments, the determining module 701 is configured to, in response to an acquisition instruction, determine, from multiple data servers, a candidate data server that stores the target data and allows the object identifier to access it, based on data distribution information and access constraint information corresponding to the object identifier logged in by the client, to form a candidate data server set, wherein the access constraint information indicates the data server that allows the object identifier to access it.
[0139] In some embodiments, the sending module 702 is configured to send a data acquisition request to a neighboring data server if the target data server is not a neighboring data server; wherein, the neighboring data server is configured to forward the data acquisition request to the target data server, receive the target data returned by the target data server in response to the data acquisition request, and return the target data to the client; the neighboring data server is the one among multiple data servers that is closest to the location of the terminal, and the client is installed in the terminal; The receiving module 703 is used to receive target data returned by the adjacent data server.
[0140] In some embodiments, the determining module 701 is further configured to obtain data distribution information and network topology information from the auxiliary server in response to client initiation.
[0141] In some embodiments, the determining module 701 is further configured to, in response to an update of the data distribution information or network topology information in the auxiliary server, obtain updated data distribution information or updated network topology information when data distribution information and network topology information have been obtained from the auxiliary server. The determination module 701 is used to respond to the acquisition command and, based on the latest data distribution information, determine the candidate data servers storing the target data from multiple data servers to form a candidate data server set. The determination module 701 is used to determine the target data server that meets the preset conditions from the candidate data server set based on the latest network topology information.
[0142] In some embodiments, the auxiliary server is equipped with a metadata microservice and a topology microservice; the determining module 701 is configured to, in response to client startup, send a first acquisition request to the metadata microservice and a second acquisition request to the topology microservice; receive data distribution information returned by the metadata microservice in response to the first acquisition request; and receive network topology information returned by the topology microservice in response to the second acquisition request.
[0143] In some embodiments, the auxiliary server includes a first sub-server with a metadata microservice deployed and a second sub-server with a topology microservice deployed.
[0144] In some embodiments, the determining module 701 is configured to, in response to an instruction to acquire target data, acquire data distribution information and network topology information from an auxiliary server; and, based on the data distribution information, determine candidate data servers storing target data from multiple data servers to form a candidate data server set.
[0145] The data acquisition apparatus provided in this disclosure can execute the data acquisition method provided in any embodiment of this disclosure, and has the corresponding functional modules and beneficial effects for executing the method. Those skilled in the art will clearly understand that, for the sake of convenience and brevity, the specific working process of the apparatus embodiments described above can be referred to the corresponding process in the method embodiments, and will not be repeated here.
[0146] This disclosure provides an electronic device, comprising: a storage device storing a computer program thereon; and a processing device for executing the computer program in the storage device to implement any data acquisition method of this disclosure. Reference is made below. Figure 8 This diagram illustrates a structural schematic of an electronic device 800 suitable for implementing embodiments of the present disclosure. The terminal devices in the embodiments of the present disclosure may include, but are not limited to, mobile terminals such as mobile phones, laptops, digital broadcast receivers, PDAs (personal digital assistants), PADs (tablet computers), PMPs (portable multimedia players), in-vehicle terminals (e.g., in-vehicle navigation terminals), and fixed terminals such as digital TVs and desktop computers. Figure 8 The electronic device shown is merely an example and should not be construed as limiting the functionality and scope of the embodiments disclosed herein.
[0147] like Figure 8 As shown, the electronic device 800 may include a processing device (e.g., a central processing unit, a graphics processor, etc.) 801, which can perform various appropriate actions and processes according to a program stored in a read-only memory (ROM) 802 or a program loaded from a storage device 808 into a random access memory (RAM) 803. The RAM 803 also stores various programs and data required for the operation of the electronic device 800. The processing device 801, ROM 802, and RAM 803 are interconnected via a bus 804. An input / output (I / O) interface 805 is also connected to the bus 804.
[0148] Typically, the following devices can be connected to I / O interface 805: input devices 806 including, for example, touchscreens, touchpads, keyboards, mice, cameras, microphones, accelerometers, gyroscopes, etc.; output devices 807 including, for example, liquid crystal displays (LCDs), speakers, vibrators, etc.; storage devices 808 including, for example, magnetic tapes, hard disks, etc.; and communication devices 809. Communication device 809 allows electronic device 800 to communicate wirelessly or wiredly with other devices to exchange data. Although Figure 8 An electronic device 800 with various devices is shown; however, it should be understood that it is not required to implement or possess all of the devices shown. More or fewer devices may be implemented or possessed alternatively.
[0149] In particular, according to embodiments of this disclosure, the processes described above with reference to the flowcharts can be implemented as computer software programs. For example, embodiments of this disclosure include a computer program product comprising a computer program carried on a non-transitory computer-readable medium, the computer program containing program code for performing the methods shown in the flowcharts. In such embodiments, the computer program can be downloaded and installed from a network via a communication device 809, or installed from a storage device 808, or installed from a ROM 802. When the computer program is executed by a processing device 801, it performs the functions defined in the methods of embodiments of this disclosure.
[0150] In addition to the methods and devices described above, embodiments of this disclosure can also be computer program products, comprising computer program instructions that, when executed by a processor, cause the processor to perform the image processing methods provided in the embodiments of this disclosure. The computer program product can be written in any combination of one or more programming languages to perform the operations of the embodiments of this disclosure. The programming languages include object-oriented programming languages such as Java and C++, as well as conventional procedural programming languages such as C or similar languages. The program code can be executed entirely on a user's computing device, partially on a user's device, as a standalone software package, partially on a user's computing device and partially on a remote computing device, or entirely on a remote computing device or server.
[0151] Furthermore, embodiments of this disclosure may also be computer-readable storage media storing computer program instructions that, when executed by a processor, cause the processor to perform the data acquisition method provided in embodiments of this disclosure.
[0152] The computer-readable storage medium may be any combination of one or more readable media. A readable medium may be a readable signal medium or a readable storage medium. A readable storage medium may be, for example, an electrical, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any combination thereof. More specific examples of readable storage media (a non-exhaustive list) include: an electrical connection having one or more wires, a portable disk, a hard disk, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), optical fiber, portable compact disk read-only memory (CD-ROM), optical storage device, magnetic storage device, or any suitable combination thereof.
[0153] This disclosure also provides a computer program product, including a computer program / instructions, which, when executed by a processor, implement the data acquisition method of this disclosure.
[0154] It is understood that before using the technical solutions disclosed in the various embodiments of this disclosure, users should be informed of the types, scope of use, and usage scenarios of the personal information involved in this disclosure in an appropriate manner in accordance with relevant laws and regulations, and user authorization should be obtained.
[0155] For example, upon receiving a user's active request, a prompt message is sent to the user to explicitly inform them that the requested operation will require the acquisition and use of the user's personal information. This allows the user to independently choose whether to provide personal information to the software or hardware, such as the electronic device, application, server, or storage medium performing the operations of this disclosed technical solution, based on the prompt message.
[0156] As an optional but non-limiting implementation, in response to a user's active request, sending a prompt message to the user can be done via a pop-up window, where the prompt message can be presented in text format. Furthermore, the pop-up window can also include a selection control allowing the user to choose "agree" or "disagree" to provide personal information to the electronic device.
[0157] It is understood that the above notification and user authorization process are merely illustrative and do not constitute a limitation on the implementation of this disclosure. Other methods that comply with relevant laws and regulations may also be applied to the implementation of this disclosure.
[0158] It should be noted that, in this document, relational terms such as "first" and "second" are used merely to distinguish one entity or operation from another, and do not necessarily require or imply any such actual relationship or order between these entities or operations. Furthermore, 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. Without further limitations, an element defined by the phrase "comprising one..." does not exclude the presence of other identical elements in the process, method, article, or apparatus that includes said element.
[0159] The above description is merely a specific embodiment of this disclosure, enabling those skilled in the art to understand or implement it. Various modifications to these embodiments will be readily apparent to those skilled in the art, and the general principles defined herein may be implemented in other embodiments without departing from the spirit or scope of this disclosure. Therefore, this disclosure is not to be limited to the embodiments described herein, but is to be accorded the widest scope consistent with the principles and novel features disclosed herein.
Claims
1. A data acquisition method, characterized in that, Applied to the client side, including: In response to an instruction to acquire target data, based on data distribution information indicating the data storage status of multiple data servers, candidate data servers storing the target data are determined from the multiple data servers to form a candidate data server set; Based on network topology information indicating the communication quality of the candidate data servers, a target data server that meets preset conditions is determined from the set of candidate data servers. The preset conditions indicate that the communication quality of the target data server is better than the communication quality of the other candidate data servers in the set of candidate data servers. The communication quality is determined based on at least one of a communication delay parameter, a communication stability parameter, and a communication cost parameter. Send a data acquisition request for the target data to the target data server; Receive the target data returned by the target data server in response to the data acquisition request.
2. The method according to claim 1, characterized in that, The network topology information includes at least one of the communication delay parameter, the communication stability parameter, and the communication cost parameter corresponding to the candidate data server; the step of determining a target data server that meets preset conditions from the candidate data server set based on the network topology information indicating the communication quality of the candidate data server includes: From the network topology information, obtain at least one of the communication delay parameter, the communication stability parameter, and the communication cost parameter corresponding to the candidate data server; Based on the acquired parameters, the quality parameters of the candidate data server are determined, and the quality parameters are negatively correlated with the communication quality. Based on the quality parameters of each candidate data server in the candidate data server set, a target data server that meets the preset conditions is determined from the candidate data server set. The preset conditions indicate that the quality parameters of the target data server are lower than the quality parameters of the other candidate data servers in the candidate data server set.
3. The method according to claim 2, characterized in that, The network topology information includes at least one of the communication latency parameter, the communication stability parameter, and the communication cost parameter among the plurality of data servers; obtaining at least one of the communication latency parameter, the communication stability parameter, and the communication cost parameter corresponding to the candidate data server from the network topology information includes: From the network topology information, at least one of the communication delay parameter, the communication stability parameter, and the communication cost parameter between the candidate data server and the adjacent data server is extracted; wherein, the adjacent data server is the one among the plurality of data servers that is closest to the location of the terminal, and the client is installed on the terminal.
4. The method according to claim 2, characterized in that, The network topology information includes the communication latency parameter, the communication stability parameter, and the communication cost parameter corresponding to the candidate data server; The process of determining the quality parameters of the candidate data server based on the acquired parameters includes: The weighted values of the communication delay parameter, the communication stability parameter, and the communication cost parameter are determined respectively; The quality parameter is obtained by subtracting the weighted value of the communication stability parameter from the sum of the weighted values of the communication delay parameter and the communication cost parameter.
5. The method according to claim 1, characterized in that, The data distribution information indicates the data identifier of the data already stored in each data server; in response to the instruction to obtain the target data, based on the data distribution information indicating the data storage status of multiple data servers, candidate data servers storing the target data are determined from the multiple data servers, forming a candidate data server set, including: In response to the acquisition instruction, based on the data identifier of the target data, a candidate data server storing the target data is queried from the data distribution information to form the candidate data server set.
6. The method according to claim 5, characterized in that, The data distribution information also indicates allowed data servers; in response to the acquisition instruction, based on the data identifier of the target data, a candidate data server storing the target data is queried from the data distribution information, constituting the candidate data server set, including: In response to the acquisition instruction, a query is performed from the data distribution information based on the data identifier of the target data to obtain the data server storing the target data; Based on the data distribution information, candidate data servers that are allowed to be accessed are determined from the queried data servers, forming the candidate data server set.
7. The method according to claim 1, characterized in that, In response to an instruction to acquire target data, based on data distribution information indicating the data storage status of multiple data servers, candidate data servers storing the target data are determined from the multiple data servers, forming a candidate data server set, including: In response to the acquisition instruction, based on the data distribution information and the access constraint information corresponding to the object identifier logged in by the client, candidate data servers that store the target data and allow the object identifier to access it are determined from the plurality of data servers, forming the candidate data server set, and the access constraint information indicates the data server that allows the object identifier to access it.
8. The method according to any one of claims 1 to 7, characterized in that, Sending a data acquisition request for the target data to the target data server includes: If the target data server is not a neighboring data server, the data acquisition request is sent to the neighboring data server; wherein, the neighboring data server is used to forward the data acquisition request to the target data server, receive the target data returned by the target data server in response to the data acquisition request, and return the target data to the client; the neighboring data server is the one among the plurality of data servers that is closest to the location of the terminal, and the client is installed on the terminal; The step of receiving the target data returned by the target data server in response to the data acquisition request includes: Receive the target data returned by the adjacent data server.
9. The method according to any one of claims 1 to 7, characterized in that, Before determining candidate data servers storing the target data from among the multiple data servers and forming a candidate data server set based on data distribution information indicating the data storage status of multiple data servers in response to the instruction to acquire target data, the method further includes: In response to the client's startup, the data distribution information and network topology information are obtained from the auxiliary server.
10. The method according to claim 9, characterized in that, Before determining candidate data servers storing the target data from among the multiple data servers and forming a candidate data server set based on data distribution information indicating the data storage status of multiple data servers in response to the instruction to acquire target data, the method further includes: If the data distribution information and the network topology information have been obtained from the auxiliary server, in response to an update of the data distribution information or network topology information in the auxiliary server, the updated data distribution information or updated network topology information is obtained. In response to an instruction to acquire target data, based on data distribution information indicating the data storage status of multiple data servers, candidate data servers storing the target data are determined from the multiple data servers, forming a candidate data server set, including: In response to the acquisition instruction, based on the latest data distribution information, candidate data servers storing the target data are determined from the plurality of data servers to form the candidate data server set; The step of determining a target data server that meets preset conditions from the set of candidate data servers based on network topology information indicating the communication quality of the candidate data servers includes: Based on the latest network topology information, target data servers that meet preset conditions are determined from the set of candidate data servers.
11. The method according to claim 9, characterized in that, The auxiliary server is equipped with metadata microservices and topology microservices. The response to the client's initiation, obtaining the data distribution information and the network topology information from the auxiliary server, includes: In response to the client's startup, a first retrieval request is sent to the metadata microservice, and a second retrieval request is sent to the topology microservice; Receive the data distribution information returned by the metadata microservice in response to the first acquisition request; Receive the network topology information returned by the topology microservice in response to the second acquisition request.
12. The method according to claim 11, characterized in that, The auxiliary server includes a first sub-server that deploys the metadata microservice and a second sub-server that deploys the topology microservice.
13. The method according to any one of claims 1 to 7, characterized in that, In response to an instruction to acquire target data, based on data distribution information indicating the data storage status of multiple data servers, candidate data servers storing the target data are determined from the multiple data servers, forming a candidate data server set, including: In response to a command to acquire target data, the data distribution information and the network topology information are acquired from an auxiliary server. Based on the data distribution information, candidate data servers storing the target data are determined from the plurality of data servers, forming the candidate data server set.
14. A data acquisition device, characterized in that, include: The determination module is used to respond to the acquisition instruction for target data, and determine the candidate data server storing the target data from the multiple data servers based on data distribution information indicating the data storage status of multiple data servers, thereby forming a candidate data server set; The determining module is further configured to determine a target data server that meets preset conditions from the set of candidate data servers based on network topology information indicating the communication quality of the candidate data servers. The preset conditions indicate that the communication quality of the target data server is better than the communication quality of the other candidate data servers in the set of candidate data servers. The communication quality is determined based on at least one of a communication delay parameter, a communication stability parameter, and a communication cost parameter. The sending module is used to send a data acquisition request for the target data to the target data server; A receiving module is used to receive the target data returned by the target data server in response to the data acquisition request.
15. An electronic device, characterized in that, The electronic device includes: A storage device on which computer programs are stored; A processing device for executing the computer program in the storage device to implement the data acquisition method according to any one of claims 1 to 13.
16. A computer-readable storage medium, characterized in that, The storage medium stores a computer program for executing the data acquisition method according to any one of claims 1 to 13.
17. A computer program product, characterized in that, It includes a computer program that, when executed by a processor, implements the data acquisition method according to any one of claims 1 to 13.