Method, device, equipment, storage medium and program product for migrating data
By reading and transferring backup and incremental data between cloud phones, the problem of direct migration between cloud phones is solved, achieving efficient and secure data migration and improving user experience and data security.
Patent Information
- Application Number
- CN202410404578.7
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2024-04-03
- Publication Date
- 2025-12-30
- Estimated Expiration
- 2044-04-03
AI Technical Summary
Because data is not shared between cloud phones, direct data migration is not possible, which prevents users from quickly switching cloud phones when they need to replace or when a phone malfunctions, affecting user experience and data security.
By reading backup data from the cloud phone locally and transmitting it to the target cloud phone, while controlling the upload of incremental data, data migration between cloud phones is achieved. This method uses sharded storage and parallel transmission technology to improve efficiency and ensure data security when direct communication is not allowed.
Data migration was achieved under the condition of isolated communication between cloud phones, which improved the efficiency of data migration between cloud phones and ensured data security and user experience.
Smart Images

Figure CN118316943B_ABST
Abstract
Description
Technical Field
[0001] This disclosure relates to the field of computer technology, specifically to artificial intelligence technologies such as cloud services, data transmission and intelligent cloud, and particularly to methods, apparatuses, electronic devices, computer-readable storage media and computer program products for migrating data. Background Technology
[0002] With the development of computer technology, cloud phone technology has emerged to enhance the computing power and user experience of user devices. A cloud phone is a mobile phone system that applies cloud computing technology to network terminal services, using cloud servers to provide "cloud services".
[0003] This type of "phone," deeply integrated with network services, can leverage its built-in system and manufacturer-provided network terminals to acquire more powerful computing capabilities, offering users more functions. Because this service model actually relies on a terminal device (e.g., a mobile phone) independent of the user's actual usage to provide services, ensuring user data security and improving the user's interactive experience are crucial and urgent issues to address during cloud phone services. Summary of the Invention
[0004] This disclosure provides a method, apparatus, electronic device, computer-readable storage medium, and computer program product for migrating data.
[0005] In a first aspect, embodiments of this disclosure propose a method for migrating data, comprising: in response to receiving a data migration request for a first cloud phone, reading backup data associated with the first cloud phone locally, wherein the data migration request instructs the migration of data stored in the first cloud phone to a second cloud phone; transmitting the backup data to the second cloud phone; controlling the first cloud phone to upload incremental data stored locally on the first cloud phone relative to the backup data to the local storage; and in response to receiving the incremental data, transmitting the incremental data to the second cloud phone.
[0006] Secondly, embodiments of this disclosure provide an apparatus for migrating data, comprising: a backup data reading unit configured to read backup data associated with the first cloud phone locally in response to receiving a data migration request for a first cloud phone, wherein the data migration request instructs the migration of data stored in the first cloud phone to a second cloud phone; a backup data transmission unit configured to transmit backup data to the second cloud phone; an incremental data acquisition unit configured to control the first cloud phone to upload incremental data stored locally on the first cloud phone relative to the backup data to the local device; and an incremental data transmission unit configured to transmit incremental data to the second cloud phone in response to receiving incremental data.
[0007] Thirdly, embodiments of this disclosure provide an electronic device comprising: at least one processor; and a memory communicatively connected to the at least one processor; wherein the memory stores instructions executable by the at least one processor, the instructions being executed by the at least one processor to enable the at least one processor to implement a method for migrating data as described in any implementation of the first aspect.
[0008] Fourthly, embodiments of this disclosure provide a non-transitory computer-readable storage medium storing computer instructions for enabling a computer to perform a method for migrating data as described in any implementation of the first aspect.
[0009] Fifthly, embodiments of this disclosure provide a computer program product including a computer program that, when executed by a processor, can implement the method for migrating data as described in any implementation of the first aspect.
[0010] The data migration method, apparatus, electronic device, computer-readable storage medium, and computer program product provided in this disclosure, in response to receiving a data migration request for a first cloud phone, reads backup data associated with the first cloud phone locally, wherein the data migration request instructs the migration of data stored in the first cloud phone to a second cloud phone; transmits the backup data to the second cloud phone; controls the first cloud phone to upload incremental data stored locally on the first cloud phone relative to the backup data to the local device; and in response to receiving the incremental data, transmits the incremental data to the second cloud phone.
[0011] This disclosure enables data migration between cloud phones even in situations where communication between cloud phones is not possible, inconvenient, or not permitted, such as when data security is ensured by isolating communication between them. Furthermore, it allows for data security through backup methods while simultaneously improving data migration efficiency by utilizing backup data.
[0012] 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
[0013] Other features, objects, and advantages of this disclosure will become more apparent from the following detailed description of non-limiting embodiments with reference to the accompanying drawings:
[0014] Figure 1 This is an exemplary system architecture to which this disclosure can be applied;
[0015] Figure 2A flowchart illustrating a method for migrating data provided in this disclosure embodiment;
[0016] Figure 3 A flowchart illustrating a process for storing backup data, provided as an embodiment of this disclosure;
[0017] Figure 4 A flowchart illustrating a method for migrating data in an application scenario provided by an embodiment of this disclosure;
[0018] Figure 5 A structural block diagram of a data migration apparatus provided in an embodiment of this disclosure;
[0019] Figure 6 This is a schematic diagram of the structure of an electronic device suitable for performing a method of migrating data, provided as an embodiment of this disclosure. Detailed Implementation
[0020] The exemplary embodiments of this disclosure are described below with reference to the accompanying drawings, including various details of the embodiments to aid understanding; these should be considered merely exemplary. Therefore, those skilled in the art will recognize that various changes and modifications can be made to the embodiments described herein without departing from the scope and spirit of this disclosure. Similarly, for clarity and brevity, descriptions of well-known functions and structures are omitted in the following description. It should be noted that, unless otherwise specified, the embodiments and features described in this disclosure can be combined with each other.
[0021] Furthermore, the acquisition, storage, use, processing, transportation, provision, and disclosure of user personal information (such as cloud phone data and backup data related to users as discussed later in this disclosure) in the technical solutions disclosed herein comply with the provisions of relevant laws and regulations and do not violate public order and good morals.
[0022] Figure 1 An exemplary system architecture 100 is shown, illustrating embodiments of methods, apparatuses, electronic devices, and computer-readable storage media for applying the present disclosure to migrate data.
[0023] like Figure 1 As shown, system architecture 100 may include terminal device 101, server 102, and cloud phone 103, as well as network 104 for communication between them. Network 104 serves as a medium for providing communication links between terminal device 101, server 102, and cloud phone 103. For example, terminal device 101 and server 102 can communicate through network 104, terminal device 101 and cloud phone 102 can communicate through network 104, and server 102 and cloud phone 103 can also communicate through network 104.
[0024] Network 104 can include various connection types, such as wired, wireless communication links, or fiber optic cables, etc.
[0025] Typically, cloud phone 103 can be a component of server 102. For example, cloud phone 103 can be provided based on physical devices or physical machines included in server 102. However, in practice, to facilitate user access to cloud phones, multiple cloud phones can be configured based on geographical distribution. For example, cloud phones are actually provided by physical "data centers" (e.g., physical data centers consisting of at least one server and computing equipment) in different regions.
[0026] Accordingly, multiple cloud phones can be configured. For example, in system architecture 100, cloud phones 105 and 106, which are physically located different from cloud phone 103, can also be included. The configuration and communication methods of cloud phones 105 and 106 are the same as those of cloud phone 103, and will not be repeated here. It should be understood that in scenarios where multiple cloud phones are configured, one cloud phone can be configured on server 102, while the other cloud phones can be configured independently of server 102. Alternatively, each cloud phone can be configured independently of server 102.
[0027] Accordingly, users can be actually provided with cloud phone services through one of cloud phones 103, 105, or 106. In this case, server 105 can act as the executor and manager for distributing cloud phones to users, based on their needs and / or instructions, and interact with users (e.g., terminal device 101).
[0028] For example, a user can use terminal device 101 to interact with server 102 and cloud phone 103 via network 104 to receive or send messages. Terminal device 101, server 102, and cloud phone 103 can all have various applications installed to enable information communication between them, such as cloud service applications and instant messaging applications.
[0029] Terminal device 101, server 102, and cloud phones 103-105 can be either hardware or software. When terminal device 101 is hardware, it can be various electronic devices with a display screen, including but not limited to smartphones, tablets, laptops, and desktop computers. When terminal device 101 is software, it can be installed in the aforementioned electronic devices, and can be implemented as multiple software programs or software modules, or as a single software program or software module; no specific limitation is made here. When server 102 is hardware, it can be implemented as a distributed server cluster composed of multiple servers, or as a single server. When server 102 is software, it can be implemented as multiple software programs or software modules, or as a single software program or software module; no specific limitation is made here. Similarly, when cloud phones 103-105 are hardware, they can be implemented as a distributed server cluster composed of multiple servers, or as a single server. When cloud phones 103-105 are software, they can be implemented as multiple software programs or software modules, or as a single software program or software module; no specific limitation is made here.
[0030] It should be understood that Figure 1 The number of terminal devices, networks, servers, and cloud phones shown is merely illustrative. Depending on implementation needs, any number of terminal devices, networks, and servers can be included.
[0031] As discussed above, configuring multiple cloud phones can enhance their service capabilities. For example, configuring more cloud phones allows them to provide more computing power to users, meeting the needs of more users. Furthermore, configuring multiple cloud phones allows users to access services through cloud phones with higher transmission efficiency (e.g., those closer to the user's current geographical location), improving the user experience. Correspondingly, when at least two cloud phones exist, it's possible to configure them to be "data-isolated," meaning that cloud phones will not directly communicate with each other through direct communication connections (i.e., cloud phones need to use an intermediary entity, such as server 102, for communication). This reduces the configuration cost of cloud phones while ensuring data independence and security. For example, when a new cloud phone is configured, it doesn't need to establish communication capabilities with other existing cloud phones, allowing for faster and more efficient configuration (e.g., a new cloud phone doesn't need to establish communication with previously configured cloud phones to complete the configuration).
[0032] However, this approach presents challenges for data migration between cloud phones. For example, a user might find their current cloud phone unsatisfactory and need to replace it (e.g., with a cloud phone offering higher specifications). Alternatively, a cloud phone might malfunction, requiring a new one. Because cloud phones are not interoperable, direct data migration is impossible. Therefore, this disclosure provides a data migration method that can at least enable data migration between cloud phones.
[0033] Please refer to the following for details. Figure 2 , Figure 2 A flowchart of a data migration method provided in this disclosure embodiment, wherein process 200 includes the following steps:
[0034] Step 201: In response to receiving a data migration request for the first cloud phone, read the backup data associated with the first cloud phone locally;
[0035] This step is intended for the entity performing the data migration method (e.g., Figure 1 The server 102 shown acts as the manager of cloud phones (e.g., cloud phones 103, 105, and 106) to manage the cloud phones and migrate data. In embodiments of this disclosure, the executing entity can back up data in the instructed or requested cloud phone based on backup requests from users (e.g., terminal device 101) and / or the cloud phone. Alternatively, the executing entity can also back up the cloud phone data in response to the fulfillment of pre-configured backup rules (e.g., periodic backup rules, which indicate that a data backup is performed every backup cycle).
[0036] For example, the executing entity can copy and store the "cloud phone data" stored locally on the corresponding cloud phone to local storage to generate corresponding backup data in local storage, thus completing the "backup of cloud phone data".
[0037] Accordingly, in this scenario, if the executing entity receives a data migration request for the first cloud phone, it can respond by reading the backup data associated with the first cloud phone locally (e.g., the local storage described above). For example, a user might send a data migration request to the executing entity to request a "data migration" if they wish to replace their currently used first cloud phone. For ease of understanding, the cloud phone "migrating out" can be described as the first cloud phone, and the cloud phone "migrating in" can be described as the second cloud phone. Accordingly, the data migration request instructs the migration of data stored on the first cloud phone to the second cloud phone.
[0038] In some embodiments, the executing entity may also generate a "data migration request for the first cloud phone" locally and respond to the data migration request when it determines that the first cloud phone has malfunctioned, or that the first cloud phone may not be able to meet the user's current usage needs (e.g., the available computing resources in the first cloud phone are about to be completely consumed), etc., indicating a need to migrate the cloud phone. Accordingly, the executing entity can determine the second cloud phone to be migrated based on whether the similarity to the first cloud phone's computing power meets a threshold (e.g., selecting another cloud phone with a similarity threshold as the second cloud phone), and the communication capabilities of the other cloud phones and the terminal device 101 (e.g., selecting the other cloud phone with the strongest communication capabilities as the second cloud phone). Thus, through "active migration," the cloud phone can be proactively switched when the user's cloud phone may no longer meet the user's usage needs, ensuring the user's cloud phone usage experience.
[0039] Step 202: Transfer the backup data to the second cloud phone;
[0040] Based on step 201, this step aims to have the aforementioned executing entity transfer the read backup data to the second cloud phone, so as to first initiate the migration process of at least a portion of the cloud phone data in the first cloud phone.
[0041] Step 203: Control the first cloud phone to upload the incremental data stored locally on the first cloud phone compared to the backup data to the local device;
[0042] Building upon step 202, this step aims to have the aforementioned executing entity control the first cloud phone to compare the differences between the locally stored data and the backup data on the first cloud phone, in order to at least determine the incremental data stored locally on the first cloud phone compared to the backup data. Incremental data refers to data that exists locally on the first cloud phone but is not recorded in the aforementioned backup data. Accordingly, the executing entity can control and instruct the first cloud phone to upload the determined incremental data to the executing entity's local storage after completing the comparison.
[0043] It should be understood that if the first cloud phone does not identify incremental data during this process (for example, because all the data in the first cloud phone has been backed up to the execution entity's local machine, resulting in the absence of "incremental data" on the first cloud phone's local machine), the first cloud phone will choose "not to upload incremental data".
[0044] Step 204: In response to receiving incremental data, the incremental data is transmitted to the second cloud phone.
[0045] Building upon step 203, this step aims to have the aforementioned executing entity respond upon receiving incremental data, and then transmit the incremental data "independently" of the aforementioned backup data to the second cloud phone. For example, the executing entity can choose another transmission process running concurrently with the backup data transmission process to transmit the incremental data to the second cloud phone.
[0046] The executing entity can choose to continue transmitting incremental data using the communication channel used for transmitting backup data after completing the transmission of backup data, in order to save the communication resources of the channel.
[0047] In some embodiments, the executing entity can also choose to use an image channel independent of the communication channel used to transmit backup data to transmit incremental data. This allows backup and incremental data to be transmitted to the second cloud phone in parallel and more efficiently. Correspondingly, the second cloud phone can achieve data migration by receiving backup and incremental data in parallel. For example, after receiving backup and incremental data, the second cloud phone can attribute these two parts of data to the "first cloud phone" using a "combined identifier." This approach can also be described as "hierarchical" data migration in some scenarios. Therefore, when performing data migration, the executing entity can start the process first using backup data without waiting for the first cloud phone's response and data upload, thus improving migration efficiency during data migration between cloud phones using the executing entity.
[0048] The data migration method provided in this disclosure can still achieve data migration between cloud phones even when communication between cloud phones is not possible, inconvenient, or not permitted, such as when data security is ensured by isolating communication between them. Furthermore, it can improve the efficiency of data migration between cloud phones by using backup data while ensuring data security through backup methods.
[0049] In some optional implementations of this embodiment, during the data backup process (e.g., obtaining data from the first cloud phone for backup), the executing entity can also improve backup efficiency and / or reduce interference with the cloud phone's usage status due to data backup by differentiating the data. Specifically, the "backup data" obtained by the executing entity can be cloud phone data stored locally on the first cloud phone with an idle duration greater than or equal to a duration threshold.
[0050] In other words, the backup data obtained by the executing entity is cloud phone data stored locally on the first cloud phone with an idle duration greater than or equal to a duration threshold. The idle duration is determined based on the time elapsed between the last time the cloud phone data was accessed and the current time.
[0051] For example, when the executing entity retrieves cloud phone data from the first cloud phone for backup, it can detect the idle time of each data file (i.e., the time elapsed since the last time the cloud phone data was accessed). Only cloud phone data with an idle time greater than or equal to a time threshold (typically preset based on prior knowledge that new data or data file access will not interrupt existing processes) is identified as backupable. Accordingly, the executing entity can save this backupable cloud phone data locally as backup data associated with the first cloud phone. This avoids data interruption during data transfer, preventing services on the cloud phone from becoming unusable and ensuring a better user experience.
[0052] In some optional implementations of this embodiment, when backing up the cloud phone data of the first cloud phone, the "backup data" obtained by the executing entity can also be cloud phone data stored locally on the first cloud phone with a call count less than or equal to a threshold. The call count is determined based on the number of times the cloud phone data was called by the first cloud phone between the installation time and the installation time.
[0053] In other words, the backup data obtained by the executing entity is cloud phone data whose call count is less than or equal to a threshold. For example, when the executing entity retrieves cloud phone data from the first cloud phone for backup, it can check the call count of each data file. If the call count is less than or equal to the threshold (usually preset based on prior knowledge of "high-frequency user data"), the executing entity can choose to back it up. Thus, by analyzing the call count of cloud phone data, only data with low user frequency and relatively stable usage is backed up. This allows frequently used and updated data to be migrated as "incremental data." This avoids frequent data failures that waste backup resources and improves backup efficiency, allowing backups to be completed more quickly.
[0054] It should be understood that the two methods of determining and obtaining backup data described above may be used individually or in combination in different embodiments of this disclosure, and this disclosure is not intended to limit them.
[0055] In some embodiments, to further enhance the storage capacity of backup data, the implementing entity may also store backup data using a sharded storage method. For details, please refer to [link / reference needed]. Figure 3 .
[0056] Figure 3 A flowchart of a process for storing backup data provided in an embodiment of this disclosure is provided, wherein process 300 includes the following steps:
[0057] Step 301: Obtain initial backup data from the first cloud phone;
[0058] Specifically, the executing entity can establish communication with the first cloud phone based on the methods discussed above and obtain the data to be backed up (i.e., the initial backup data).
[0059] Step 302: Slice the initial backup data to obtain a set of backup data fragments;
[0060] Specifically, based on step 301 above, the executing entity can select to slice the initial backup data, resulting in a set of backup data shards. This utilizes data sharding technology to distribute the backup data across multiple storage regions (or nodes). This allows large datasets to be divided into smaller data blocks, with each block allocated to a different storage region. This improves system scalability and performance, avoids single points of failure, and also enhances data security and reliability.
[0061] Step 303: Based on the pre-configured shard-region storage relationship, each backup data shard in a set of backup data shards is stored in its corresponding storage region.
[0062] Specifically, after obtaining a set of backup data fragments, the executing entity can store each backup data fragment in the set of backup data fragments to its corresponding storage area based on a pre-configured fragment-area storage relationship (e.g., a fragment-area storage relationship indicated by the operations and maintenance personnel, a fragment-area storage relationship determined by a hash function, etc.). This allows backup data to be stored in a set of local storage areas in the form of backup data fragments, achieving fragmented storage.
[0063] In some optional implementations of this embodiment, since the backup data is actually stored in the form of "backup data fragments," each backup data fragment typically has its own independent storage area. In this case, to improve the transmission efficiency of the backup data (e.g., the efficiency of transmission to the second cloud phone), the executing entity can choose to concurrently transmit each target backup data fragment to the second cloud phone based on the first communication channel between each storage area and the second cloud phone when transmitting the backup data.
[0064] Specifically, during the process of transmitting backup data to the second cloud phone, the executing entity can establish communication channels (referred to as the first communication channel for simplicity) between each storage area containing backup data fragments and the second cloud phone, using "storage areas" as the object. The executing entity then uses these first communication channels to transmit each backup data fragment to the second cloud phone in parallel. This concurrent transmission method improves the efficiency of backup data transmission.
[0065] In some embodiments, the executing entity can store "backup data" and "incremental data" using different strategies based on, for example, data security requirements. For instance, for "backup data" that can typically be stored long-term, the executing entity can utilize, for example, local persistent storage to maintain the "backup data" indefinitely. Correspondingly, when retrieving backup data, the executing entity can similarly determine the scope of the "backup data" based on whether it has been authorized for long-term storage by the user. Thus, the executing entity can choose local persistent storage to store the backup data.
[0066] Accordingly, the executing entity can choose to utilize temporary storage (or cache) relative to the long-term storage of "backup data." For example, for user personal data, data that the user does not want the executing entity to "back up" and / or store long-term, the user can instruct the executing entity to migrate it as at least a portion of "incremental data" instead of maintaining it permanently. Accordingly, the executing entity can choose to utilize temporary storage for incremental data. This allows user data security and meets user data privacy needs by clearing temporary storage after data migration is complete.
[0067] Similarly, the same "temporary storage" strategy can be used for "cloud phone data" that may be frequently changed by users, as mentioned above, to prevent it from being backed up by the executing entity, thereby saving the executing entity's local storage resources.
[0068] In some optional implementations of this embodiment, if backup data is stored in local persistent storage and incremental data is stored in local temporary storage, the executing entity can also implement the transmission of backup data and incremental data to the second cloud phone in a parallel manner. Specifically, when transmitting backup data to the second cloud phone, the executing entity can transmit the backup data to the second cloud phone via a second communication channel between the local persistent storage and the second cloud phone. When transmitting incremental data to the second cloud phone in response to receiving incremental data, the executing entity can choose to transmit the incremental data to the second cloud phone via a third communication channel between the temporary storage and the second cloud phone in response to receiving incremental data.
[0069] Therefore, the executing entity can transmit backup data and incremental data in parallel through the second and third communication channels, which improves transmission efficiency while ensuring that the two parts of data do not overlap and thus protects data security.
[0070] Based on any of the above embodiments, a user may modify or delete data on the first cloud phone during interactive operations. In this case, some content in the backup data may change due to modifications or deletions made after the user's backup time. For example, data A in the backup data may have been "backed up," but if the user subsequently deletes data A during use of the first cloud phone, then data A in the backup data is effectively "invalid." In some embodiments, the first cloud phone can choose to return a modification instruction flag for the backup data, indicating that at least a portion of the backup data should be modified or deleted. Accordingly, in response to the first cloud phone returning the modification instruction flag for the backup data, the executing entity transmits an adjustment flag to the second cloud phone. Then, the executing entity can control the second cloud phone to modify or delete the received backup data based on the adjustment flag, thereby adjusting the "backup data" on the second cloud phone side. This ensures that the original data migration strategy is not interrupted, data migration efficiency is guaranteed, data migration and synchronization are accurate, and data migration quality is ensured.
[0071] Based on any of the above embodiments, users and maintenance personnel can pre-configure the execution entity to synchronize the transmission progress during data migration, assisting cloud phone users and maintenance personnel in understanding the transmission progress and making adaptive decisions. For example, users can understand that data will be migrated based on the synchronized transmission progress, and estimate the completion time of the data migration, the expected time when the second cloud phone can be used, etc. Thus, in response to the start of transmitting backup data to the second cloud phone, the execution entity can synchronize the transmission progress of the backup data to the target device based on the pre-configured communication address used to communicate with the target device. For example, when the execution entity starts transmitting backup data to the second cloud phone, it synchronizes the transmission progress of the backup data to the target device (e.g., the terminal device 101 used by the user) based on the pre-configured communication address used to communicate with the target device, i.e., synchronizes it to the user. For example, the execution entity can provide the user with the size of the transmitted files and / or a completion rate determined based on the ratio of the transmitted file size to the total file size for synchronizing the transmission progress.
[0072] Similarly, the executing entity can also respond by transmitting incremental data to the second cloud phone and synchronizing the transmission progress of the incremental data to the target device based on the communication address. This allows for the synchronization of the incremental data transmission progress with the user.
[0073] It should be understood that the transmission progress of backup data and incremental data can also be synchronized to the target device in parallel, so that the target device can understand the transmission progress of backup data and incremental data separately and synchronously.
[0074] To enhance understanding, this disclosure also provides a specific implementation scheme based on a particular application scenario. Please refer to the example below. Figure 4 The process shown is 400.
[0075] For example, in process 400, the user can use terminal device 101 to communicate with cloud phone 103 in the current state to utilize cloud phone 103 to provide the required computing power of "cloud phone".
[0076] For example, server 102 can be used as the entity that manages the cloud phones (e.g., cloud phone 103, cloud phone 105) to back up their data, thereby implementing the data migration method. For ease of understanding, cloud phone 103 is used as the first cloud phone for data migration and cloud phone 103 is used as the second cloud phone for data migration.
[0077] First, server 102 can execute S401 to instruct cloud phone 103 to perform data backup. Accordingly, cloud phone 103 can respond by executing S402 to transfer cloud phone data 410 to server 102 for backup.
[0078] Furthermore, after receiving the cloud phone data 410, the server 102 can store it locally as backup data 415 to achieve backup.
[0079] Next, taking the example of terminal device 101 requesting data migration from server 102, for instance, terminal device 101 requests to migrate cloud phone data from cloud phone 103 to cloud phone 105, hoping to subsequently use cloud phone 105 to provide cloud phone services. In this case, terminal device 101 can execute S403 to request the migration of cloud phone 103 to 105.
[0080] Server 105 can respond by executing S404 to transfer the locally stored backup data 415 to cloud phone 405.
[0081] Furthermore, server 102 can execute S405 to control cloud phone 103 to upload incremental data 420. For example, the incremental data 420 can be obtained by cloud phone 103 by comparing cloud phone data stored locally on cloud phone 103 with backup data 415.
[0082] Accordingly, in response to receiving incremental data 420, server 102 executes S407 to transmit incremental data 420 to cloud phone 105.
[0083] Next, after the backup data 415 and the incremental data 420 have been received by the cloud phone 105, the server 102 can execute S408 to establish communication between the cloud phone 105 and the terminal device 101 (for example, providing the terminal device 101 with the access address of the cloud phone 105, authorizing the terminal device 101 to access the cloud phone 105, etc.), so that the cloud phone 105 can be used to provide services to the terminal device 101 in the future.
[0084] Further reference Figure 5 As an implementation of the methods shown in the above figures, this disclosure provides an embodiment of a data migration apparatus, which is similar to... Figure 2 Corresponding to the method embodiments shown, this device can be specifically applied to various electronic devices.
[0085] like Figure 5 As shown, the data migration device 500 of this embodiment may include: a backup data reading unit 501, a backup data transmission unit 502, an incremental data acquisition unit 503, and an incremental data transmission unit 504. The backup data reading unit 501 is configured to read backup data associated with the first cloud phone locally in response to receiving a data migration request for the first cloud phone, wherein the data migration request instructs the migration of data stored in the first cloud phone to the second cloud phone; the backup data transmission unit 502 is configured to transmit backup data to the second cloud phone; the incremental data acquisition unit 503 is configured to control the first cloud phone to upload incremental data stored locally on the first cloud phone relative to the backup data; and the incremental data transmission unit 504 is configured to transmit incremental data to the second cloud phone in response to receiving incremental data.
[0086] In this embodiment, the specific processing of the backup data reading unit 501, the backup data transmission unit 502, the incremental data acquisition unit 503, and the incremental data transmission unit 504 in the data migration device 500, and the resulting technical effects, can be found in reference to [reference needed]. Figure 2 The relevant descriptions of steps 201-204 in the corresponding embodiments will not be repeated here.
[0087] In some optional implementations of this embodiment, the apparatus 500 further includes: a modification instruction transmission unit configured to transmit an adjustment identifier to a second cloud phone in response to a first cloud phone returning a modification instruction identifier for backup data, wherein the adjustment instruction identifier is used to indicate that at least a portion of the backup data is modified or deleted; and a backup data modification unit configured to control the second cloud phone to perform modification or deletion on the received backup data based on the adjustment identifier.
[0088] In some optional implementations of this embodiment, the apparatus 500 further includes: an initial backup data acquisition unit configured to acquire initial backup data from the first cloud phone in response to receiving a data backup instruction for the first cloud phone; an initial backup data slicing unit configured to slice the initial backup data to obtain a set of backup data fragments; and a backup data fragment storage unit configured to store each backup data fragment in the set of backup data fragments into a corresponding storage area based on a pre-configured fragment-area storage relationship, wherein the backup data is stored in a set of local storage areas in the form of backup data fragments.
[0089] In some optional implementations of this embodiment, the backup data transmission unit 502 is further configured to transmit each target backup data fragment to the second cloud phone based on the first communication channel between each storage area and the second cloud phone.
[0090] In some optional implementations of this embodiment, the device 500 further includes: a first backup data acquisition unit, configured to acquire cloud phone data stored locally on the first cloud phone with an idle duration greater than or equal to a duration threshold, wherein the idle duration is determined based on the time length between the last time the cloud phone data was accessed and the current time, and the cloud phone data with an idle duration greater than or equal to the duration threshold is backup data.
[0091] In some optional implementations of this embodiment, the device 500 further includes: a second backup data acquisition unit, configured to acquire cloud phone data stored locally on the first cloud phone whose call count is less than or equal to a call threshold, wherein the call count is determined based on the number of times the cloud phone data is called by the first cloud phone from the time point when it is installed to the time point when it is backed up, and the cloud phone data whose call count is less than or equal to the call threshold is backup data.
[0092] In some optional implementations of this embodiment, backup data is stored in local persistent storage, incremental data is stored in local temporary storage, backup data transmission unit 502 is further configured to transmit backup data to the second cloud phone based on the local persistent storage and the second communication channel of the second cloud phone; and incremental data transmission unit 504 is further configured to transmit incremental data to the second cloud phone based on the temporary storage and the third communication channel of the second cloud phone in response to receiving incremental data.
[0093] In some optional implementations of this embodiment, the apparatus 500 further includes: a first progress transmission unit configured to, in response to the start of execution of transmitting backup data to the second cloud phone, synchronize the transmission progress of transmitting backup data to the target device based on a pre-configured communication address for communicating with the target device; and a second progress transmission unit configured to, in response to the start of execution of transmitting incremental data to the second cloud phone, synchronize the transmission progress of transmitting incremental data to the target device based on the communication address.
[0094] This embodiment exists as a device embodiment corresponding to the above method embodiment. The data migration device provided in this embodiment can still achieve data migration between cloud phones even when communication between cloud phones is not possible, inconvenient, or not allowed, such as when data security is ensured by isolating communication between cloud phones. Furthermore, it can improve the data migration efficiency between cloud phones by using backup data while ensuring data security of cloud phones through backup methods.
[0095] According to embodiments of this disclosure, this disclosure also provides an electronic device, a readable storage medium, and a computer program product.
[0096] Figure 6 A schematic block diagram of an example electronic device 600 that can be used to implement embodiments of the present disclosure is shown. The electronic device is intended to represent various forms of digital computers, such as laptop computers, desktop computers, workstations, personal digital assistants, servers, blade servers, mainframe computers, and other suitable computers. The electronic device may also represent various forms of mobile devices, such as personal digital processors, cellular phones, smartphones, wearable devices, and other similar computing devices. The components shown herein, their connections and relationships, and their functions are merely illustrative and are not intended to limit the implementation of the present disclosure described and / or claimed herein.
[0097] like Figure 6As shown, device 600 includes a computing unit 601, which can perform various appropriate actions and processes based on a computer program stored in read-only memory (ROM) 602 or a computer program loaded into random access memory (RAM) 603 from storage unit 608. RAM 603 may also store various programs and data required for the operation of device 600. The computing unit 601, ROM 602, and RAM 603 are interconnected via bus 604. Input / output (I / O) interface 605 is also connected to bus 604.
[0098] Multiple components in device 600 are connected to I / O interface 605, including: input unit 606, such as keyboard, mouse, etc.; output unit 607, such as various types of monitors, speakers, etc.; storage unit 608, such as disk, optical disk, etc.; and communication unit 609, such as network card, modem, wireless transceiver, etc. Communication unit 609 allows device 600 to exchange information / data with other devices through computer networks such as the Internet and / or various telecommunications networks.
[0099] The computing unit 601 can be a variety of general-purpose and / or special-purpose processing components with processing and computing capabilities. Some examples of the computing unit 601 include, but are not limited to, a central processing unit (CPU), a graphics processing unit (GPU), various special-purpose artificial intelligence (AI) computing chips, various computing units running machine learning model algorithms, a digital signal processor (DSP), and any suitable processor, controller, microcontroller, etc. The computing unit 601 performs the various methods and processes described above, such as methods for migrating data. For example, in some embodiments, the method for migrating data may be implemented as a computer software program tangibly contained in a machine-readable medium, such as storage unit 608. In some embodiments, part or all of the computer program may be loaded and / or installed on device 600 via ROM 602 and / or communication unit 609. When the computer program is loaded into RAM 603 and executed by the computing unit 601, one or more steps of the methods for migrating data described above may be performed. Alternatively, in other embodiments, the computing unit 601 may be configured to perform methods for migrating data by any other suitable means (e.g., by means of firmware).
[0100] Various embodiments of the systems and techniques described above herein can be implemented in digital electronic circuit systems, integrated circuit systems, field-programmable gate arrays (FPGAs), application-specific integrated circuits (ASICs), application-specific standard products (ASSPs), systems-on-a-chip (SoCs), payload-programmable logic devices (CPLDs), computer hardware, firmware, software, and / or combinations thereof. These various embodiments may include implementations in one or more computer programs that can be executed and / or interpreted on a programmable system including at least one programmable processor, which may be a dedicated or general-purpose programmable processor, capable of receiving data and instructions from a storage system, at least one input device, and at least one output device, and transmitting data and instructions to the storage system, the at least one input device, and the at least one output device.
[0101] The program code used to implement the methods of this disclosure may be written in any combination of one or more programming languages. This program code may be provided to a processor or controller of a general-purpose computer, special-purpose computer, or other programmable data processing apparatus, such that when executed by the processor or controller, the program code causes the functions / operations specified in the flowcharts and / or block diagrams to be implemented. The program code may be executed entirely on a machine, partially on a machine, as a standalone software package partially on a machine and partially on a remote machine, or entirely on a remote machine or server.
[0102] In the context of this disclosure, a machine-readable medium can be a tangible medium that may contain or store a program for use by or in conjunction with an instruction execution system, apparatus, or device. A machine-readable medium can be a machine-readable signal medium or a machine-readable storage medium. A machine-readable medium can be, but is not limited to, electronic, magnetic, optical, electromagnetic, infrared, or semiconductor systems, apparatus, or devices, or any suitable combination of the foregoing. More specific examples of machine-readable storage media include electrical connections based on one or more wires, portable computer disks, hard disks, 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 devices, magnetic storage devices, or any suitable combination of the foregoing.
[0103] To provide interaction with a user, the systems and techniques described herein can be implemented on a computer having: a display device for displaying information to the user (e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor); and a keyboard and pointing device (e.g., a mouse or trackball) through which the user provides input to the computer. Other types of devices can also be used to provide interaction with the user; for example, feedback provided to the user can be any form of sensory feedback (e.g., visual feedback, auditory feedback, or tactile feedback); and input from the user can be received in any form (including sound input, voice input, or tactile input).
[0104] The systems and technologies described herein can be implemented in computing systems that include backend components (e.g., as a data server), or computing systems that include middleware components (e.g., an application server), or computing systems that include frontend components (e.g., a user computer with a graphical user interface or web browser through which a user can interact with implementations of the systems and technologies described herein), or any combination of such backend, middleware, or frontend components. The components of the system can be interconnected via digital data communication of any form or medium (e.g., a communication network). Examples of communication networks include local area networks (LANs), wide area networks (WANs), and the Internet.
[0105] Computer systems can include clients and servers. Clients and servers are generally geographically separated and typically interact via communication networks. The client-server relationship is established by computer programs running on the respective computers and having a client-server relationship with each other. Servers can be cloud servers, also known as cloud computing servers or cloud hosts, which are hosting products within the cloud computing service ecosystem to address the management difficulties and weak business scalability inherent in traditional physical hosts and Virtual Private Servers (VPS) services. Servers can also be categorized as distributed system servers or servers incorporating blockchain technology.
[0106] According to the technical solutions of this disclosure, data migration between cloud phones can still be achieved even when communication between cloud phones is not possible, inconvenient, or not permitted, such as when data security is ensured by isolating communication between cloud phones. Furthermore, data security of cloud phones can be ensured through backup methods, while backup data can be used to improve the efficiency of data migration between cloud phones.
[0107] It should be understood that the various forms of processes shown above can be used to rearrange, add, or delete steps. For example, the steps described in this disclosure can be executed in parallel, sequentially, or in different orders, as long as the desired result of the technical solution provided in this disclosure can be achieved, and this is not limited herein.
[0108] The specific embodiments described above do not constitute a limitation on the scope of protection of this disclosure. Those skilled in the art should understand that various modifications, combinations, sub-combinations, and substitutions can be made according to design requirements and other factors. Any modifications, equivalent substitutions, and improvements made within the spirit and principles of this disclosure should be included within the scope of protection of this disclosure.
Claims
1. A method for migrating data, comprising: reading, in response to receiving a data migration request for a first cloud phone, backup data associated with the first cloud phone, wherein the data migration request indicates to migrate data stored by the first cloud phone to a second cloud phone, and the backup data is stored in a local persistent storage; transmitting the backup data to the second cloud phone, including transmitting the backup data to the second cloud phone based on a second communication channel of the local persistent storage and the second cloud phone; controlling the first cloud phone to upload, to the local, incremental data stored by the first cloud phone compared to the backup data, wherein the incremental data is stored in a local temporary storage; transmitting, in response to receiving the incremental data, the incremental data to the second cloud phone, including transmitting, in response to receiving the incremental data, the incremental data to the second cloud phone based on a third communication channel of the temporary storage and the second cloud phone.
2. The method of claim 1, further comprising: transmitting, in response to the first cloud phone returning a modification indication identifier for the backup data, the modification indication identifier to the second cloud phone, wherein the modification indication identifier is used to indicate modification or deletion of at least part of the backup data; controlling the second cloud phone to perform modification or deletion on the received backup data based on the modification indication identifier.
3. The method of claim 1, further comprising: obtaining initial backup data from the first cloud phone; slicing the initial backup data to obtain a group of backup data slices; storing each backup data slice in the group of backup data slices in a corresponding storage area based on a pre-configured slice-area storage relationship, wherein the backup data is stored in a group of storage areas in the local in the form of backup data slices.
4. The method of claim 3, wherein, The transmitting the backup data to the second cloud phone includes: transmitting, based on a first communication channel of each of the storage areas and the second cloud phone, each of the target backup data slices to the second cloud phone concurrently.
5. The method of claim 1, further comprising: obtaining cloud phone data stored by the first cloud phone locally and having an idle duration greater than or equal to a duration threshold, wherein the idle duration is determined based on a time length from a time point when the cloud phone data was last invoked to a current time point, and the cloud phone data having an idle duration greater than or equal to the duration threshold is the backup data.
6. The method of claim 1, further comprising: obtaining cloud phone data stored by the first cloud phone locally and having a number of invocations less than or equal to a number threshold, wherein the number of invocations is determined based on a number of times the cloud phone data was invoked by the first cloud phone from a time point when the cloud phone data was installed to a current time point, and the cloud phone data having a number of invocations less than or equal to the number threshold is the backup data.
7. The method of any one of claims 1-6, further comprising: in response to the transmitting of the backup data to the second cloud phone starting to be performed, synchronizing, based on a pre-configured communication address for communicating with a target device, a transmission progress of the transmitting of the backup data to the target device; in response to the transmitting of the incremental data to the second cloud phone starting to be performed, synchronizing, based on the communication address, a transmission progress of the transmitting of the incremental data to the target device.
8. An apparatus for migrating data, comprising: a backup data reading unit configured to read, in response to receiving a data migration request for a first cloud phone, backup data associated with the first cloud phone, wherein the data migration request indicates to migrate data stored by the first cloud phone to a second cloud phone, and the backup data is stored in a local persistent storage; a backup data transmitting unit configured to transmit the backup data to the second cloud phone, including transmitting the backup data to the second cloud phone based on a second communication channel of the local persistent storage and the second cloud phone; an incremental data obtaining unit configured to control the first cloud phone to upload, to a local, incremental data of the first cloud phone stored locally compared to the backup data, wherein the incremental data is stored in a local temporary storage; an incremental data transmitting unit configured to transmit, in response to receiving the incremental data, the incremental data to the second cloud phone, including transmitting, in response to receiving the incremental data, the incremental data to the second cloud phone based on a third communication channel of the temporary storage and the second cloud phone.
9. The apparatus of claim 8, further comprising: a modification indication transmitting unit configured to transmit, in response to the first cloud phone returning a modification indication identifier for the backup data, the adjustment identifier to the second cloud phone, wherein the modification indication identifier is used to indicate modification or deletion of at least part of the backup data; a backup data modifying unit configured to control the second cloud phone to perform modification or deletion on the received backup data correspondingly based on the modification indication identifier.
10. The apparatus of claim 8, further comprising: an initial backup data obtaining unit configured to obtain, in response to receiving a data backup indication for the first cloud phone, initial backup data from the first cloud phone; an initial backup data slicing unit configured to slice the initial backup data to obtain a group of backup data slices; a backup data slice storing unit configured to store each backup data slice in the group of backup data slices into a corresponding storage area based on a pre-configured slice-area storage relationship, wherein the backup data is stored in a group of storage areas locally in the form of backup data slices.
11. The apparatus of claim 10, wherein, The backup data transmitting unit is further configured to transmit, based on each of the storage areas having a first communication channel with the second cloud phone respectively and locally, each of the target backup data slices to the second cloud phone.
12. The apparatus of claim 8, further comprising: The first backup data obtaining unit is configured to obtain cloud phone data of the first cloud phone which is locally stored and whose idle duration is greater than or equal to a duration threshold, wherein the idle duration is determined based on a time length from a time point when the cloud phone data was last invoked to a current time point, and the cloud phone data whose idle duration is greater than or equal to the duration threshold is the backup data.
13. The apparatus of claim 8, further comprising: The second backup data obtaining unit is configured to obtain cloud phone data of the first cloud phone which is locally stored and whose invocation times are less than or equal to a times threshold, wherein the invocation times are determined based on a number of times the cloud phone data is invoked by the first cloud phone from a time point when the cloud phone data is installed to a current time point, and the cloud phone data whose invocation times are less than or equal to the times threshold is the backup data.
14. The apparatus of any one of claims 8-13, further comprising: The first progress transmission unit is configured to, in response to starting to perform the transmission of the backup data to the second cloud phone, synchronize a transmission progress of the transmission of the backup data to a target device based on a communication address pre-configured for communication with the target device. The second progress transmission unit is configured to, in response to starting to perform the transmission of the incremental data to the second cloud phone, synchronize a transmission progress of the transmission of the incremental data to the target device based on the communication address.
15. An electronic device, comprising: at least one processor; and a memory communicatively connected to the at least one processor; wherein the memory stores instructions executable by the at least one processor, and the instructions are executed by the at least one processor to enable the at least one processor to perform the method for migrating data according to any one of claims 1-7.
16. A non-transitory computer-readable storage medium storing computer instructions for causing a computer to perform the method for migrating data according to any one of claims 1-7.
17. A computer program product comprising a computer program which, when executed by a processor, implements the method for migrating data according to any one of claims 1-7.
Citation Information
Patent Citations
Backup and restoration method and device for distributed database and server
CN108241555A
Data migration method and device of cloud mobile phone, equipment and medium
CN114143328A