Snapshot generation method and device, electronic equipment and storage medium
By configuring the version module in the database to generate a unique version identifier and generating snapshots based on the latest version identifier, the problem of inefficient database snapshot generation is solved, and the efficiency of data recovery and backup is improved.
Patent Information
- Application Number
- CN202510230909.4
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2025-02-27
- Publication Date
- 2025-03-28
- Estimated Expiration
- Not applicable · inactive patent
AI Technical Summary
In the prior art, the database is less efficient in generating snapshots, and it is difficult to respond quickly to data security and management needs.
By configuring the version module in the database, a unique and incremental version identifier is generated, used to record the version order relationship of the data partition, and generate a snapshot based on the latest generated version identifier.
It improves the efficiency of database snapshot generation, ensures that data partitions can accurately record the version order during version update, and improves the accuracy and efficiency of data recovery and backup.
Smart Images

Figure CN119719030A_ABST
Abstract
Description
Technical Field
[0001] One or more embodiments of the present specification relate to the field of database technology, and in particular, to a snapshot generation method and device, an electronic device, and a storage medium. Background Art
[0002] Data is the core asset of an enterprise. As business develops, enterprise data is growing in scale and explosively, so the challenges facing database data security are increasing. Snapshots can record the data status of a database at a certain moment, and can protect data security or provide data management convenience in some scenarios. For example, when a database encounters events such as application errors, administrator misoperation, malicious destruction, etc. that cause data corruption, snapshots can be used to restore historical data to protect data security. For another example, for industries such as the gaming industry that have rapid archiving requirements, databases can use snapshot capabilities to quickly create data copies for rapid archiving.
[0003] However, in the related technology, the efficiency of generating snapshots by the database needs to be improved. Summary of the invention
[0004] In view of this, one or more embodiments of the present specification provide a snapshot generation method and device, an electronic device, and a storage medium.
[0005] To achieve the above objectives, one or more embodiments of this specification provide the following technical solutions: According to a first aspect of one or more embodiments of this specification, a snapshot generation method is proposed, the method comprising: In response to an updated version of any data partition, a version identifier acquisition request is sent to a version module, and the version identifier returned by the version module is used as the version identifier of the updated version of the data partition, wherein the version module is used to generate a version identifier in a unique and incremental manner each time a version identifier acquisition request is received; A snapshot generation instruction is received, a version identifier newly generated by the version module is obtained, and a snapshot is generated based on the snapshot version of each data partition, wherein the snapshot version is the version to which the version identifier having the smallest difference with the latest generated version identifier belongs.
[0006] In some embodiments of the present specification, the data partition includes at least one SSTable, and the metadata of the SSTable records the data time range of the SSTable; The method further comprises: The data time range of the snapshot is determined according to the data time range of the SSTable within the snapshot version of each data partition.
[0007] In some embodiments of this specification, the data time range includes a start time and an end time; Determining the data time range of the snapshot according to the data time range of the SSTable in the snapshot version of each data partition includes: For each snapshot version of the data partition, determine the data time range of the snapshot version of the data partition according to the data time range of each SSTable in the snapshot version of the data partition; The smallest end time among the end times of the snapshot versions of all data partitions is determined as the start time of the data time range of the snapshot, and the largest end time among the end times of the snapshot versions of all data partitions is determined as the end time of the data time range of the snapshot.
[0008] In some embodiments of the present specification, the method further includes: Receive a data recovery instruction, restore a target snapshot and replay the log from the start time of the target snapshot to the time indicated by the data recovery instruction to complete data recovery, wherein the target snapshot is a snapshot whose end time is closest to the time indicated by the data recovery instruction among at least one snapshot.
[0009] In some embodiments of the present specification, the method further includes: If any version of the data partition is not the latest version and is not referenced by any snapshot of the data partition, the version of the data partition is deleted.
[0010] In some embodiments of the present specification, the method further includes: If any SSTable of the data partition is not referenced by any version of the data partition, the SSTable is deleted.
[0011] In some embodiments of the present specification, generating a snapshot based on the snapshot version of each data partition includes: If there is a new version of at least one data partition being uploaded, a snapshot is generated based on the snapshot version of each data partition after the new version of the at least one data partition is uploaded.
[0012] In some embodiments of the present specification, the method further includes: Receive a tenant cloning instruction, reference the snapshot version of each data partition in the target snapshot in the cloned tenant, and replay the log from the start time of the target snapshot to the time indicated by the tenant cloning instruction to complete the tenant cloning, wherein the target snapshot is a snapshot whose end time is closest to the time indicated by the tenant cloning instruction among at least one snapshot.
[0013] In some embodiments of the present specification, in the process of replaying the log from the start time of the target snapshot to the time indicated by the tenant cloning instruction, the method further includes: The tenant identifier of the cloned tenant is recorded in the metadata of the SSTable uploaded to the cloned tenant, wherein the tenant identifier of the cloned tenant is different from the tenant identifier recorded in the metadata of the SSTable referenced by the target snapshot.
[0014] In some embodiments of the present specification, after completing the tenant cloning, the method further includes: Copy the SSTable referenced by the target snapshot to the clone tenant.
[0015] In some embodiments of the present specification, in the process of copying the SSTable referenced by the target snapshot to the clone tenant, the method further includes: If a data read instruction is received, and the tenant identifier recorded in the metadata of the SSTable targeted by the data read instruction is the same as the tenant identifier recorded in the metadata of the SSTable referenced by the target snapshot, the data targeted by the data read instruction is read from the target snapshot; If a data read instruction is received, and the tenant identifier recorded in the metadata of the SSTable targeted by the data read instruction is the same as the tenant identifier of the cloned tenant, the data targeted by the data read instruction is read from the cloned tenant.
[0016] In some embodiments of the present specification, the method further includes: The version identifier of the version module that is most recently generated when the target snapshot is generated is determined as the initial version identifier of the internal version module of the cloned tenant.
[0017] According to a second aspect of one or more embodiments of this specification, a snapshot generation device is provided, the device comprising: A version update module, configured to send a version identifier acquisition request to the version module in response to an update version of any data partition, and use the version identifier returned by the version module as the version identifier of the updated version of the data partition, wherein the version module is configured to generate a version identifier in a unique and incremental manner each time a version identifier acquisition request is received; The snapshot generation module is used to receive a snapshot generation instruction, obtain the latest version identifier generated by the version module, and generate a snapshot based on the snapshot version of each data partition, wherein the snapshot version is the version to which the version identifier with the smallest difference from the latest generated version identifier belongs.
[0018] According to a third aspect of one or more embodiments of this specification, a computer program product is provided, comprising a computer program / instruction, which implements the steps of the method described in the first aspect when executed by a processor.
[0019] According to a fourth aspect of one or more embodiments of this specification, an electronic device is provided, including: processor; a memory for storing processor-executable instructions; The processor implements the method as described in the first aspect by running the executable instructions.
[0020] According to a fifth aspect of one or more embodiments of the present specification, a computer-readable storage medium is provided, on which computer instructions are stored, and when the instructions are executed by a processor, the steps of the method described in the first aspect are implemented.
[0021] The technical solutions provided by the embodiments of this specification may have the following beneficial effects: The snapshot generation method provided in the embodiment of the present specification can send a version identification acquisition request to the version module when any data partition updates the version, and use the version identification returned by the version module as the version identification of the updated version of the data partition; and then when receiving the snapshot generation instruction, the version identification newly generated by the version module can be obtained, and the snapshot can be generated based on the snapshot version of each data partition. Since the version module is used to generate the version identification in a unique and incremental manner each time a version identification acquisition request is received, the data partition can record the order relationship of different versions through the version identification during the version update process, and the version module controls the version identification in units of tenants, that is, the version identification of all data partitions will not be repeated, so that when the database generates a snapshot, the latest version relative to the moment of generating the snapshot, that is, the snapshot version, can be determined in each data partition by the version identification newly generated by the version module, and the snapshot generation is completed by referencing the snapshot version of each data partition, and the efficiency of snapshot generation is significantly improved. BRIEF DESCRIPTION OF THE DRAWINGS
[0022] Figure 1 It is a schematic diagram of the structure of a distributed database provided by an exemplary embodiment.
[0023] Figure 2 is a flowchart of a snapshot generation method provided by an exemplary embodiment.
[0024] Figure 3 It is a schematic diagram of the data structure of tenant A provided by an exemplary embodiment.
[0025] Figure 4 It is a schematic diagram of the data structure of tenant A provided by an exemplary embodiment.
[0026] Figure 5 This is a schematic diagram of a data structure of cloning tenant B based on tenant A, provided by an exemplary embodiment.
[0027] Figure 6 It is a structural schematic diagram of a device provided by an exemplary embodiment.
[0028] Figure 7 is a block diagram of a snapshot generating device provided by an exemplary embodiment. DETAILED DESCRIPTION
[0029] Exemplary embodiments will be described in detail herein, examples of which are shown in the accompanying drawings. When the following description refers to the drawings, the same numbers in different drawings represent the same or similar elements unless otherwise indicated. The implementations described in the following exemplary embodiments do not represent all implementations consistent with one or more embodiments of this specification. Instead, they are merely examples of devices and methods consistent with some aspects of one or more embodiments of this specification as detailed in the appended claims.
[0030] It should be noted that: in other embodiments, the steps of the corresponding method are not necessarily performed in the order shown and described in this specification. In some other embodiments, the steps included in the method may be more or less than those described in this specification. In addition, a single step described in this specification may be decomposed into multiple steps for description in other embodiments; and multiple steps described in this specification may be combined into a single step for description in other embodiments.
[0031] First, some concepts involved in this specification are explained.
[0032] Object Storage: also known as object-based storage, is a data storage architecture used to store large amounts of unstructured data (such as pictures, videos, documents, etc.). Unlike traditional file systems or block storage, object storage manages data by treating it as an independent object, each of which contains the data itself, metadata, and a globally unique identifier. This design makes object storage very suitable for large-scale data storage needs in cloud environments.
[0033] WAL (Write-Ahead Logging): A technology widely used in databases, mainly used to ensure data integrity and consistency. The core idea of WAL is to record changes to a separate log file before actually modifying the data. This log file is called a WAL log or transaction log.
[0034] SCN (System Change Number): A globally unique, monotonically increasing number that identifies a specific time point in the database and is used to record the order of data changes. Each transaction log has a unique SCN. SCN plays a very important role in distributed database systems, especially in transaction management and data consistency. It can at least achieve the following functions: Transaction version management: Each transaction is assigned an SCN value at the beginning, which is used to mark the changes made by the transaction to the data. By comparing the SCN values between different transactions, it is possible to determine which transaction occurred first, thereby ensuring the order of transactions and the consistency of data.
[0035] Multi-version concurrency control (MVCC): When users read data, they do not directly access the latest version of the data, but instead look for the historical version of the data at the corresponding time based on the SCN value of the current session or query. This allows read operations to be performed without affecting other transactions, reducing lock contention.
[0036] Data recovery and backup: When recovering data or restoring data from backup, you can restore data to a specific point in time by specifying a certain SCN point. This is very important for quickly recovering data loss caused by unexpected situations.
[0037] Cross-node synchronization: Distributed databases need to ensure data consistency and synchronization across multiple nodes. SCN plays a key role here, helping to identify which changes should be propagated to other replicas and how to apply these changes in the correct order.
[0038] In short, SCN is a way to maintain the timeline within the database, which is crucial for ensuring the correctness of transaction processing, supporting efficient concurrent access modes, and achieving reliable data storage and recovery.
[0039] Tablet: A basic unit for managing and organizing data in a database, especially a distributed database. It can be translated as data partition or data shard, etc. The following Chinese refers to data partition. The data of each table in the database will be divided into multiple tablets, which can be distributed on different servers to achieve horizontal expansion of data. Each tablet contains a part of the table data and can be read and written independently. This design enables distributed databases to effectively support efficient queries and updates on large-scale data sets.
[0040] LSM Tree (Log-Structured Merge Tree): A data structure used to store and manage data, especially suitable for scenarios that require efficient write performance. It is widely used in many modern database systems, especially some distributed file systems, by storing data in layers and using different strategies to optimize read and write operations. Its basic ideas are as follows: MemTable: Newly written or updated data will first be placed in a data structure in memory, called a memory table MemTable. When the MemTable reaches a certain size, it will be frozen and flushed to disk to form an ordered string data table SSTable.
[0041] SSTable: SSTable is a collection of read-only files on disk. Each SSTable is sorted by key. Over time, the system will periodically perform a merge operation (Compaction) to merge multiple smaller SSTables into a larger one, while removing duplicate data entries to keep the data fresh and reduce space usage.
[0042] Read path: When an application initiates a query request, it first checks the latest MemTable to see if there is a matching result; if not found, it continues to search the most recently generated SSTables until the required information is found or all related files are traversed.
[0043] Snapshot: A snapshot in a database is a data backup technology that can create a copy of the database or part of it at a specific point in time. This copy reflects the data state at the time of creation and can be used to restore the data to that specific point in time. Snapshot technology is very useful for ensuring data security and consistency, especially when operations such as system upgrades, migrations, or testing are required.
[0044] Clone: Clone in database refers to creating an exact copy of an existing database.
[0045] Based on the technical problems mentioned in the background technology, at least one embodiment of this specification provides a snapshot generation method, which identifies and distinguishes the various versions of each data partition Tablet by configuring a version module in the database to clarify the sequential relationship between the various versions, so that when generating a snapshot, a snapshot can be generated by referencing the latest version of each data partition (that is, the version before the moment of generating the snapshot and the version closest to that moment).
[0046] For example, the method can be applied to Figure 1 The distributed database based on LSM-Tree data structure is shown.
[0047] Please follow the attached Figure 2 , which exemplarily shows the process of the method, including step S201 to step S202.
[0048] In step S201, in response to any data partition update version, a version identifier acquisition request is sent to the version module, and the version identifier returned by the version module is used as the version identifier of the updated version of the data partition, wherein the version module is used to generate a version identifier in a unique and incremental manner each time a version identifier acquisition request is received.
[0049] The version module acts as a number issuer within the tenant, and the number it issues is the version identifier. Each version identifier generated by the version module in the tenant is continuous and incremental, and the version identifiers generated by the version module for different versions of the same data partition are not necessarily continuous.
[0050] Taking the distributed cloud database based on the LSM-Tree data structure as an example, whether it is all the data in the database or the data of a tenant of the database, it can be divided into multiple data partitions. The data in each data partition includes two parts: static baseline data in SSTable and dynamic incremental data in MemTable. SSTable is read-only and will not be modified once generated, and can be stored on object storage. MemTable supports reading and writing, and is stored in memory. After reaching the threshold, it is uploaded to the object storage by the leader replica of the data partition. When the number of SSTables in the data partition on the object storage reaches a certain limit, the leader replica of the data partition will merge multiple SSTables into a higher-level SSTable and upload it to the object storage, and then the old data can be recycled.
[0051] Each time the data of a data partition changes on the object storage, it is considered a version update of the data partition. That is, the version and version change of the data partition refers to the static data of the data partition on the object storage, and does not include the dynamic incremental data on the memory. For example, if at least one SSTable is newly uploaded from the memory to the object storage, the data partition will be updated once. For another example, if multiple SSTables in the object storage are merged into a higher-level SSTable, the data partition will be updated once. In other words, when uploading an SSTable or merging an SSTable, the data partition can first complete the specific upload or merge operation, and then the version identifier acquisition request obtains the version identifier from the version module, and uploads the newly acquired version identifier as the version identifier of the upload or merge operation result.
[0052] For example, the value of sequence is used as the version identifier, and its initial value may be 0.
[0053] As attached Figure 3 The data versions of the two data partitions P1 and P2 of tenant A (Tenant) are shown. Data partition P1 has undergone two SSTable uploads, one SSTable merge and one SSTable upload, so data partition P1 has generated a total of 4 versions, namely, four versions with version identifier sequence=1, 2, 4, and 5; data partition P2 has undergone one SSTable upload and one SSTable merge, so data partition P2 has generated a total of 2 versions, namely, four versions with version identifier sequence=3 and 6.
[0054] In step S202, a snapshot generation instruction is received, the latest version identifier generated by the version module is obtained, and a snapshot is generated based on the snapshot version of each data partition, wherein the snapshot version is the version to which the version identifier having the smallest difference with the latest generated version identifier belongs.
[0055] The snapshot generation instruction may be generated by an operation input by a user, or may be generated by a database according to pre-configured configuration information, for example, the snapshot generation instruction may be automatically generated according to the configuration information of a database scheduled snapshot.
[0056] Generating a snapshot based on the snapshot version of each data partition may include: generating a snapshot by referencing the snapshot version of each data partition. It should be understood that if there is a new version of at least one data partition being uploaded, a snapshot is generated based on the snapshot version of each data partition after the new version of the at least one data partition is uploaded.
[0057] It should be understood that the version identifier of the snapshot version is earlier than or equal to the version identifier of the latest generation.
[0058] For example, if the value of sequence is used as the version identifier, the latest generated version identifier may be recorded as upper_sequence.
[0059] Continue with Figure 3 Taking the data versions of the two data partitions P1 and P2 of tenant A (TenantA) as an example, tenant A generates two snapshots, snapshot 1 and snapshot 2, at different times. The upper_sequence of snapshot 1 is 2, so snapshot 1 references the version of sequence=2 of data partition P1. The upper_sequence of snapshot 2 is 5, so snapshot 2 references the version of sequence=5 of data partition P1 and the version of sequence=3 of data partition P2.
[0060] Exemplarily, the data partition includes at least one SSTable, and the metadata of the SSTable records the data time range of the SSTable, and the data time range includes a start time and an end time. For example, the data time range is represented by SCN to represent the start time and the end time, as shown in the attached Figure 3 The metadata of the SSTables contained in data partitions P1 and P2 both record their SCN ranges, namely: the version of sequence=1 of data partition P1 contains 1 SSTable, and its SCN range is 1 to 500; the version of sequence=2 of data partition P1 contains 2 SSTables, and their SCN ranges are 1 to 500 and 500 to 1200, that is, the version of sequence=2 of data partition P1 references the SSTable in the version of sequence=1 of data partition P1; the version of sequence=4 of data partition P1 contains 1 SSTable, and its SCN range is 1 to 1200, that is, the SSTable in the version of sequence=4 of data partition P1 is referenced by the sequence of data partition P1. The two SSTables in the version with e=2 are merged; the version with sequence=5 of data partition P1 contains two SSTables, and their SCN ranges are 1 to 1200 and 1200 to 3000, that is, the version with sequence=6 of data partition P1 references the SSTable in the version with sequence=4 of data partition P1; the version with sequence=3 of data partition P2 contains one SSTable, and its SCN ranges are 1 to 1500; the version with sequence=6 of data partition P2 contains two SSTables, and their SCN ranges are 1 to 1500 and 1500 to 5000, that is, the version with sequence=6 of data partition P2 references the SSTable in the version with sequence=3 of data partition P2.
[0061] Based on this example, the method may also include: determining the data time range of the snapshot according to the data time range of the SSTable within the snapshot version of each data partition. For example, for the snapshot version of each data partition, determining the data time range of the snapshot version of the data partition according to the data time range of each SSTable within the snapshot version of the data partition; determining the minimum end time among the end times of the snapshot versions of all data partitions as the starting time of the data time range of the snapshot, and determining the maximum end time among the end times of the snapshot versions of all data partitions as the end time of the data time range of the snapshot.
[0062] Continue with Figure 3Taking the snapshots 1 and 2 of Tenant A as examples, the method of determining the data time range of the snapshot is described. Snapshot 1 references the version of sequence=2 of data partition P1. The SCN ranges of the two SSTables contained in this version are 1 to 500 and 500 to 1200, respectively, so the data time range of this version is 1 to 1200; since snapshot 1 only references data partition P1, the end time 1200 of the snapshot version of data partition P1 is used as both the start time and the end time of snapshot 1, that is, the SCN range of snapshot 1 is 1200 to 1200. Snapshot 2 references version sequence=5 of data partition P1 and version sequence=3 of data partition P2. The SCN ranges of the two SSTables contained in version sequence=5 of data partition P1 are 1 to 1200 and 1200 to 3000 respectively, so the data time range of this version is 1 to 3000, and the SCN range of one SSTable contained in version sequence=3 of data partition P2 is 1 to 1500; therefore, the data time range of version sequence=5 of data partition P1 is 1 to 3000, and the data time range of version sequence=3 of data partition P2 is 1 to 1500; the end time 1500 of version sequence=3 of data partition P2 is determined as the start time of snapshot 2, and the end time 3000 of version sequence=5 of data partition P1 is determined as the end time of snapshot 2, that is, the SCN range of snapshot 2 is 1500 to 3000.
[0063] By determining the data time range of the snapshot, the time status of the snapshot can be marked, which makes it easier to accurately select and use the snapshot when restoring or backing up data based on the snapshot, thereby improving the accuracy and efficiency of data recovery and backup.
[0064] The snapshot generation method provided in the embodiment of the present specification can send a version identification acquisition request to the version module when any data partition updates the version, and use the version identification returned by the version module as the version identification of the updated version of the data partition; and then when receiving the snapshot generation instruction, the version identification newly generated by the version module can be obtained, and the snapshot can be generated based on the snapshot version of each data partition. Since the version module is used to generate the version identification in a unique and incremental manner each time a version identification acquisition request is received, the data partition can record the order relationship of different versions through the version identification during the version update process, and the version module controls the version identification in units of tenants, that is, the version identification of all data partitions will not be repeated, so that when the database generates a snapshot, the latest version relative to the moment of generating the snapshot, that is, the snapshot version, can be determined in each data partition by the version identification newly generated by the version module, and the snapshot generation is completed by referencing the snapshot version of each data partition, and the efficiency of snapshot generation is significantly improved.
[0065] In some embodiments of the present disclosure, if any version of the data partition is not the latest version and is not referenced by any snapshot of the data partition, the version of the data partition is deleted.
[0066] As attached Figure 3 As shown, the version of sequence=5 is the latest version of data partition P1 and is referenced by snapshot 1, so this version can be retained; the version of sequence=4 is not the latest version and is not referenced by any of snapshots 1 and 2, so this version can be deleted; the version of sequence=2 is not the latest version but is referenced by snapshot 1, so this version can be retained; the version of sequence=1 is not the latest version and is not referenced by any of snapshots 1 and 2, so this version can be deleted; the version of sequence=6 is the latest version of data partition P2, so this version can be retained; the version of sequence=3 is not the latest version but is referenced by snapshot 2, so this version can be retained.
[0067] As attached Figure 4 If you delete the attached Figure 3 If it is snapshot 1 in the , sequence=2 is not the latest version and is not referenced by snapshot 1, so this version can be deleted.
[0068] In some embodiments of the present disclosure, if any SSTable of the data partition is not referenced by any version of the data partition, the SSTable is deleted. That is, if the version to which any SSTable belongs is deleted and the SSTable is not referenced by other versions, the SSTable can be deleted.
[0069] As attached Figure 3As shown, the version with sequence=4 is deleted, but the SSTable it contains (i.e., the SSTable with SCN range from 1 to 1200) is referenced by the version with sequence=5, so it needs to be retained and cannot be deleted; the version with sequence=1 is deleted, but the SSTable it contains (i.e., the SSTable with SCN range from 1 to 500) is referenced by the version with sequence=2, so it needs to be retained and cannot be deleted.
[0070] As attached Figure 4 As shown in the figure, after the version with sequence=2 is deleted, the two SSTables it contains (i.e., the two SSTables with SCN ranges of 1 to 500 and 500 to 1200 respectively) are not referenced by other versions, so they can be deleted; the version with sequence=1 is deleted, and the SSTables it contains (i.e., the SSTables with SCN ranges of 1 to 500) are no longer referenced by the version with sequence=2, so they can be deleted.
[0071] In combination with the above two embodiments, the following operations can be performed when the data partition is updated: after the data partition is updated, if the version before the data partition is updated is not referenced by any snapshot of the data partition, the version before the data partition is updated is deleted; further, if any SSTable in the version before the data partition is updated is not referenced by the updated version, the data of the SSTable can be deleted.
[0072] In some embodiments of the present disclosure, the method further includes: receiving a data recovery instruction, restoring a target snapshot and playing back a log from the start time of the target snapshot to the time indicated by the data recovery instruction to complete data recovery, wherein the target snapshot is a snapshot whose end time is closest to the time indicated by the data recovery instruction among at least one snapshot.
[0073] For example, the time indicated by the data recovery instruction may be represented by SCN.
[0074] As can be seen from the above embodiments, a snapshot is formed by referencing the snapshot version of each data partition. The snapshot version of a data partition is the version of the static data of the data partition on the object storage that is closest to the version identifier that was recently generated by the version module when the snapshot was generated. Since the progress of uploading data from the memory to the object storage of each data partition (hereinafter referred to as the upload progress) is not necessarily the same, the data time range of the snapshot includes a start time and an end time, wherein the start time is the end time of the data partition with the slowest upload progress, and the end time is the end time of the data partition with the fastest upload progress. For example, if the data time range of the snapshot is represented by SCN, the start time may be Start_SCN, and the end time may be End_SCN.
[0075] Therefore, the data generated on each data partition by the transaction before (including the start time) of the data time range of the snapshot has been uploaded, while the data generated on some data partitions by the transaction after (excluding the start time) of the data time range of the snapshot has been uploaded, that is, the data generated on some data partitions has not been uploaded. This embodiment can restore the data generated on each data partition by the transaction before (including the start time) of the target snapshot by restoring the target snapshot, and by replaying the log from the start time of the target snapshot to the time indicated by the data recovery instruction, the data generated on each data partition by the transaction from the start time of the target snapshot (excluding the start time) to the time indicated by the data recovery instruction can be restored, thereby completely restoring the data generated on each data partition by all transactions before (including the time indicated by the data recovery instruction).
[0076] In some embodiments of the present disclosure, the method also includes: receiving a tenant cloning instruction, referencing a snapshot version of each data partition in a target snapshot within the cloned tenant, and replaying a log from the start time of the target snapshot to the time indicated by the tenant cloning instruction to complete the tenant cloning, wherein the target snapshot is a snapshot whose end time is closest to the time indicated by the tenant cloning instruction among at least one snapshot.
[0077] The tenant clone instruction is used to clone the original tenant, and the original tenant has at least one snapshot.
[0078] For example, the time indicated by the tenant cloning instruction may be represented by SCN.
[0079] For example, when referencing the snapshot version of each data partition in the target snapshot in the cloned tenant, a snapshot version of each data partition can be created in the cloned tenant, and the snapshot version of each data partition references the SSTable contained in the corresponding version in the original tenant.
[0080] For example, the latest version identifier of the version module when the target snapshot is generated is determined as the initial version identifier of the internal version module of the cloned tenant. The latest version identifier of the version module when the target snapshot is generated is the upper_sequence mentioned in the above example. The internal version module of the cloned tenant increments the version identifier based on its initial version identifier.
[0081] As can be seen from the above embodiments, a snapshot is formed by referencing the snapshot version of each data partition. The snapshot version of a data partition is the version of the static data of the data partition on the object storage that is closest to the version identifier that was recently generated by the version module when the snapshot was generated. Since the progress of uploading data from the memory to the object storage of each data partition (hereinafter referred to as the upload progress) is not necessarily the same, the data time range of the snapshot includes a start time and an end time, wherein the start time is the end time of the data partition with the slowest upload progress, and the end time is the end time of the data partition with the fastest upload progress. For example, if the data time range of the snapshot is represented by SCN, the start time may be Start_SCN, and the end time may be End_SCN.
[0082] Therefore, the data generated on each data partition by the transactions before (including the start time) of the data time range of the snapshot have all been uploaded, while the data generated on some data partitions by the transactions after (excluding the start time) of the data time range of the snapshot have been uploaded, that is, the data generated on some data partitions have not been uploaded. This embodiment can restore the data generated on each data partition by the transactions before (including the start time) of the target snapshot by referencing the snapshot version of each data partition in the target snapshot, and by replaying the log from the start time of the target snapshot to the time indicated by the tenant clone instruction, the data generated on each data partition by the transactions from the start time of the target snapshot (excluding the start time) to the time indicated by the data recovery instruction can be restored, so that the cloned tenant can provide the data generated on each data partition by all transactions before (including the time) indicated by the data recovery instruction, that is, the cloning is completed.
[0083] In this example, in the process of replaying the log from the start time of the target snapshot to the time indicated by the tenant cloning instruction, at least one data partition, for example, a data partition whose end time does not reach the time indicated by the tenant cloning instruction, will upload data from the memory to the object storage to form an SSTable, and the SSTable can be uploaded to the Namespace of the cloned tenant. When the tenant cloning is completed, some data in the cloned tenant is referenced by the SSTable of the original tenant, and some data is in the Namespace of the cloned tenant. Therefore, when accessing data in the cloned tenant, it is necessary to distinguish whether the accessed data is in the original tenant or the cloned tenant.
[0084] Based on the above content, exemplarily, in the process of replaying the log from the start time of the target snapshot to the time indicated by the tenant cloning instruction, this embodiment can record the tenant identifier of the cloned tenant in the metadata of the SSTable uploaded to the cloned tenant, wherein the tenant identifier of the cloned tenant is different from the tenant identifier recorded in the metadata of the SSTable referenced by the target snapshot. For example, an Incarnation attribute can be added to each tenant, and the value of Incarnation can be encoded as the tenant identifier into the address of the SSTable Data in the tenant. The Incarnation of each tenant is determined when the tenant is created, and is initially 1. The Incarnation of the cloned tenant is increased by 1 based on the value of the Incarnation of the snapshot tenant, and will not change after it is determined. The value of Incarnation actually identifies whether the SSTable is uploaded by the cloned tenant or referenced by the SSTable in the snapshot tenant.
[0085] This example adds a tenant identifier to the SSTable in each tenant to facilitate data access. For example, if a data read instruction is received, and the tenant identifier recorded in the metadata of the SSTable targeted by the data read instruction is the same as the tenant identifier recorded in the metadata of the SSTable referenced by the target snapshot, the data targeted by the data read instruction is read from the target snapshot; if a data read instruction is received, and the tenant identifier recorded in the metadata of the SSTable targeted by the data read instruction is the same as the tenant identifier of the cloned tenant, the data targeted by the data read instruction is read from the cloned tenant.
[0086] For example, if the Incarnation value recorded in the metadata of the SSTable targeted by the data read instruction is the value of the snapshot tenant, the data targeted by the data read instruction is read from the target snapshot; if the Incarnation value recorded in the metadata of the SSTable targeted by the data read instruction is the value of the clone tenant, the data targeted by the data read instruction is read from the clone tenant.
[0087] Based on the above content, exemplarily, after the tenant cloning is completed, this embodiment can also copy the SSTable referenced by the target snapshot to the cloned tenant.
[0088] Further, in the process of copying the SSTable referenced by the target snapshot to the cloned tenant, this embodiment may also include the following steps: if a data read instruction is received, and the tenant identifier recorded in the metadata of the SSTable targeted by the data read instruction is the same as the tenant identifier recorded in the metadata of the SSTable referenced by the target snapshot, then the data targeted by the data read instruction is read from the target snapshot; if a data read instruction is received, and the tenant identifier recorded in the metadata of the SSTable targeted by the data read instruction is the same as the tenant identifier of the cloned tenant, then the data targeted by the data read instruction is read from the cloned tenant.
[0089] For example, if the Incarnation value recorded in the metadata of the SSTable targeted by the data read instruction is the value of the snapshot tenant, the data targeted by the data read instruction is read from the target snapshot; if the Incarnation value recorded in the metadata of the SSTable targeted by the data read instruction is the value of the clone tenant, the data targeted by the data read instruction is read from the clone tenant.
[0090] It should be understood that after the SSTable referenced by the target snapshot is copied to the clone tenant, after receiving the data access instruction, the data targeted by the data reading instruction is read by the clone tenant, that is, the tenant identifier is no longer used to distinguish whether the SSTable targeted by the data reading instruction is in the clone tenant or the snapshot tenant.
[0091] Please refer to the attached Figure 5 , which is attached Figure 3The tenant A shown is a snapshot tenant, and the tenant cloning process introduced in this embodiment is exemplified by taking the time indicated by the tenant cloning instruction as SCN=4000. The Incarnation value of tenant A is 1. Tenant A has two snapshots, snapshot 1 and snapshot 2. The end time of snapshot 1 is SCN=1500, and the end time of snapshot 2 is SCN=3000, so snapshot 2 is selected as the target snapshot for cloning. Tenant B is a clone tenant. The Incarnation value of the clone tenant is 2, and the initial value of Sequencer is 5. All referenced Tablet versions in snapshot 2, namely the P1 version with sequence = 5 and the P2 version with sequence = 3, are also created under the clone tenant. Finally, the logs with SCN from 1500 to 4000 are also replayed. During the log recovery process, the SCN range of the SSTable uploaded by P1 after flushing again is [3000, 3500], and the tablet version with sequence = 6 is uploaded. The SCN range of the SSTable uploaded by P2 after flushing again is [1500, 2500], and the tablet version with sequence = 7 is uploaded. The Incarnation of all SSTables uploaded during the log recovery process is 2. After the log recovery is completed, the cloning is completed. The background copies the SSTables with SCN ranges of [1,1200] and [1200, 3000] of P1, and the SSTable with SCN range of [1, 1500] of P2 to the Namespace of the cloned tenant. The Incarnation of the SSTable copied from Tenant A to the cloned tenant is still 1.
[0092] Figure 6 is a schematic structural diagram of a device provided by an exemplary embodiment. Figure 6 At the hardware level, the device includes a processor 602, an internal bus 604, a network interface 606, a memory 608, and a non-volatile memory 610, and may also include hardware required for other tasks. One or more embodiments of this specification may be implemented based on software, such as the processor 602 reading the corresponding computer program from the non-volatile memory 610 into the memory 608 and then running it. Of course, in addition to the software implementation, one or more embodiments of this specification do not exclude other implementations, such as logic devices or a combination of software and hardware, etc., that is, the execution subject of the following processing flow is not limited to each logic unit, but can also be hardware or logic devices.
[0093] Please refer to Figure 7 , the snapshot generation device can be applied to Figure 6The device shown in the figure can be used to implement the technical solution of this specification. The snapshot generation device can include: The version update module 701 is used to send a version identification acquisition request to the version module in response to any data partition update version, and use the version identification returned by the version module as the version identification of the updated version of the data partition, wherein the version module is used to generate a version identification in a unique and incremental manner each time a version identification acquisition request is received; The snapshot generation module 702 is used to receive a snapshot generation instruction, obtain the latest version identifier generated by the version module, and generate a snapshot based on the snapshot version of each data partition, wherein the snapshot version is the version to which the version identifier with the smallest difference from the latest generated version identifier belongs.
[0094] In some embodiments of the present specification, the data partition includes at least one SSTable, and the metadata of the SSTable records the data time range of the SSTable; The snapshot generation module is also used for: The data time range of the snapshot is determined according to the data time range of the SSTable within the snapshot version of each data partition.
[0095] In some embodiments of this specification, the data time range includes a start time and an end time; The snapshot generation module is used to determine the data time range of the snapshot according to the data time range of the SSTable in the snapshot version of each data partition, and is used to: For each snapshot version of a data partition, determine the data time range of the snapshot version of the data partition according to the data time range of each SSTable in the snapshot version of the data partition; The smallest end time among the end times of the snapshot versions of all data partitions is determined as the start time of the data time range of the snapshot, and the largest end time among the end times of the snapshot versions of all data partitions is determined as the end time of the data time range of the snapshot.
[0096] In some embodiments of the present specification, the device further includes a data recovery module, which is used to: Receive a data recovery instruction, restore a target snapshot and replay the log from the start time of the target snapshot to the time indicated by the data recovery instruction to complete data recovery, wherein the target snapshot is a snapshot whose end time is closest to the time indicated by the data recovery instruction among at least one snapshot.
[0097] In some embodiments of the present specification, the device further includes a deletion module, configured to: If any version of the data partition is not the latest version and is not referenced by any snapshot of the data partition, the version of the data partition is deleted.
[0098] In some embodiments of the present specification, the device further includes a deletion module, configured to: If any SSTable of the data partition is not referenced by any version of the data partition, the SSTable is deleted.
[0099] In some embodiments of the present specification, when the snapshot generation module is used to generate a snapshot based on the snapshot version of each data partition, it is used to: If there is a new version of at least one data partition being uploaded, a snapshot is generated based on the snapshot version of each data partition after the new version of the at least one data partition is uploaded.
[0100] In some embodiments of this specification, the device further includes a tenant cloning module, which is used to: Receive a tenant cloning instruction, reference the snapshot version of each data partition in the target snapshot in the cloned tenant, and replay the log from the start time of the target snapshot to the time indicated by the tenant cloning instruction to complete the tenant cloning, wherein the target snapshot is a snapshot whose end time is closest to the time indicated by the tenant cloning instruction among at least one snapshot.
[0101] In some embodiments of this specification, the tenant cloning module is further used to: During the process of playing back the log from the starting time of the target snapshot to the time indicated by the tenant cloning instruction, the tenant identifier of the cloned tenant is recorded in the metadata of the SSTable uploaded to the cloned tenant, wherein the tenant identifier of the cloned tenant is different from the tenant identifier recorded in the metadata of the SSTable referenced by the target snapshot.
[0102] In some embodiments of this specification, the tenant cloning module is further used to: After the tenant cloning is completed, the SSTable referenced by the target snapshot is copied to the cloned tenant.
[0103] In some embodiments of this specification, the device further includes a data reading module, which is used to: In the process of copying the SSTable referenced by the target snapshot to the cloned tenant, if a data read instruction is received, and the tenant identifier recorded in the metadata of the SSTable targeted by the data read instruction is the same as the tenant identifier recorded in the metadata of the SSTable referenced by the target snapshot, the data targeted by the data read instruction is read from the target snapshot; During the process of copying the SSTable referenced by the target snapshot to the cloned tenant, if a data read instruction is received and the tenant identifier recorded in the metadata of the SSTable targeted by the data read instruction is the same as the tenant identifier of the cloned tenant, the data targeted by the data read instruction is read from the cloned tenant.
[0104] In some embodiments of this specification, the tenant cloning module is further used to: The version identifier of the version module that is most recently generated when the target snapshot is generated is determined as the initial version identifier of the internal version module of the cloned tenant.
[0105] One or more embodiments of the present specification also propose a computer program product, including a computer program / instruction, which implements the steps of the method provided in the first aspect when the computer program / instruction is executed by a processor.
[0106] One or more embodiments of the present specification also propose a computer-readable storage medium having computer instructions stored thereon, which, when executed by a processor, implement the steps of the method described in the first aspect.
[0107] The systems, devices, modules or units described in the above embodiments may be implemented by computer chips or entities, or by products with certain functions. A typical implementation device is a computer, which may be in the form of a personal computer, a laptop computer, a cellular phone, a camera phone, a smart phone, a personal digital assistant, a media player, a navigation device, an email transceiver, a game console, a tablet computer, a wearable device or a combination of any of these devices.
[0108] In a typical configuration, a computer includes one or more processors (CPU), input / output interfaces, network interfaces, and memory.
[0109] Memory may include non-permanent storage in a computer-readable medium, in the form of random access memory (RAM) and / or non-volatile memory, such as read-only memory (ROM) or flash RAM. Memory is an example of a computer-readable medium.
[0110] Computer-readable media include permanent and non-permanent, removable and non-removable media that can be used to store information by any method or technology. Information can be computer-readable instructions, data structures, program modules or other data. Examples of computer storage media include, but are not limited to, phase change memory (PRAM), static random access memory (SRAM), dynamic random access memory (DRAM), other types of random access memory (RAM), read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), flash memory or other memory technology, compact disc read-only memory (CD-ROM), digital versatile disc (DVD) or other optical storage, magnetic cassettes, disk storage, quantum memory, graphene-based storage media or other magnetic storage devices or any other non-transmission media that can be used to store information that can be accessed by a computing device. As defined herein, computer-readable media does not include temporary computer-readable media (transitory media), such as modulated data signals and carrier waves.
[0111] It should also be noted that the terms "include", "comprises" or any other variations thereof are intended to cover non-exclusive inclusion, so that a process, method, commodity or device including a series of elements includes not only those elements, but also other elements not explicitly listed, or also includes elements inherent to such process, method, commodity or device. In the absence of more restrictions, the elements defined by the sentence "comprises a ..." do not exclude the existence of other identical elements in the process, method, commodity or device including the elements.
[0112] The above is a description of a specific embodiment of the specification. Other embodiments are within the scope of the appended claims. In some cases, the actions or steps recorded in the claims can be performed in an order different from that in the embodiments and still achieve the desired results. In addition, the processes depicted in the drawings do not necessarily require the specific order or continuous order shown to achieve the desired results. In some embodiments, multitasking and parallel processing are also possible or may be advantageous.
[0113] The terms used in one or more embodiments of this specification are only for the purpose of describing specific embodiments, and are not intended to limit one or more embodiments of this specification. The singular forms of "a", "said" and "the" used in one or more embodiments of this specification and the appended claims are also intended to include plural forms, unless the context clearly indicates other meanings. It should also be understood that the term "and / or" used herein refers to and includes any or all possible combinations of one or more associated listed items.
[0114] The user information (including but not limited to user device information, user personal information, etc.) and data (including but not limited to data used for analysis, stored data, displayed data, etc.) involved in this manual are all information and data authorized by the user or fully authorized by all parties, and the collection, use and processing of relevant data must comply with the relevant laws, regulations and standards of relevant countries and regions, and provide corresponding operation entrances for users to choose to authorize or refuse.
[0115] It should be understood that although the terms first, second, third, etc. may be used to describe various information in one or more embodiments of this specification, these information should not be limited to these terms. These terms are only used to distinguish the same type of information from each other. For example, without departing from the scope of one or more embodiments of this specification, the first information may also be referred to as the second information, and similarly, the second information may also be referred to as the first information. Depending on the context, the word "if" as used herein may be interpreted as "at the time of" or "when" or "in response to determining".
[0116] The above description is merely a preferred embodiment of one or more embodiments of the present specification and is not intended to limit one or more embodiments of the present specification. Any modifications, equivalent substitutions, improvements, etc. made within the spirit and principles of one or more embodiments of the present specification shall be included in the scope of protection of one or more embodiments of the present specification.
Claims
1. A snapshot generation method, the method comprising: In response to an updated version of any data partition, a version identifier acquisition request is sent to a version module, and the version identifier returned by the version module is used as the version identifier of the updated version of the data partition, wherein the version module is used to generate a version identifier in a unique and incremental manner each time a version identifier acquisition request is received; A snapshot generation instruction is received, a version identifier newly generated by the version module is obtained, and a snapshot is generated based on the snapshot version of each data partition, wherein the snapshot version is the version to which the version identifier having the smallest difference with the latest generated version identifier belongs.
2. According to the snapshot generation method of claim 1, the data partition includes at least one SSTable, and the metadata of the SSTable records the data time range of the SSTable; The method further comprises: The data time range of the snapshot is determined according to the data time range of the SSTable within the snapshot version of each data partition.
3. The snapshot generation method according to claim 2, wherein the data time range includes a start time and an end time; Determining the data time range of the snapshot according to the data time range of the SSTable in the snapshot version of each data partition includes: For each snapshot version of a data partition, determine the data time range of the snapshot version of the data partition according to the data time range of each SSTable in the snapshot version of the data partition; The smallest end time among the end times of the snapshot versions of all data partitions is determined as the start time of the data time range of the snapshot, and the largest end time among the end times of the snapshot versions of all data partitions is determined as the end time of the data time range of the snapshot.
4. The snapshot generation method according to claim 3, further comprising: Receive a data recovery instruction, restore a target snapshot and replay the log from the start time of the target snapshot to the time indicated by the data recovery instruction to complete data recovery, wherein the target snapshot is a snapshot whose end time is closest to the time indicated by the data recovery instruction among at least one snapshot.
5. The snapshot generation method according to claim 2, further comprising: If any version of the data partition is not the latest version and is not referenced by any snapshot of the data partition, the version of the data partition is deleted.
6. The snapshot generation method according to claim 2, further comprising: If any SSTable of the data partition is not referenced by any version of the data partition, the SSTable is deleted.
7. The snapshot generation method according to claim 1, wherein generating a snapshot based on the snapshot version of each data partition comprises: If there is a new version of at least one data partition being uploaded, a snapshot is generated based on the snapshot version of each data partition after the new version of the at least one data partition is uploaded.
8. The snapshot generation method according to claim 3, further comprising: Receive a tenant cloning instruction, reference the snapshot version of each data partition in the target snapshot in the cloned tenant, and replay the log from the start time of the target snapshot to the time indicated by the tenant cloning instruction to complete the tenant cloning, wherein the target snapshot is a snapshot whose end time is closest to the time indicated by the tenant cloning instruction among at least one snapshot.
9. The snapshot generation method according to claim 8, in the process of replaying the log from the start time of the target snapshot to the time indicated by the tenant cloning instruction, the method further comprises: The tenant identifier of the cloned tenant is recorded in the metadata of the SSTable uploaded to the cloned tenant, wherein the tenant identifier of the cloned tenant is different from the tenant identifier recorded in the metadata of the SSTable referenced by the target snapshot.
10. The snapshot generation method according to claim 8, after completing tenant cloning, the method further comprises: Copy the SSTable referenced by the target snapshot to the clone tenant.
11. The snapshot generation method according to claim 10, in the process of copying the SSTable referenced by the target snapshot to the clone tenant, the method further comprises: If a data read instruction is received, and the tenant identifier recorded in the metadata of the SSTable targeted by the data read instruction is the same as the tenant identifier recorded in the metadata of the SSTable referenced by the target snapshot, the data targeted by the data read instruction is read from the target snapshot; If a data read instruction is received, and the tenant identifier recorded in the metadata of the SSTable targeted by the data read instruction is the same as the tenant identifier of the cloned tenant, the data targeted by the data read instruction is read from the cloned tenant.
12. The snapshot generation method according to claim 8, further comprising: The version identifier of the version module that is most recently generated when the target snapshot is generated is determined as the initial version identifier of the internal version module of the cloned tenant.
13. A snapshot generation device, the device comprising: A version update module, configured to send a version identifier acquisition request to the version module in response to an update version of any data partition, and use the version identifier returned by the version module as the version identifier of the updated version of the data partition, wherein the version module is configured to generate a version identifier in a unique and incremental manner each time a version identifier acquisition request is received; The snapshot generation module is used to receive a snapshot generation instruction, obtain the latest version identifier generated by the version module, and generate a snapshot based on the snapshot version of each data partition, wherein the snapshot version is the version to which the version identifier with the smallest difference from the latest generated version identifier belongs.
14. The snapshot generation device according to claim 13, wherein the data partition comprises at least one SSTable, and the metadata of the SSTable records the data time range of the SSTable; The snapshot generation module is also used for: The data time range of the snapshot is determined according to the data time range of the SSTable within the snapshot version of each data partition.
15. The snapshot generation device according to claim 14, wherein the data time range includes a start time and an end time; The snapshot generation module is used to determine the data time range of the snapshot according to the data time range of the SSTable in the snapshot version of each data partition, and is used to: For each snapshot version of a data partition, determine the data time range of the snapshot version of the data partition according to the data time range of each SSTable in the snapshot version of the data partition; The smallest end time among the end times of the snapshot versions of all data partitions is determined as the start time of the data time range of the snapshot, and the largest end time among the end times of the snapshot versions of all data partitions is determined as the end time of the data time range of the snapshot.
16. The snapshot generation device according to claim 15, further comprising a data recovery module, configured to: receiving a data recovery instruction, recovering a target snapshot and replaying a log from the start time of the target snapshot to the time indicated by the data recovery instruction to complete data recovery, wherein: The target snapshot is a snapshot whose end time is closest to the time indicated by the data recovery instruction among at least one snapshot.
17. The snapshot generation device according to claim 15, further comprising a tenant cloning module, configured to: Receive a tenant cloning instruction, reference the snapshot version of each data partition in the target snapshot in the cloned tenant, and replay the log from the start time of the target snapshot to the time indicated by the tenant cloning instruction to complete the tenant cloning, wherein: The target snapshot is a snapshot whose end time is closest to the time indicated by the tenant cloning instruction among at least one snapshot.
18. The snapshot generation device according to claim 17, wherein the tenant cloning module is further configured to: In the process of replaying the log from the start time of the target snapshot to the time indicated by the tenant cloning instruction, the tenant identifier of the cloned tenant is recorded in the metadata of the SSTable uploaded to the cloned tenant, wherein, The tenant identifier of the cloned tenant is different from the tenant identifier recorded in the metadata of the SSTable referenced by the target snapshot.
19. The snapshot generation device according to claim 17, wherein the tenant cloning module is further configured to: After the tenant cloning is completed, the SSTable referenced by the target snapshot is copied to the cloned tenant.
20. The snapshot generation device according to claim 19, further comprising a data reading module, configured to: In the process of copying the SSTable referenced by the target snapshot to the cloned tenant, if a data read instruction is received, and the tenant identifier recorded in the metadata of the SSTable targeted by the data read instruction is the same as the tenant identifier recorded in the metadata of the SSTable referenced by the target snapshot, the data targeted by the data read instruction is read from the target snapshot; During the process of copying the SSTable referenced by the target snapshot to the cloned tenant, if a data read instruction is received and the tenant identifier recorded in the metadata of the SSTable targeted by the data read instruction is the same as the tenant identifier of the cloned tenant, the data targeted by the data read instruction is read from the cloned tenant.
21. A computer program product comprising a computer program / instructions, which when executed by a processor implement the steps of the method according to any one of claims 1 to 12.
22. An electronic device, comprising: processor; a memory for storing processor-executable instructions; The processor implements the method according to any one of claims 1 to 12 by running the executable instructions.
23. A computer-readable storage medium having computer instructions stored thereon, which, when executed by a processor, implement the steps of the method according to any one of claims 1 to 12.
Citation Information
Patent Citations
Data structure of data snapshot and related data processing method, device and system
CN113468105A
Redirection-on-write snapshot implementation method and device, equipment and storage medium
CN115033174A
Data writing method, data recovery method, data reading method and corresponding devices
CN117763636A
Storage organization structure based on LSM Tree under multi-version data and storage method thereof
CN118550921A
Snapshot generation method and device, electronic equipment, storage medium and program product
CN119311924A
Cited By
Batch task processing method based on distributed management
CN120804114A
Data writing method, recovery method, and reading method, and corresponding apparatus
US12619790B2