Data sharing method and computing device
Through distributed data transmission and parallel distribution technology, multiple computing nodes are scheduled to send data, which solves the problems of slow access speed and high failure risk of centralized data sharing platforms and realizes more efficient and reliable data sharing.
Patent Information
- Application Number
- CN202510724216.0
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2025-05-30
- Publication Date
- 2025-09-05
AI Technical Summary
Existing data sharing platforms rely on centralized data center servers, resulting in slow access speeds, high failure risks, and difficulty in achieving efficient and reliable data sharing.
Through distributed data transmission, multiple computing nodes are scheduled to send data, reducing the instantaneous access pressure of the central server. Distributed sending and parallel distribution technology are used to select the optimal computing node for data transmission.
It improves the data download speed and success rate, reduces the distribution pressure of a single node, and achieves more efficient and reliable data sharing.
Smart Images

Figure CN120602473A_ABST
Abstract
Description
Technical Field
[0001] The present application relates to the field of data processing, and in particular to a data sharing method and computing device. Background Art
[0002] A data sharing platform is an online platform that allows users to share and access AI (Artificial Intelligence) data. AI data refers to AI-related data, such as training data. Current data sharing platforms rely on centralized data center servers. Due to the large volume of AI data, existing AI data sharing methods suffer from slow access speeds and high failure risks.
[0003] Therefore, how to provide a more efficient and reliable data sharing method is a technical problem that needs to be solved urgently. Summary of the Invention
[0004] The embodiments of the present application provide a data sharing method and computing device, which perform data transmission through computing nodes storing data, thereby improving data transmission efficiency and success rate.
[0005] According to a first aspect of an embodiment of the present application, a data sharing method is provided, comprising:
[0006] receiving a data read request, the data read request including first data information, the first data information including one or more items of metadata of the first data, the metadata being used to characterize characteristics of the data, the first data being the data requested to be read;
[0007] Determining, based on the first data information, a plurality of computing nodes storing the first data;
[0008] A target computing node is determined from a plurality of computing nodes. The target computing node is used to send the first data or sub-data of the first data. The plurality of sub-data of the first data constitute the first data.
[0009] If the number of the target computing node is 1, the target computing node is used to send the first data.
[0010] If the number of target computing nodes is greater than 1, each target computing node is used to send sub-data of the first data, where the sub-data is a part of the first data.
[0011] In an embodiment of the present application, a computing device may receive a data read request, and the data read request may include first data information, which may refer to metadata of the first data, and is used to clarify relevant information of the first data requested to be downloaded. Thereafter, based on the first data information, a plurality of computing nodes storing the first data may be determined. Determining the target computing node from a plurality of computing nodes means scheduling the target computing node to which the first data needs to be sent from a plurality of computing nodes storing the first data. The sending of the first data is completed through the target computing node, rather than the computing device (such as a data center server). At the same time, when there are multiple target computing nodes, each target computing node may send sub-data of the first data, and the sub-data of the first data sent by multiple target computing nodes constitute the first data, thereby realizing the distributed sending of the first data and avoiding the phenomenon of slow download speed or download failure caused by the large instantaneous download pressure of the data center server, thereby effectively improving the data download efficiency and success rate.
[0012] In conjunction with the first aspect, in certain implementations of the first aspect, determining a target computing node from a plurality of computing nodes includes:
[0013] A target computing node is determined from the multiple computing nodes according to the device information of the first terminal and the device information corresponding to the multiple computing nodes. The first terminal is a terminal that receives the first data.
[0014] In an embodiment of the present application, after determining multiple target computing nodes, the first data can be divided into sub-data corresponding to the multiple target computing nodes, and the corresponding sub-data can be distributed by the multiple target computing nodes respectively to achieve distributed distribution of the first data. This can reduce the distribution pressure of a single node, achieve parallel distribution of data, and improve data distribution efficiency and success rate.
[0015] In conjunction with the first aspect, in certain implementations of the first aspect, the device information includes at least one of the following:
[0016] Location information; network bandwidth; device availability.
[0017] In an embodiment of the present application, node decisions are made based on at least one of location information, network bandwidth, and device availability, so that comprehensive decisions are made based on factors such as the device's transmission capability, network connection method, and application capability. This allows for more accurate determination of the degree of adaptation between different computing nodes and the first terminal, enabling in-depth analysis of the degree of adaptation between the different computing nodes and the first terminal, obtaining the target computing node that can achieve the best effect, and achieving a high degree of fit between data transmission and the characteristics of the terminal and node devices.
[0018] In conjunction with the first aspect, in certain implementations of the first aspect, determining the target computing node from the multiple computing nodes based on the device information of the first terminal and the device information corresponding to the multiple computing nodes includes:
[0019] Scoring the effect of each computing node transmitting the first data based on the device information of the first terminal and the device information corresponding to the plurality of computing nodes, thereby obtaining a transmission effect score for each computing node;
[0020] According to the transmission effect scores corresponding to the multiple computing nodes, the top N computing nodes with the highest scores are selected from the multiple computing nodes as target computing nodes, where N is an integer greater than or equal to 1.
[0021] In the embodiment of the present application, the transmission effects of multiple computing nodes are scored by analyzing the device information of the first terminal and the device information of each computing node, thereby clarifying the transmission effect score of each computing node. The transmission effect is quantitatively evaluated through the scoring mechanism, and the top N computing nodes with the best transmission effects can be selected as target computing nodes. This avoids the selection of unsuitable computing nodes for data transmission, thereby improving the data sharing efficiency and reliability of the entire system.
[0022] In conjunction with the first aspect, in certain implementations of the first aspect, the number of target computing nodes is greater than 1, and the method further includes:
[0023] Determine sub-data that need to be sent to multiple target computing nodes respectively, where the sub-data that need to be sent to each target computing node constitute first data;
[0024] Control multiple computing nodes to send corresponding sub-data respectively.
[0025] In an embodiment of the present application, after determining multiple target computing nodes, the first data can be divided into sub-data corresponding to the multiple target computing nodes, and the corresponding sub-data can be distributed by the multiple target computing nodes respectively to achieve distributed distribution of the first data. This can reduce the distribution pressure of a single node, achieve parallel distribution of data, and improve data distribution efficiency and success rate.
[0026] In conjunction with the first aspect, in certain implementations of the first aspect, determining, according to the first data information, a plurality of computing nodes storing the first data includes:
[0027] Reading first storage information matching the first data information from a global data directory, where the global data directory includes metadata and storage information corresponding to a plurality of data, where the metadata corresponding to each data is associated with the storage information, and the storage information refers to information related to each computing node storing the corresponding data;
[0028] A plurality of computing nodes storing the first data is determined according to the first storage information.
[0029] In an embodiment of the present application, the global data directory records metadata and storage information corresponding to multiple data, and the metadata and storage information of each data are associated. Based on this association, when the first data information of the first data is known, the first storage information associated with the first data information can be queried, thereby determining multiple computing nodes through the information of each computing node that downloads and stores data recorded in the first storage information, completing the delineation of the range of computing nodes storing the first data, and clarifying each computing node storing the first data. The target computing node is scheduled from a relatively certain node range to achieve more accurate node scheduling, avoiding invalid scheduling or scheduling failure.
[0030] In conjunction with the first aspect, in some implementations of the first aspect, before receiving the data read request, the method further includes:
[0031] receiving a query request, the query request including a keyword;
[0032] According to the meta information corresponding to the plurality of data, second data matching the keyword is searched from the plurality of data; the first data is the data selected by the user from the second data.
[0033] In the embodiments of the present application, the computing device interacts with the first terminal to enable flexible data querying, providing data users with more efficient and convenient services. By querying for second data that matches the keyword, the user can be provided with second data that is more suitable for their needs for selection, narrowing the user's selection range, improving data selection efficiency, and providing a reliable guarantee for the user to obtain first data that is more suitable for their needs.
[0034] In conjunction with the first aspect, in certain implementations of the first aspect, the meta-information includes at least one of the following:
[0035] Data metadata; data sources; usage conditions;
[0036] Meta information includes at least one of the following: data quantity, quality, sample, format information, and description information.
[0037] In the embodiment of the present application, by combining one or more of the metadata, data source, or usage conditions of the data, the metadata can better represent the relevant characteristics of the data, thereby providing a more accurate data query effect and improving the accuracy of data query.
[0038] In conjunction with the first aspect, in some implementations of the first aspect, the method further includes:
[0039] receiving a data sharing request sent by a second terminal, where the data sharing request includes data to be shared;
[0040] Generate metadata and storage information of the data to be shared;
[0041] The data to be shared, the metadata of the data to be shared, and the storage information are stored in an associated manner.
[0042] In an embodiment of the present application, after receiving a data sharing request from a second terminal, the data to be shared requested by the data sharing request is obtained. After generating the metadata and storage information of the data to be shared, the data to be shared, the metadata and storage information of the data to be shared are associated and stored, which can make the storage content of the data to be shared richer and more comprehensive. In response to user data query needs, the metadata and storage information of each data can be used to perform fast and accurate queries, improving query efficiency and accuracy.
[0043] According to a second aspect of an embodiment of the present application, there is provided a computing device, including: a memory and a processor;
[0044] Memory is used to store computer program instructions;
[0045] The processor is configured to execute computer program instructions to implement any of the above data sharing methods.
[0046] According to a third aspect of an embodiment of the present application, a data sharing device is provided, including a processing unit and a transceiver unit.
[0047] The transceiver unit is used to send and receive data, and the processing unit is used to execute any one of the data sharing methods.
[0048] According to a fourth aspect of an embodiment of the present application, a computer-readable storage medium is provided, on which a computer program is stored. When the computer program is executed by a controller, the steps of any data sharing method are implemented.
[0049] According to a fifth aspect of an embodiment of the present application, a computer product is provided, comprising: a computer program, which implements the steps of any data sharing method when executed by a controller.
[0050] As will be described in detail below, in the data sharing method provided by the embodiment of the present application, the data center server can receive a data read request, and the data read request can include first data information, which can refer to the metadata of the first data, used to clarify the relevant information of the first data that needs to be downloaded. Thereafter, based on the first data information, multiple computing nodes storing the first data can be determined. Determining the target computing node from multiple computing nodes completes the scheduling of the target computing node that needs to send the first data from the multiple computing nodes storing the first data. The sending of the first data is completed through the target computing node, rather than the data center server, thereby realizing the distributed sending of the first data, avoiding the phenomenon of slow download speed or download failure caused by the instantaneous download pressure of the data center server, and effectively improving the data download efficiency and success rate.
[0051] It is to be understood that both the foregoing general description and the following detailed description are exemplary, and are intended to provide further explanation of the technology as claimed. BRIEF DESCRIPTION OF THE DRAWINGS
[0052] The above and other purposes, features, and advantages of the present application will become more apparent through a more detailed description of the embodiments of the present application in conjunction with the accompanying drawings. The accompanying drawings are intended to provide a further understanding of the embodiments of the present application and constitute a part of the specification. Together with the embodiments of the present application, they are used to explain the technical solutions and do not constitute a limitation of the embodiments of the present application. In the drawings, the same reference numerals generally represent the same components or steps.
[0053] Figure 1 FIG2 is a structural diagram of a data sharing system according to an embodiment of the present application;
[0054] Figure 2 FIG2 is a flowchart of a data sharing method according to an embodiment of the present application;
[0055] Figure 3 An exemplary diagram illustrating a data sharing method according to an embodiment of the present application is shown;
[0056] Figure 4 FIG2 is another flow chart illustrating a data sharing method according to an embodiment of the present application;
[0057] Figure 5 Another exemplary diagram illustrating a data sharing method according to an embodiment of the present application;
[0058] Figure 6 FIG2 is another flow chart illustrating a data sharing method according to an embodiment of the present application;
[0059] Figure 7 FIG2 is a structural diagram of a data sharing device according to an embodiment of the present application;
[0060] Figure 8 The figure shows a hardware block diagram of a computing device according to an embodiment of the present application. DETAILED DESCRIPTION
[0061] In order to make the purpose, technical solutions and advantages of the embodiments of the present application more apparent, an exemplary embodiment according to the embodiments of the present application will be described in detail below with reference to the accompanying drawings. Obviously, the described embodiments are only part of the embodiments of the present application, rather than all the embodiments of the present application. It should be understood that the embodiments of the present application are not limited to the exemplary embodiments described herein.
[0062] The technical solution of the embodiment of the present application can be applied to data sharing scenarios. By scheduling the computing nodes that store data to distribute data, the download speed and efficiency are improved, and the problems of download failure or low speed caused by excessive instantaneous access traffic to the data center server are solved.
[0063] Currently, AI data, experimental data, and other data can be shared. To facilitate this, a data sharing platform has been developed. However, in related technologies, these platforms rely on centralized servers. Specifically, data owners can upload their data to a data center server. Upon receiving a download request, the data center server can then deliver the data to the corresponding terminal. However, this centralized data delivery method is prone to slow downloads or download failures.
[0064] In order to solve the above problems, a distributed data delivery method is used in the embodiment of the present application to schedule multiple computing nodes that have stored data to deliver data, thereby reducing the instantaneous access pressure of the central server and improving the data download speed and success rate.
[0065] The technical solutions of the embodiments of the present application will be described in detail below with reference to the accompanying drawings.
[0066] like Figure 1 FIG2 is an example diagram of a data sharing system provided by an embodiment of the present application. The data sharing system may include: a data center server 10, a plurality of third terminals 20, a first terminal 30, and a second terminal 40.
[0067] Among them, the data center server 10, multiple third terminals 20, the first terminal 30 or the second terminal 40 can be any type of electronic device, for example, it can be any type of device such as a server, cloud server, computer, notebook computer, handheld terminal, mobile phone, tablet computer, wearable device, etc.
[0068] The data owner can upload the data to the data center server 10 for storage through the second terminal 40. The second terminal 40 stores the first data, and the second terminal can also belong to a computing node that has stored the data.
[0069] When storing data uploaded by data owners, data center server 10 can store the data and generate metadata and storage information for the data. This metadata can be used to characterize the data. Storage information refers to information about each computing node that downloads and stores the data. Since data center server 10 also stores data, it can also serve as a computing node for stored data.
[0070] The data user can download and store the required data from the data center server 10. Assume that the terminal used by the data owner is a third terminal, and the plurality of third terminals 20 are all computing nodes that have stored the first data.
[0071] As the latest data user, the first terminal 30 can request to obtain the first data from the data center server 10 and send a data read request to the data center server 10 .
[0072] After receiving the data reading request sent by the first terminal 30 , the data center server 10 determines first data information of the first data to be downloaded based on the data reading request.
[0073] Afterwards, the data center server 10 may determine multiple computing nodes storing the first data based on the first data information. The second terminal 40, the data center server 10, and the multiple third terminals 20 may all serve as computing nodes storing the first data.
[0074] Afterwards, the data center server 10 can schedule the target computing node from multiple computing nodes (such as the second terminal 40, the data center server 10 and multiple third terminals 20), if the scheduled target computing nodes are 20a, 20b and 20c, and then the first data can be sent down through the target computing node. Sending down the first data means sending the first data to the first terminal 30.
[0075] like Figure 2 FIG. 1 is a flowchart of a data sharing method provided in an embodiment of the present application. The data sharing method can be applied to a computing device and may include the following steps:
[0076] S201. Receive a data read request, where the data read request includes first data information. The first data information includes one or more items of metadata of the first data, where the metadata is used to characterize characteristics of the data. The first data refers to data requested to be read.
[0077] Optionally, meta information may refer to relevant information used to record data attributes.
[0078] In the embodiment of the present application, the data owned by the data owner or the data requested to be read by the data user may refer to training data for AI training or experimental data for scientific experiments. Generally speaking, the amount of data is relatively large and inconvenient to download.
[0079] For example, the training data may be face image data for face recognition training or natural language data for natural language training. The first data may be a set of face images.
[0080] The data reading request may be sent by the first terminal. Specifically, the data reading request sent by the first terminal may be received.
[0081] In this embodiment of the present application, a data owner can send data to a computing device. The computing device can be a data manager. The data manager can store the data on the computing device. The computing device receives and stores the data provided by the data owner. Of course, the data owner's device also stores the data.
[0082] Data users can download and store data from data managers, i.e., computing devices. Therefore, the stored information may include relevant information about the computing nodes of the data managers.
[0083] When computing devices store data, they can generate metadata and storage information for the data. Metadata can be used to characterize the characteristics of the data, such as data type, purpose, memory usage, source, name, and identifier.
[0084] Storage information can be used to record the node information of the computing nodes storing the corresponding data. Storage information can include three types of information: specifically, information about the computing nodes of the data owner, the data manager, and the data user.
[0085] The computing nodes of the data owner, data manager, and data user are all added to the storage information as relevant information of the computing nodes, making the storage information richer and more comprehensive, and achieving more efficient data download scheduling.
[0086] It should be noted that in the embodiments of the present application, computing devices, terminals, and computing nodes are only used to distinguish different devices from the name, and the specific types of computing devices, terminals, and computing nodes are not too limited. Figure 1 The data center server shown may also be other types of devices, such as computers, notebooks, or computers.
[0087] S202: Determine, based on the first data information, a plurality of computing nodes storing the first data.
[0088] Optionally, S202 may include: in response to the data read request, querying multiple computing nodes storing the first data according to the first data information.
[0089] It is understandable that any terminal / node storing the first data can serve as a computing node. For example, the computing node can be a terminal that has downloaded and stored the first data, or a terminal that has uploaded the first data.
[0090] Taking the computing device as a data center server as an example, combined with Figure 3 , shows an example diagram of a data sharing method provided by an embodiment of the present application. A data owner 301 sends first data to a data center server 303 via a first terminal 302, and the data center server 303 stores the first data. A data user 304 downloads the first data from the data center server 303 via a terminal 305 and stores the first data. The first terminal 302, the data center server 303, and the multiple terminals 305 all store the first data. Therefore, the first terminal 302, the data center server 303, and the multiple terminals 305 can constitute multiple computing nodes that store the first data.
[0091] Of course, in order to reduce the processing pressure of the data center server 303, the first terminal 302 and the multiple terminals 305 can also form multiple computing nodes that store the first data.
[0092] The terminal / node that has downloaded the first data can also serve as a computing node for storing the first data. For example, if the data user 304 downloads the first data from the data center server 303 via the terminal 305, the terminal 305 can serve as a computing node for storing the first data.
[0093] In one possible design, a computing device can aggregate multiple data from multiple data owners to form a data selection interface. The data selection interface can display prompt information for multiple data sets that a user can request to read, such as icons and descriptions of multiple data sets. The user can select the data to be read on the data selection interface provided by the computing device, triggering a data read request. The data to be read is also referred to as the first data. The data read request includes first metadata of the first data, thereby determining the first data that the user needs to request to read based on the first metadata.
[0094] As described above, the computing device generates metadata and storage information for the data when storing the data. After obtaining the first metadata, the first storage information of the first data can be queried.
[0095] The storage information may include relevant information corresponding to multiple computing nodes of the data owner, data user, and data manager. Therefore, the first storage information can be queried based on the first metadata, and the multiple computing nodes storing the first data can be determined based on the first storage information.
[0096] S203: Determine a target computing node from multiple computing nodes, where the target computing node is used to send the first data.
[0097] If the number of target computing nodes is 1, the target computing node is used to send the first data;
[0098] If the number of target computing nodes is greater than 1, each target computing node is used to send sub-data of the first data, where the sub-data is a part of the first data.
[0099] Optionally, determining the target computing node from the plurality of computing nodes may include: selecting a target computing node with the highest transmission effect from the plurality of computing nodes. The target computing node is specifically configured to send the first data to the first terminal.
[0100] The target computing node may include one or more. In order to reduce the pressure of sending data to a single node, the target computing node may include multiple. Therefore, the first data can be sent from multiple target computing nodes.
[0101] Specifically, a distributed delivery method can be used to deliver the first data from multiple target computing nodes. The distributed delivery method can mean that multiple target computing nodes deliver part of the first data respectively, thereby reducing the delivery pressure on a single target computing node and improving data delivery efficiency.
[0102] Optionally, after S203 , the process may further include sending the first data to the first terminal by using the target computing node.
[0103] In an embodiment of the present application, a data center server may receive a data read request, and the data read request may include first data information, which may refer to metadata of the first data, and is used to clarify the relevant information of the first data that needs to be downloaded. Thereafter, based on the first data information, multiple computing nodes storing the first data may be determined. Determining the target computing node from multiple computing nodes completes scheduling the target computing node that needs to send the first data from the multiple computing nodes storing the first data. The sending of the first data is completed through the target computing node, rather than the data center server, thereby realizing the distributed sending of the first data, avoiding the phenomenon of slow download speed or download failure caused by the instantaneous download pressure of the data center server, and effectively improving the data download efficiency and success rate.
[0104] In order to reduce the pressure on a single computing node, multiple target computing nodes can be selected, and each target computing node can be used to send part of the first data. Figure 4 As shown, it is another flow chart of a data sharing method provided by an embodiment of the present application, and Figure 2 The difference of the illustrated embodiment is that, after determining the target computing node from the plurality of computing nodes, the following steps may also be included:
[0105] S401: Determine sub-data that need to be sent to multiple target computing nodes respectively, and the sub-data that need to be sent to each target computing node constitute first data.
[0106] S402: Control multiple target computing nodes to respectively send corresponding sub-data.
[0107] Specifically, the sub-data of each target computing node are sent to the first terminal.
[0108] Optionally, the sub-data to be distributed to each target computing node can be dynamically allocated based on the transmission performance of each target computing node (determined, for example, by metrics such as throughput, CPU, memory, and bandwidth). This allows for load balancing and efficient computing. For example, an intelligent scheduling algorithm can be used to select the optimal combination of target computing nodes for multi-point parallel data acquisition, taking into account factors such as the geographic location of the first terminal and each target computing node, network bandwidth, and availability.
[0109] The number of target computing nodes may be determined first, and then the sub-data to be sent to each target computing node may be determined according to the number N of target computing nodes and the transmission effect of each target computing node.
[0110] When dividing the first data into multiple sub-data, you can first determine the amount of data that each target computing node can send based on the transmission effect of each target computing node, and then segment the first data according to the data amount of each target computing node to obtain the sub-data that each target sub-node needs to send.
[0111] The sub-data that each of the multiple target computing nodes needs to send includes the following two embodiments:
[0112] Example 1: If the transmission effects of the target computing nodes are relatively balanced, an average division method is adopted.
[0113] Specifically, the number of target computing nodes can be determined. The amount of the first data can be determined. The quotient of the amount of the first data and the number of nodes can be calculated to obtain the amount of sub-data that each computing node needs to deliver. Based on the amount of sub-data that each computing node needs to deliver, the sub-data that the target computing nodes need to deliver can be determined.
[0114] Alternatively, the first data may be divided into multiple data segments. Based on the total number of data segments in the multiple data segments and the number of nodes, the number of data segments that need to be sent to the multiple target computing nodes is determined. Based on the number of data segments that need to be sent to the multiple target computing nodes, one or more data segments that need to be sent to the multiple destination computing nodes are determined, and the one or more data segments that need to be sent to each target computing node are determined as corresponding sub-data.
[0115] Among them, according to the total amount of data segments of multiple data segments, determining the number of data segments that need to be sent down by multiple target computing nodes respectively can include: calculating the quotient of the total amount of data segments of multiple data segments and the number of nodes to obtain the number of data segments that need to be sent down by each target computing node.
[0116] like Figure 5 As shown, the first terminal 501 requests the data center server 502 to download the first data. The multiple computing nodes determined by the data center server 502 are computing nodes 503-506. In addition, the data center server 502 determines three target computing nodes from the multiple computing nodes, which are Figure 5 Target computing nodes 503, 505, and 506 are shown in FIG. Assume that the first data includes 11 data segments, namely data segments 1-11. Data segments 1-3 are sent to first terminal 501 via target computing node 503 as sub-data 1. Data segments 4-7 are sent to first terminal 501 via target computing node 505 as sub-data 2. Data segments 8-11 are sent to first terminal 501 via target computing node 506 as sub-data 3.
[0117] It can be understood that the data center server 502 can control the target computing node 503 to send sub-data 1, control the target computing node 505 to send sub-data 2, and control the target computing node 506 to send sub-data 3. Each target computing node, such as 503, 505 and 506, can send the corresponding sub-data to the first terminal under the control of the data center server 502.
[0118] Example 2: If the transmission effects of the target computing nodes vary greatly, they are divided according to the ratio of the transmission effects.
[0119] Determine the processing ratio of each target computing node based on the transmission performance of each target computing node. Determine the amount of data that each target computing node needs to send based on the processing ratio of each target computing node and the amount of the first data. Schedule the sub-data that each target computing node needs to send from the first data based on the amount of data that each target computing node needs to send.
[0120] For example, based on the transmission performance of target computing node A, it is determined that the processing share of target computing node A is 60%. If the data volume of the first node is 1GB, then target computing node A needs to send 1GB * 60% = 0.6GB, or 614.4MB of data. Based on this data volume, 0.6GB of data can be scheduled from the first data as the sub-data that target computing node A needs to send.
[0121] Furthermore, the transmission effect of the computing node is evaluated using the device information of the node. According to the transmission effect of each target computing node, determining the processing proportion of each target computing node may include:
[0122] Determine a transmission effect score corresponding to the transmission effect of each target computing node.
[0123] Normalize the transmission effect score of each target computing node to obtain the processing proportion of each target computing node.
[0124] For the calculation method of the transmission effect score, please refer to the description of the relevant embodiments and will not be repeated here.
[0125] The first data may include multiple data units. A data unit may refer to a complete piece of data in the first data. Taking a face dataset as an example, the first data may include multiple face images used for training a face recognition model. A face image in the face dataset is a data unit. Each data unit in the first data may have a data key. A data key is an identifier that uniquely identifies each record or data unit in the dataset.
[0126] After determining the sub-data for each target computing node, a mapping relationship can be established between each target computing node and the data key combination of the sub-data divided from each target computing node based on the data key of each data unit in the first data. This mapping relationship can then be used to control the multiple target computing nodes to respectively deliver the corresponding sub-data. The sub-data may include multiple data units that are divided and delivered to the computing nodes, and the data key combination refers to the combination of the data keys of each data unit in the sub-data.
[0127] For ease of management, data can also be pre-divided into multiple data segments, each of which contains data units corresponding to consecutive data keys. For example, suppose Figure 5 Each data segment in contains 10,000 data units. The data keys corresponding to data segment 1 are 1-10000, the data keys corresponding to data segment 2 are 10001-20000, the data keys corresponding to data segment 3 are 20001-30000, and so on. The data keys of data segment 11 are 1000001-110000.
[0128] Assume that the first data includes 110,000 data units, and the data keys of the data units are 1-110,000, that is, data unit 1-data unit 110,000. Figure 5 The three target computing nodes 503, 505, and 506 shown in the figure have quite different transmission effects. Target computing node 503 needs to send sub-data 1 with a data key combination of 1-30000, while target computing node 505 needs to send sub-data 2 with a data key combination of 30001-70000. Target computing node 506 needs to send sub-data 3 with a data key combination of 70001-110000.
[0129] Therefore, a mapping relationship is formed between the target computing node 503 and the data key combination 1-30000, the target computing node 505 and the data key combination 30001-70000, and the target computing node 506 and the data key combination 70001-110000.
[0130] Furthermore, controlling the multiple target computing nodes to respectively distribute corresponding sub-data based on the mapping relationship may include: distributing each data key combination to the corresponding target computing node based on the mapping relationship, so that each target computing node distributes the data units corresponding to each data key in the data key combination based on the received data key combination. For example, the data key combination 30001-70000 is distributed to the target computing node 505, and the target computing node 505 can then distribute the data units corresponding to the data key combination 30001-70000.
[0131] In an embodiment of the present application, after determining multiple target computing nodes, the first data can be divided into sub-data corresponding to the multiple target computing nodes, and the corresponding sub-data can be distributed by the multiple target computing nodes respectively to achieve distributed distribution of the first data. This can reduce the distribution pressure of a single node, achieve parallel distribution of data, and improve data distribution efficiency and success rate.
[0132] To reduce the difficulty of data transmission, determining a target computing node from multiple computing nodes may include:
[0133] A target computing node is determined from the multiple computing nodes according to the device information of the first terminal and the device information corresponding to the multiple computing nodes. The first terminal is a terminal that receives the first data.
[0134] The transmission performance of a computing node can be used as a criterion for node selection. Based on the device information of the first terminal and the device information corresponding to the multiple computing nodes, the transmission performance corresponding to each of the multiple computing nodes can be determined. Based on the transmission performance corresponding to the multiple computing nodes, a target computing node with the highest transmission performance is determined from the multiple computing nodes.
[0135] In an embodiment of the present application, when deciding a target computing node from multiple computing nodes, the target computing node can be determined from multiple computing nodes based on the device information of the first terminal and the device information corresponding to the multiple computing nodes. In this way, the device information of the first terminal and the device information of each computing node are referred to in the decision-making process of the target computing node, which can achieve accurate matching of transmission requirements and transmission capabilities, and improve the reliability and speed of data transmission.
[0136] Optionally, the device information may include at least one of the following:
[0137] Location information; network bandwidth; device availability.
[0138] In addition, device information can also include indicators such as throughput, CPU, disk IOPS, processing speed, etc. With more abundant device information, the transmission effect of each computing node can be accurately evaluated.
[0139] The location information may refer to the real-time location of the terminal / computing node. The location information may be collected by a positioning device of the terminal / computing node. In other words, the computing device may collect the location information of the terminal / computing node.
[0140] Network bandwidth refers to the amount of data transmitted over a network per unit time, measured in bit rate (bit / s), such as 100 Mbps (megabits per second). It reflects the network's transmission capacity; the greater the bandwidth, the faster the data transmission speed.
[0141] Device availability refers to the ability of a terminal device to function normally and provide services within a specified timeframe. It can be expressed as a percentage (e.g., 99.99%) and reflects the reliability and stability of the device. Device availability can be determined based on multiple factors, including hardware usage, software performance, and environmental factors.
[0142] Hardware usage status can include, for example, hardware lifespan, wear, and failure information. Software operation status can include, for example, software system vulnerabilities and software update information. Environmental factors can include, for example, the physical and network environments of the node. The physical environment can include, for example, information such as the temperature and humidity of the space where the node is located. The network environment can include, for example, the operating status of the network, such as whether it is disconnected or under attack.
[0143] In an embodiment of the present application, node decisions are made based on at least one of location information, network bandwidth, and device availability, so that comprehensive decisions are made based on factors such as the device's transmission capability, network connection method, and application capability. This allows for more accurate determination of the degree of adaptation between different computing nodes and the first terminal, enabling in-depth analysis of the degree of adaptation between the different computing nodes and the first terminal, obtaining the target computing node that can achieve the best effect, and achieving a high degree of fit between data transmission and the characteristics of the terminal and node devices.
[0144] Furthermore, determining a target computing node from the plurality of computing nodes according to the device information of the first terminal and the device information corresponding to the plurality of computing nodes includes:
[0145] Scoring the effect of each computing node transmitting the first data based on the device information of the first terminal and the device information corresponding to the plurality of computing nodes, thereby obtaining a transmission effect score for each computing node;
[0146] According to the transmission effect scores corresponding to the multiple computing nodes, the top N computing nodes with the highest scores are selected from the multiple computing nodes as target computing nodes, where N is an integer greater than or equal to 1.
[0147] Optionally, based on the device information of the first terminal and the device information corresponding to the plurality of computing nodes, the effect of each computing node transmitting the first data is scored to obtain a transmission effect score of each computing node. The steps of calculating the transmission effect score of any computing node may include:
[0148] determining at least one information indicator, wherein the device information is represented by the at least one information indicator;
[0149] Scoring, based on the device information of the first terminal and the device information of the computing node, the transmission effect of the computing node to the first terminal corresponding to at least one information indicator, to obtain the score of the computing node corresponding to at least one information indicator;
[0150] The scores of the computing nodes corresponding to at least one information indicator are weighted and summed to obtain the transmission effect score of the computing node.
[0151] An information indicator may refer to an indicator constituting device information, such as a location indicator, a bandwidth indicator, and an availability indicator, which may all serve as information indicators.
[0152] When weighting and summing the scores corresponding to at least one information metric, different weights can be assigned to different information metrics. For example, the distance between devices has a significant impact on transmission; longer distances result in poorer transmission quality. Therefore, the location metric can be weighted higher than the bandwidth metric. For example, if the bandwidth metric has a greater impact on transmission than the availability metric, the bandwidth metric can be weighted higher than the availability metric. Therefore, by weighting information metrics based on their impact on transmission, the transmission quality assessment process can be more accurate.
[0153] In the embodiment of the present application, the transmission effects of multiple computing nodes are scored by analyzing the device information of the first terminal and the device information of each computing node, thereby clarifying the transmission effect score of each computing node. The transmission effect is quantitatively evaluated through the scoring mechanism, and the top N computing nodes with the best transmission effects can be selected as target computing nodes. This avoids the selection of unsuitable computing nodes for data transmission, thereby improving the data sharing efficiency and reliability of the entire system.
[0154] It is understood that the data read request carries the first data information, and the first data information can be used to query multiple computing nodes storing the first data. Therefore, based on any of the above embodiments, in response to the data read request, determining the multiple computing nodes storing the first data can include the following steps:
[0155] S1. Read first storage information matching the first data information from a global data directory. The global data directory includes meta information and storage information corresponding to a plurality of data. The storage information includes relevant information of each computing node storing the corresponding data.
[0156] The relevant information may refer to information that can be used to identify the computing node, such as one or more of a device identifier, a device name, a device number, and the like.
[0157] As described above, the first data information may be one or more items of the metadata of the first data. When reading the first storage information matching the first data information from the global data directory, the global data directory may be queried for the first metadata containing the first data information, and the storage information associated with the first metadata is determined as the first storage information.
[0158] Optionally, the first data information may include, for example, a data identifier of the first data. First metadata containing the data identifier of the first data is retrieved from the global data directory. A data identifier may be an identifier that uniquely distinguishes each data item. Different data items may have different identifiers. For example, the data identifier of a face dataset may be "00010," while the data identifier of a natural language processing dataset may be "00090."
[0159] Optionally, the first data information may further include, for example, a data source of the first data, and first metadata including the data source of the first data is queried from the global data directory.
[0160] S2. Determine multiple computing nodes that store the first data based on the first storage information.
[0161] The first storage information may include relevant information about each computing node that has downloaded and stored the first data. For example, the relevant information may be a device identifier of each computing node. Therefore, the plurality of computing nodes that downloaded the first data can be determined based on the relevant information about each computing node in the storage information.
[0162] Optionally, the meta information may include at least one of the following: data identification; data meta information; data source; usage conditions.
[0163] It is understood that meta-information can refer to information that describes the characteristics of data when the data is created. Specifically, meta-information can include at least one of the following: data volume, quality, sample, format information, and description information.
[0164] The data identifier may refer to information that can uniquely represent data, such as a data identifier may be a unique string of characters.
[0165] The data source may refer to relevant information of the data owner, such as the name, introduction, identification, etc. of the data owner.
[0166] Usage conditions can be used to indicate information such as the method and restrictions of using data, such as hardware requirements for terminals that use the data.
[0167] The data volume may refer to the size of the storage space occupied by the data that can be shared.
[0168] Quality can refer to information used to evaluate the quality of data.
[0169] A sample can refer to a representative example in the data. For example, if the data is a set of face images, a sample of the data can be a face graphic.
[0170] The format information may refer to the format of each data. Taking the data as a set of face images as an example, the format information may refer to the specific format of the image, such as the JPEG (Joint Photographic Experts Group) format.
[0171] Descriptive information can refer to text that can be used to express detailed information about an image. For example, the descriptive information of a face image can be expressed as: This is a training set of 10,000 volunteer faces collected by Team A at Location B.
[0172] In the embodiment of the present application, by combining one or more of the metadata, data source, or usage conditions of the data, the metadata can better represent the relevant characteristics of the data, thereby providing a more accurate data query effect and improving the accuracy of data query.
[0173] It is understood that the stored information can be updated as the data is transmitted. In conjunction with this embodiment, after the target computing node transmits the first data to the first terminal, the first terminal completes the identity transformation and becomes the computing node storing the first data. The downloaded data can be updated based on the information of the first terminal. Specifically, the information of the first terminal is added to the downloaded data, so that the downloaded data is updated as the data is sent.
[0174] In order to improve the timeliness of stored information, for data owners or data users who have downloaded data, a storage detection mechanism or a deletion reporting mechanism can be set for the computing nodes of the data owners or data users.
[0175] Among them, the storage detection mechanism means that the computing device can regularly detect whether the computing nodes corresponding to each relevant information in the storage information still store data. If the computing node corresponding to a certain relevant information does not store data, this relevant information can be deleted from the storage information.
[0176] The deletion reporting mechanism means that when a computing node detects that data has been deleted, it promptly reports the relevant information of the computing node that deleted the data to the computing device. After receiving the relevant information of the computing node that deleted the data, the computing device can delete the relevant information from the stored information.
[0177] In addition, if the storage information is not updated in a timely manner, a computing node is selected as a target computing node and is controlled to send the corresponding sub-data. At this time, if the computing node no longer stores the first data, a first prompt message can be sent to the computing device, and the first prompt message can indicate that the data transmission failed.
[0178] Furthermore, after receiving the first prompt information, the computing device may reselect a target computing node and control the newly selected computing node to resend the sub-data that failed to be sent.
[0179] Optionally, when each target computing node successfully sends the corresponding sub-data, it may send a second prompt message to the computing device, which may indicate that the data has been successfully sent. This allows the computing device to promptly learn the sub-data sending results of each target computing node and perform corresponding processing, thereby improving the success rate of data sending.
[0180] As described above, the computing nodes of the data owner, data manager, and data user are all added to the storage information as relevant information of the computing nodes. The multiple computing nodes may include computing nodes with the above three identity types.
[0181] Of course, to reduce the processing pressure on the data manager, the data owner's computing node can be scheduled to deliver data when the number of data owners is less than a first threshold. When the data owner's data exceeds a second threshold, the data owner's computing node can no longer be scheduled to deliver data. The second threshold can be greater than or equal to the first threshold.
[0182] Optionally, S2 may include: determining the computing nodes of the data owner and the data user respectively from the first storage information, and obtaining multiple computing nodes storing the first data.
[0183] Furthermore, if the number of data owners is greater than a second threshold, the computing nodes of the data owners and the data users are determined from the first storage information to obtain a plurality of computing nodes storing the first data.
[0184] Optionally, S2 may further include: determining the computing nodes of the data manager, the data owner, and the data user from the first storage information to obtain multiple computing nodes storing the first data.
[0185] Furthermore, if the number of data owners is less than a first threshold, the computing nodes of the data manager, the data owner, and the data user are determined from the first storage information to obtain a plurality of computing nodes storing the first data.
[0186] In the embodiment of the present application, the global data directory records the metadata and storage information corresponding to multiple data respectively, that is, the metadata and storage information of each data are associated with each other. Based on this association, when the first data information of the first data is known, the first storage information associated with the first data information can be queried, thereby determining multiple computing nodes through the information of each computing node that downloads and stores data recorded in the first storage information, completing the delineation of the range of computing nodes storing the first data, and clarifying each computing node storing the first data. The target computing node is scheduled from a relatively certain node range to achieve more accurate node scheduling, avoiding invalid scheduling or scheduling failure.
[0187] As an embodiment, before receiving the data read request, the method further includes:
[0188] receiving a query request, the query request including a keyword;
[0189] According to the meta information corresponding to the plurality of data, second data matching the keyword is searched from the plurality of data; the first data is the data selected by the user from the second data.
[0190] In the embodiments of the present application, the computing device interacts with the first terminal to enable flexible data querying, providing data users with more efficient and convenient services. By querying for second data that matches the keyword, the user can be provided with second data that is more suitable for their needs for selection, narrowing the user's selection range, improving data selection efficiency, and providing a reliable guarantee for the user to obtain first data that is more suitable for their needs.
[0191] As yet another embodiment, further comprising:
[0192] receiving a data sharing request sent by a second terminal, where the data sharing request includes data to be shared;
[0193] Generate metadata and storage information of the data to be shared;
[0194] The data to be shared, the metadata of the data to be shared, and the storage information are stored in an associated manner.
[0195] In an embodiment of the present application, after receiving a data sharing request from a second terminal, the data to be shared requested by the data sharing request is obtained. After generating the metadata and storage information of the data to be shared, the data to be shared, the metadata and storage information of the data to be shared are associated and stored, which can make the storage content of the data to be shared richer and more comprehensive. In response to user data query needs, the metadata and storage information of each data can be used to perform fast and accurate queries, improving query efficiency and accuracy.
[0196] like Figure 6 FIG. 1 is another flow chart of a data sharing method provided in an embodiment of the present application. The data sharing method may include the following steps:
[0197] S601: Receive a data sharing request sent by a second terminal, where the data sharing request includes data to be shared.
[0198] S602: Generate metadata and storage information of the data to be shared.
[0199] S603: Associate and store the data to be shared, the meta-information of the data to be shared, and the storage information.
[0200] Optionally, S603 may refer to associating and storing the data identifier of the data to be shared, the meta information of the data to be shared, and the storage information in the global data directory. That is, the data identifier of the data may be associated with the meta information and storage information of the data.
[0201] Therefore, the first data directory matching the first data information can be searched from the global data directory through the data identifier of the first data, and then the first storage information associated with the first data directory can be obtained.
[0202] S604: Receive a query request, where the query request includes a keyword.
[0203] Optionally, the query request may be sent by the first terminal.
[0204] S605: Search the plurality of data for second data that matches the keyword based on the metadata corresponding to the plurality of data. The first data is data selected from the second data.
[0205] In an embodiment of the present application, the computing device may aggregate multiple data from multiple data owners to form a data selection interface. To ensure that the data presented on the data selection interface better matches user needs, after S605, the process further includes: generating a data selection interface based on the second data. The data selection interface is sent to the first terminal. The data selection interface may include prompt information about the second data, such as an icon and a brief description of the data.
[0206] S606: Receive a data read request. The data read request includes first data information, which may include one or more items of metadata of first data. The first data may refer to data requested to be read.
[0207] S607: Determine, according to the first data information, a plurality of computing nodes storing the first data.
[0208] S608: Schedule a target computing node from multiple computing nodes, where the target computing node is used to send the first data.
[0209] If the number of target computing nodes is 1, the target computing node is used to send the first data;
[0210] If the number of target computing nodes is greater than 1, each target computing node is used to send sub-data of the first data, where the sub-data is a part of the first data.
[0211] S609: Determine sub-data that need to be sent to multiple target computing nodes respectively, and the sub-data that need to be sent to each target computing node constitutes first data.
[0212] S610: Control multiple target computing nodes to respectively send corresponding sub-data.
[0213] In an embodiment of the present application, the computing device interacts with the second terminal to receive and store the data to be shared uploaded by the data owner. It can also interact with the first terminal to enable flexible data querying, providing more efficient and convenient services for data users. Thus, after determining the first data that the data user needs to download, it can determine the multiple computing nodes storing the first data and schedule the target computing node from the multiple computing nodes. By distributing the first data to the target computing node and transmitting the data in parallel, data transmission time can be reduced and data transmission efficiency improved.
[0214] Figure 7 This is a structural example diagram of a data sharing device provided in an embodiment of the present application. The data sharing device 700 may include a transceiver unit 701 and a processing unit 702.
[0215] Among them, the transceiver unit 701 can be used to receive a data reading request, the data reading request includes first data information, the first data information includes one or more information in the metadata of the first data, the metadata is used to characterize the characteristics of the data, and the first data refers to the data requested to be read.
[0216] The processing unit 702 may be configured to: determine, based on the first data information, multiple computing nodes storing the first data; and determine a target computing node from the multiple computing nodes, where the target computing node is configured to deliver the first data.
[0217] As an embodiment, the processing unit 702 determines a target computing node from multiple computing nodes, specifically including:
[0218] A target computing node is determined from the multiple computing nodes according to the device information of the first terminal and the device information corresponding to the multiple computing nodes. The first terminal is a terminal that receives the first data.
[0219] Optionally, the device information includes at least one of the following: location information; network bandwidth; device availability.
[0220] As another embodiment, the processing unit 702 determines the target computing node from the multiple computing nodes based on the device information of the first terminal and the device information corresponding to the multiple computing nodes, specifically including:
[0221] Based on the device information of the first terminal and the device information corresponding to the multiple computing nodes, the effect of each computing node in transmitting the first data is scored to obtain a transmission effect score of each computing node; based on the transmission effect scores corresponding to the multiple computing nodes, the top N computing nodes with the highest scores are selected from the multiple computing nodes as target computing nodes, where N is an integer greater than or equal to 1.
[0222] As yet another embodiment, the target computing node includes multiple nodes, and the processing unit 702 is further configured to:
[0223] Determine sub-data that need to be sent to multiple target computing nodes respectively, where the sub-data that need to be sent to each target computing node constitute first data; and control the multiple target computing nodes to send corresponding sub-data respectively.
[0224] As yet another embodiment, the processing unit 702 determines, in response to the data read request, a plurality of computing nodes storing the first data, specifically including:
[0225] Read first storage information matching the first data information from a global data directory, where the global data directory includes metadata and storage information corresponding to a plurality of data respectively, and the storage information includes relevant information of each computing node storing the corresponding data; determine a plurality of computing nodes storing the first data based on the first storage information.
[0226] As yet another embodiment, the processing unit 702 is further configured to:
[0227] A query request is received, the query request including a keyword; second data matching the keyword is searched from the plurality of data according to meta information corresponding to the plurality of data; the first data is data selected by a user from the second data.
[0228] Optionally, the meta information includes at least one of the following: data identification; data meta information; data source; usage conditions.
[0229] Meta information includes at least one of the following: data quantity, quality, sample, format information, and description information.
[0230] As yet another embodiment, the processing unit 702 is further configured to:
[0231] receiving a data sharing request sent by a second terminal, where the data sharing request includes data to be shared;
[0232] Generate metadata and storage information of the data to be shared;
[0233] The data to be shared, the metadata of the data to be shared, and the storage information are stored in an associated manner.
[0234] Figure 8 The hardware block diagram of a computing device provided in an embodiment of the present application. The computing device 800 according to an embodiment of the present application includes at least a memory 801 and a processor 802, wherein the memory 801 is used to store computer programs and the processor 802 is used to execute the computer programs to implement the data sharing method of any of the above embodiments.
[0235] In addition, the memory 801 and the processor 802 are both electrically connected to the bus 803. The computing device 800 may further include a transceiver 804 connected to the bus 803 to communicate with other devices.
[0236] In addition, an embodiment of the present application further provides a computer-readable storage medium for storing a computer program. When the computer program is executed by a processor, the data sharing method of any of the above embodiments of the present application is implemented.
[0237] Computer-readable storage media include, but are not limited to, volatile memory and / or non-volatile memory. Volatile memory may include, for example, random access memory (RAM) and / or cache memory. Non-volatile memory may include, for example, read-only memory (ROM), hard disk, flash memory, optical disk, magnetic disk, etc.
[0238] The embodiments of the present application further provide a computer program product, including a computer program / instruction, which, when executed by a processor, implements the data sharing method of any of the foregoing embodiments of the present application.
[0239] The basic principles of the embodiments of the present application have been described above in conjunction with specific embodiments. However, it should be noted that the advantages, strengths, and effects mentioned in the embodiments of the present application are merely illustrative and not restrictive, and it should not be assumed that these advantages, strengths, and effects are required of each embodiment of the embodiments of the present application. In addition, the specific details disclosed above are merely for the purpose of illustration and ease of understanding, and are not restrictive. The above details do not limit the embodiments of the present application to necessarily adopting the above specific details to implement them.
[0240] The block diagrams of the devices, apparatuses, equipment, and systems involved in the embodiments of the present application are merely illustrative examples and are not intended to require or imply that they must be connected, arranged, or configured in the manner shown in the block diagrams. As will be appreciated by those skilled in the art, these devices, apparatuses, equipment, and systems can be connected, arranged, or configured in any manner. Words such as "include," "comprise," "have," and the like are open-ended words, meaning "including but not limited to," and can be used interchangeably therewith. The words "or" and "and" used herein refer to the words "and / or" and can be used interchangeably therewith, unless the context clearly indicates otherwise. The word "such as" used herein refers to the phrase "such as but not limited to," and can be used interchangeably therewith.
[0241] Additionally, as used herein, "or" used in a list of items beginning with "at least one" indicates a separate list, so that, for example, a list of "at least one of A, B, or C" means A or B or C, or AB or AC or BC, or ABC (i.e., A and B and C). Furthermore, the word "exemplary" does not mean that the example described is preferred or better than other examples.
[0242] It should also be noted that in the systems and methods of the embodiments of the present application, each component or each step can be decomposed and / or recombined. Such decomposition and / or recombination should be regarded as equivalent solutions of the embodiments of the present application.
[0243] Various changes, substitutions, and modifications of the technology herein may be made without departing from the teachings defined by the appended claims. Furthermore, the scope of the claims of the embodiments of the present application is not limited to the specific aspects of the processes, machines, manufactures, components of events, means, methods, and actions described above. Currently existing or later developed processes, machines, manufactures, components of events, means, methods, or actions that perform substantially the same functions or achieve substantially the same results as the corresponding aspects herein may be utilized. Thus, the appended claims include such processes, machines, manufactures, components of events, means, methods, or actions within their scope.
[0244] The above description of the disclosed aspects is provided to enable any person skilled in the art to make or use the embodiments of the present application. Various modifications to these aspects will be readily apparent to those skilled in the art, and the general principles defined herein may be applied to other aspects without departing from the scope of the embodiments of the present application. Therefore, the embodiments of the present application are not intended to be limited to the aspects shown herein, but rather to the widest scope consistent with the principles and novel features disclosed herein.
[0245] The above description has been provided for the purpose of illustration and description. In addition, this description is not intended to limit the embodiments of the present application to the forms disclosed herein. Although a number of example aspects and embodiments have been discussed above, those skilled in the art will recognize certain variations, modifications, alterations, additions, and sub-combinations thereof.
Claims
1. A data sharing method, characterized in that: Applied to computing devices, including: receiving a data read request, the data read request including first data information, the first data information including one or more items of metadata of first data, the metadata being used to characterize characteristics of the data, the first data being data requested to be read; Determining, based on the first data information, a plurality of computing nodes storing the first data; determining a target computing node from the plurality of computing nodes; If the number of the target computing node is 1, the target computing node is used to send the first data; If the number of the target computing nodes is greater than 1, each of the target computing nodes is used to send sub-data of the first data, where the sub-data is a part of the first data.
2. The method according to claim 1, characterized in that The determining a target computing node from the plurality of computing nodes includes: The target computing node is determined from the multiple computing nodes according to device information of a first terminal and device information corresponding to the multiple computing nodes, where the first terminal is a terminal that receives the first data.
3. The method according to claim 2, characterized in that The device information includes at least one of the following: Location information; network bandwidth; device availability.
4. The method according to claim 2, characterized in that The determining the target computing node from the plurality of computing nodes according to the device information of the first terminal and the device information corresponding to the plurality of computing nodes respectively includes: Scoring, based on the device information of the first terminal and the device information corresponding to the plurality of computing nodes, an effect of each computing node transmitting the first data to obtain a transmission effect score for each computing node; According to the transmission effect scores corresponding to the multiple computing nodes, the top N computing nodes with the highest scores are selected from the multiple computing nodes as the target computing nodes, where N is an integer greater than or equal to 1.
5. The method according to any one of claims 1 to 4, characterized in that The number of the target computing nodes is greater than 1, and the method further includes: Determine sub-data that need to be sent to multiple target computing nodes respectively, where the sub-data that need to be sent to each target computing node constitute the first data; Control the multiple target computing nodes to respectively send corresponding sub-data.
6. The method according to any one of claims 1 to 5, characterized in that The determining, according to the first data information, a plurality of computing nodes storing the first data includes: Reading first storage information matching the first data information from a global data directory, the global data directory including metadata and storage information corresponding to a plurality of data, the metadata corresponding to each data being associated with the storage information, the storage information including information related to each computing node storing the corresponding data; A plurality of computing nodes storing the first data is determined according to the first storage information.
7. The method according to any one of claims 1 to 6, characterized in that Before receiving the data read request, the method further includes: receiving a query request, wherein the query request includes a keyword; According to the meta information respectively corresponding to the plurality of data, second data matching the keyword is searched from the plurality of data; the first data is data selected by the user from the second data.
8. The method according to any one of claims 1 to 7, characterized in that The meta information includes at least one of the following: Data identification; data metadata; data source; usage conditions; The meta information includes at least one of the following: data volume, quality, sample, format information, and description information.
9. The method according to any one of claims 1 to 8, characterized in that Also includes: receiving a data sharing request sent by a second terminal, wherein the data sharing request includes data to be shared; Generating metadata and storage information of the data to be shared; The data to be shared, the meta information of the data to be shared, and the storage information are stored in association with each other.
10. A computing device, characterized in that include: processor and memory; The processor is coupled to the memory; The memory is used to store computer program instructions; The processor is configured to execute computer program instructions stored in the memory to implement the data sharing method according to any one of claims 1 to 9.