Method, apparatus and computer program product for managing metadata of storage objects
By updating and persisting the metadata index structure and page tables in a distributed object storage system and merging the page table logs, the problem of slow metadata failover and persistence is solved, and the system availability and scalability is improved. Reduces memory overhead and I/O pressure.
Patent Information
- Application Number
- CN201910865367.2
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2019-09-12
- Publication Date
- 2024-12-24
- Estimated Expiration
- 2039-09-12
AI Technical Summary
The slow failover and persistence of metadata in distributed object storage systems leads to poor system availability and scalability, especially when the metadata scale grows, which leads to write amplification problems and I/O operations that increase, affecting the impact of System performance.
By updating and persisting the metadata index structure and page table of storage objects in memory, only updates of page tables are recorded in the logs and merging the logs in the background to generate a new page table storage structure, reducing persistence and recovery time , improve the access efficiency of metadata.
Significantly improves metadata persistence and failover speed, reduces I/O operation, improves system availability and scalability, reduces memory overhead, and balances I/O pressure and access performance.
Smart Images

Figure CN112486403B_ABST
Abstract
Description
Technical Field
[0001] Embodiments of the present disclosure generally relate to the field of data storage, and more particularly to methods, devices, and computer program products for managing metadata of storage objects. Background Art
[0002] Distributed object storage systems usually do not rely on file systems to manage data. In a distributed object storage system, all storage space can be divided into fixed-size storage chunks. User data can be stored in storage chunks as objects (also called "storage objects"). Objects can have metadata associated with them, which is used to record the properties and other information of the object (such as the address of the object, etc.). Before actually accessing a storage object, it is usually necessary to first access the metadata of the storage object.
[0003] Metadata needs to be stored on a persistent storage device (e.g., a disk), otherwise it may be lost in failure situations such as a storage service restart or a storage node restart. When a storage node in a distributed object storage system fails, the metadata managed by the storage node can be failed over to other storage nodes. Other storage nodes need to restore these metadata from the persistent storage device to the memory before responding to metadata access requests. The speed of metadata persistence and failover is an important indicator of the availability of a storage system. Therefore, it is desirable to provide a solution for managing metadata of storage objects to improve the speed of metadata failover and persistence. Summary of the invention
[0004] Embodiments of the present disclosure provide methods, apparatuses, and computer program products for managing metadata of storage objects.
[0005] In a first aspect of the present disclosure, a method for managing metadata of a storage object is provided. The method includes: in response to the metadata of the storage object being updated, updating a first index structure for indexing the metadata of the storage object and a page table corresponding to the first index structure in a memory, wherein the first index structure is used to record a mapping relationship between a first identifier of the storage object and a second identifier of a storage page where the metadata of the storage object is located, and the page table is used to record a mapping relationship between the second identifier and a page address of the storage page, and wherein the first index structure and the page table have been stored in a persistent storage device; recording updates to the page table in at least one page table log; and storing the updated first index structure and at least one page table log in the persistent storage device.
[0006] In a second aspect of the present disclosure, a method for managing metadata of a storage object is provided. The method comprises: reading a first index structure for indexing metadata of a storage object and at least a portion of a page table corresponding to the first index structure from a persistent storage device into a memory, wherein the first index structure is used to record a mapping relationship between a first identifier of a storage object and a second identifier of a storage page where the metadata of the storage object is located, and the page table is used to record a mapping relationship between the second identifier and a page address of the storage page; and in response to receiving a first request for accessing metadata of a storage object, accessing the metadata of the storage object based on the first index structure and at least a portion of the page table.
[0007] In a third aspect of the present disclosure, a device for managing metadata of a storage object is provided. The device includes at least one processing unit and at least one memory. The at least one memory is coupled to the at least one processing unit and stores instructions for execution by the at least one processing unit. When the instruction is executed by the at least one processing unit, the device performs an action, which includes: in response to the metadata of the storage object being updated, updating a first index structure for indexing the metadata of the storage object and a page table corresponding to the first index structure in the memory, wherein the first index structure is used to record a mapping relationship between a first identifier of the storage object and a second identifier of a storage page where the metadata of the storage object is located, and the page table is used to record a mapping relationship between the second identifier and a page address of the storage page, and wherein the first index structure and the page table have been stored in a persistent storage device; recording updates to the page table in at least one page table log; and storing the updated first index structure and at least one page table log in the persistent storage device.
[0008] In a fourth aspect of the present disclosure, a device for managing metadata of a storage object is provided. The device includes at least one processing unit and at least one memory. The at least one memory is coupled to the at least one processing unit and stores instructions for execution by the at least one processing unit. When the instruction is executed by the at least one processing unit, the device performs an action, which includes: reading a first index structure for indexing metadata of a storage object and at least a portion of a page table corresponding to the first index structure from a persistent storage device into the memory, wherein the first index structure is used to record a mapping relationship between a first identifier of a storage object and a second identifier of a storage page where the metadata of the storage object is located, and the page table is used to record a mapping relationship between the second identifier and a page address of the storage page; and in response to receiving a first request to access metadata of a storage object, accessing the metadata of the storage object based on the first index structure and at least a portion of the page table.
[0009] In a fifth aspect of the present disclosure, a computer program product is provided. The computer program product is tangibly stored in a non-transient computer storage medium and includes machine executable instructions. The machine executable instructions, when executed by a device, cause the device to perform any step of the method described in the first aspect of the present disclosure.
[0010] In a sixth aspect of the present disclosure, a computer program product is provided. The computer program product is tangibly stored in a non-transient computer storage medium and includes machine executable instructions. The machine executable instructions, when executed by a device, cause the device to perform any step of the method described in the second aspect of the present disclosure.
[0011] This Summary is provided to introduce a selection of concepts in a simplified form that are further described below in the Detailed Description. This Summary is not intended to identify key features or essential features of the present disclosure, nor is it intended to limit the scope of the present disclosure. BRIEF DESCRIPTION OF THE DRAWINGS
[0012] The above and other objects, features and advantages of the present disclosure will become more apparent through a more detailed description of exemplary embodiments of the present disclosure in conjunction with the accompanying drawings, wherein like reference numerals generally represent like components throughout the exemplary embodiments of the present disclosure.
[0013] Figure 1 A schematic diagram illustrating an example environment in which embodiments of the present disclosure can be implemented;
[0014] Figure 2 A schematic diagram showing a traditional solution of using a B+ tree to index metadata of a storage object;
[0015] Figure 3 A schematic diagram showing a conventional solution of using both a B+ tree and a page table to index metadata of a storage object;
[0016] Figure 4 A schematic diagram for persisting a page table in a traditional solution is shown;
[0017] Figure 5 A flowchart illustrating an example method for managing metadata of a storage object according to an embodiment of the present disclosure is shown;
[0018] Figure 6 A schematic diagram showing metadata and an index structure thereof for persistent storage of objects according to an embodiment of the present disclosure is shown;
[0019] Figure 7 A schematic diagram showing a method of persisting a page table by storing a page table log in a persistent storage device according to an embodiment of the present disclosure is shown;
[0020] Figure 8 A schematic diagram showing a method of storing a page table in a persistent storage device with both a data portion and an index portion according to an embodiment of the present disclosure;
[0021] Fig. 9 A schematic diagram of merging page table logs according to an embodiment of the present disclosure is shown;
[0022] Fig.10 A schematic diagram for recovering metadata of a storage object according to an embodiment of the present disclosure is shown;
[0023] Fig.11 A schematic diagram of restoring a page table in a memory according to an embodiment of the present disclosure is shown;
[0024] Fig.12 A schematic diagram of restoring a page table in a memory according to an embodiment of the present disclosure is shown;
[0025] Fig.13 A flowchart illustrating an example method for managing metadata of a storage object according to an embodiment of the present disclosure; and
[0026] Fig.14 A schematic block diagram of an example device that may be used to implement embodiments of the present disclosure is shown.
[0027] In the various drawings, the same or corresponding reference numerals represent the same or corresponding parts. DETAILED DESCRIPTION
[0028] The preferred embodiments of the present disclosure will be described in more detail below with reference to the accompanying drawings. Although the preferred embodiments of the present disclosure are shown in the accompanying drawings, it should be understood that the present disclosure can be implemented in various forms and should not be limited by the embodiments set forth herein. On the contrary, these embodiments are provided to make the present disclosure more thorough and complete, and to fully convey the scope of the present disclosure to those skilled in the art.
[0029] As used herein, the term "including" and its variations mean open inclusion, i.e., "including but not limited to". Unless otherwise stated, the term "or" means "and / or". The term "based on" means "based at least in part on". The terms "an example embodiment" and "an embodiment" mean "at least one example embodiment". The term "another embodiment" means "at least one additional embodiment". The terms "first", "second", etc. may refer to different or the same objects. Other explicit and implicit definitions may also be included below.
[0030] Figure 1A block diagram of an example environment 100 in which embodiments of the present disclosure can be implemented is shown. It should be understood that the structure of environment 100 is described only for exemplary purposes and does not imply any limitation on the scope of the present disclosure. For example, embodiments of the present disclosure can also be applied to environments different from environment 100.
[0031] like Figure 1 As shown, environment 100 may include host 110 and persistent storage device 130 accessible to host 110. Host 110 may include processing unit 111 and memory 112. Host 110 may be any physical computer, server, etc. Examples of memory 112 may include, but are not limited to, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), static random access memory (SRAM), etc. Persistent storage device 130 may be a storage device separate from host 110, which may be used by multiple hosts ( Figure 1 Only one of the hosts is shown) shared. The persistent storage device 130 can be implemented using any known or future developed non-volatile storage medium, such as a disk, an optical disk, a disk array, etc. For example, the persistent storage device 130 may include one or more disks, optical disks, disk arrays, etc.
[0032] Environment 100 may be implemented as a distributed object storage system. Hereinafter, environment 100 is sometimes also referred to as distributed object storage system 100. For example, the storage space of persistent storage device 130 may be divided into storage chunks of fixed size. User data may be stored in storage chunks as storage objects. Storage objects may have metadata associated therewith for recording properties and other information of the object (such as the address of the object, etc.). The metadata of storage objects may be stored in at least some storage chunks in units of pages. User 120 may access storage objects in distributed object storage system 130. For example, user 120 may send a request to host 110 to access a storage object. In response to receiving the request, host 110 may first access the metadata of the storage object, for example, to obtain the address, properties and other information of the object. Then, host 110 may access the user data corresponding to the storage object based on the metadata of the storage object, and return the user data to user 120.
[0033] Due to the importance of metadata, metadata needs to be stored on a persistent storage device, otherwise it may be lost in a failure such as a storage service restart or a storage node restart. For example, the storage blocks on the persistent storage device 130 can be divided into different partitions to store user data (e.g., storage objects) and metadata of storage objects respectively. When a storage node (e.g., a host) in the distributed object storage system 100 fails, the metadata managed by the storage node can be failed over to other storage nodes (e.g., Figure 1 Other storage nodes need to restore the metadata from the persistent storage device to the memory before responding to the metadata access request. The speed of metadata persistence and failover is an important indicator of storage system availability.
[0034] In a chunk-based object storage system, data in a chunk is written in an append-only manner. That is, when new content arrives, the existing content in the current chunk is not modified or deleted, but the update is appended to the end of the current chunk or to a new chunk. For chunk-based object storage systems, some traditional solutions use B+ trees to index the metadata of storage objects. For example, the leaf nodes of the B+ tree (also called "leaf pages" or "leaf pages" because the nodes are stored in units of pages) are used to store key-value pairs consisting of the object's identifier (ID) and metadata, and the non-leaf nodes (also called "index nodes" or "index pages") are used to record the index information of the leaf pages (e.g., the address of the leaf pages). When the metadata of a storage object is updated, the corresponding leaf pages will be written to different locations in the chunk in an append-only manner. Since the location of the leaf page is updated, the corresponding index page also needs to be rewritten to the new location in an append-only manner, resulting in the problem of "write amplification" (i.e., a small number of updates may result in a large number of write operations).
[0035] Figure 2 Such an example is shown.
[0036] Figure 2 A B+ tree 200 for indexing metadata of storage objects in a conventional solution is shown, wherein leaf pages 201, 202, 203, 205, and 206 are respectively used to store key-value pairs consisting of storage object IDs and storage object metadata, and index pages 204, 207, and 208 are respectively used to store index information of leaf pages 201, 202, 203, 205, and 206. Nodes 201, 202, 203, and 204 are, for example, stored in storage block 210, and nodes 205, 206, 207, and 208 are, for example, stored in storage block 220.
[0037] In some cases, the metadata involved in nodes 203 and 205 is updated. Therefore, as shown in the updated B+ tree 200', leaf page 203 is updated to 203', and leaf page 205 is updated to 205'. Since leaf page 203 is updated to 203', index page 204 is updated to 204' accordingly. Since leaf page 205 is updated to 205', index page 207 is updated to 207' accordingly. Root node 208 is therefore updated to root node 208'. Since the data in the storage block is written in an appended manner, nodes 203 and 204 in storage block 210 and nodes 205, 207 and 208 in storage block 220 are invalidated, and the updated nodes 203', 204', 205', 207' and 208' are written to the new storage block 230.
[0038] In order to solve the Figure 2 To solve the write amplification problem shown in the figure, some traditional solutions use both innovative B+ trees and page tables to index the metadata of storage objects. Figure 2 Unlike the traditional schemes shown in the figure, in these schemes, the leaf nodes in the B+ tree are still used to record the metadata of the storage object, while the index node is used to record the mapping relationship between the ID of the storage object and the ID of the storage page where the metadata of the storage object is located (for example, in the form of a key-value pair). These schemes use the page table corresponding to the B+ tree to record the mapping relationship between the page ID and the page address. In this way, when the leaf page in the B+ tree is modified, only the page address in the page table can be updated, and the data in the index page can remain unchanged and does not need to be rewritten, thereby greatly alleviating the problem of Figure 2 The write amplification problem shown. Figure 3 Such an example is shown.
[0039] Figure 3 FIG. 3 shows a B+ tree 310 for indexing metadata of a storage object and a corresponding page table 320. Figure 3 As shown, the leaf nodes 313, 314, ... of the B+ tree respectively record the metadata of one or more storage objects, and the index node 312 and the root node 310 record the mapping relationship between the ID of the storage object and the storage page ID. The specific address of each storage page is recorded in the page table 320. For example, when the metadata of the storage object #000 is to be accessed, the storage page #1 associated with the storage object #000 can be found by searching the root node 310. The address of the storage page #1 can be determined by searching the page table 320, and the index node 312 can be found from the address. The storage page #3 associated with the storage object #000 can be found by searching the index node 312. The address of the storage page #3 can be determined by searching the page table 320, and the leaf node 313 can be found from the address. Further, the metadata of the storage object #000 can be found in the leaf page 313.
[0040] like Figure 3 As shown, the page table can record the mapping relationship between the page ID and the page address of each page (ie, node) in the B+ tree. In order to avoid losing the page table data in the event of a failure, when the updated B+ tree data is persisted, the corresponding page table also needs to be persisted.
[0041] Figure 4 A schematic diagram of a traditional solution for persisting a page table is shown. Figure 4 Different versions of B+ trees 420-1, 420-2, ... 420-6 (collectively or individually referred to as "B+ trees 420") and their corresponding page tables 430-1, 430-2, ... 430-6 (collectively or individually referred to as "page tables 430") are shown. For example, both the B+ tree 420-1 with version number 1 (indicated as "V1") and the page table 430-1 will determine the V1 version of the metadata 410-1 in the system. When the metadata is updated, the B+ tree and the corresponding page table are updated accordingly. When the data of each version of the B+ tree 420 is stored in the persistent device 440, the corresponding page table 430 will also be stored in the persistent device 440. When a failover occurs, the page table 430 needs to be read from the persistent device 440 and restored in the memory before the storage system can respond to access requests for the metadata associated with the page table 430.
[0042] The inventors have realized that for a distributed object storage system, as more and more data is injected into the system, the metadata will grow accordingly. For systems that use B+ trees and their corresponding page tables to index metadata, the size of the page table will grow accordingly. This will lead to the following problems.
[0043] First, the time for metadata failover will increase with the size of the page table. During a system failover, the page table needs to be loaded into memory before the system can respond to access requests for metadata. For example, if you use Figure 3In the traditional page table structure shown, when loading a page table for a B+ tree with 10 million pages (i.e., 10 million nodes), the system needs to load about 75MB of data and restore it in memory, which will take, for example, at least 0.5 to 1 second. In addition, as the size of the page table increases, the existing solution for recovering the page table from the persistent storage device will result in more input / output (I / O) operations during failover. When a storage node fails, the system needs to failover all metadata managed by the failed node to other storage nodes. This may cause a large number of I / O operations in the system, which not only leads to longer failover time, but also causes response delays to user read / write requests. This will make system availability and scalability worse. At the same time, in the traditional solution, as the metadata grows, more time is required to persist the page table. Since the system needs to continue to provide responses to metadata read / write requests during metadata persistence, updates to the metadata need to be cached in memory until persistence is completed. This will bring additional memory overhead to the entire system.
[0044] An embodiment of the present disclosure proposes a solution for managing metadata of storage objects, aiming to solve one or more of the above-mentioned problems and other potential problems. In order to avoid the increase in the size of the page table resulting in an increase in the time for metadata persistence and recovery, the solution persists the page table by storing only updates to the page table in a persistent storage device. These updates will be merged into a new page table storage structure including both the data part and the index part in the background, thereby shortening the time required to restore the page table during a failover. The embodiments of the present disclosure will be further described in detail below in conjunction with the accompanying drawings.
[0045] Figure 5 FIG. 5 is a flowchart of an exemplary method 500 for managing metadata of a storage object according to an embodiment of the present disclosure. For example, the method 500 may be performed as follows: Figure 1 The host 110 shown is used to perform persistent storage of metadata of the object and its index structure. It should be understood that the method 500 may also include additional actions not shown and / or may omit the actions shown, and the scope of the present disclosure is not limited in this respect.
[0046] At box 510, in response to the metadata of the storage object being updated, the host 110 updates the first index structure for indexing the metadata of the storage object and the page table corresponding to the first index structure in the memory 112. It is assumed that before the update, the first index structure and the page table corresponding to the first index structure have been stored in the persistent storage device 130. The first index structure is used to record the mapping relationship between the ID of the storage object (also referred to as the "first identifier" herein) and the ID of the storage page where the metadata of the storage object is located (also referred to as the "second identifier" herein); the page table is used to record the mapping relationship between the second identifier and the page address of the storage page.
[0047] In some embodiments, the first index structure is, for example, Figure 3 Alternatively, in some other embodiments, the first index structure may also be implemented using other data structures other than the B+ tree. In the following, the B+ tree will be used as an example of the first index structure. It should be understood that this is only for the purpose of example and does not imply a limitation on the scope of the present disclosure. Figure 3 When the B+ tree structure shown in FIG. 1 is implemented, the page table corresponding to the first index structure in the memory 112 may be, for example, as shown in FIG. Figure 3 Page table 320 is shown.
[0048] At block 520 , the host 110 records the update to the page table in at least one page table log. Then, at block 530 , the host 110 stores the updated first index structure and the at least one page table log in the persistent storage device 130 .
[0049] In some embodiments, when persisting metadata, the pages in the B+ tree may first be stored in the persistent storage device 130 according to conventional procedures. However, when the page table is modified, a new page is added to the page table, or a page is deleted using the page address corresponding to the page ID, the update to the page table may be recorded in a page table journal, which is also referred to as PTJ (i.e., Page Table Journal) hereinafter. After the updated B+ tree is stored in the persistent storage device 130, the page table journal may be stored in the persistent storage device 130 instead of storing a new version of the page table. The persistence of metadata and its index structure may be performed periodically (e.g., at regular intervals), or may be performed in response to a persistence command.
[0050] Figure 6 A schematic diagram of metadata and an index structure thereof for persistent storage of objects according to an embodiment of the present disclosure is shown. Figure 6A first index structure (e.g., a B+ tree) 610 for indexing metadata of a storage object and a corresponding page table 620 are shown. It is assumed that a leaf page 611 in the B+ tree 610 is updated and a new leaf page 612 is created. For the updated pages 611 and 612, the corresponding entries in the page table 620 will be updated, and the update of the page table 620 will be recorded in the page table log 630. When persisting metadata, the updated B+ tree pages 611 and 612 will be stored in the persistent storage device 130, and the page table log 630 will be stored in the persistent storage device 130.
[0051] As described above, the persistence of metadata and its index structure may be performed periodically (e.g., at regular intervals), or may be performed in response to a persistence command. For example, when the system is initialized, an empty B+ tree and an empty page table may be stored in the persistent storage device 130. In each subsequent persistence, the updated B+ tree and the corresponding version of the page table log may be stored in the persistent storage device 130.
[0052] Figure 7 A schematic diagram of persisting a page table by storing a page table log in a persistent storage device according to an embodiment of the present disclosure is shown. Figure 4 same, Figure 7 Different versions of B+ trees 420-1, 420-2, ... 420-6 (collectively or individually referred to as "B+ trees 420") and their corresponding page tables 430-1, 430-2, ... 430-6 (collectively or individually referred to as "page tables 430") are shown. For example, the B+ tree 420-1 with version number 1 (denoted as "V1") and the page table 430-1 will both determine the V1 version of metadata 410-1 in the system. When the metadata is updated, the B+ tree and the corresponding page table are updated accordingly. Figure 4 The difference is that when the data of each version of the B+ tree 420 is stored in the persistence device 440, the page table log for recording the update of the page table of the latest version relative to the page table of the previous version will also be stored in the persistence device 440. For example, the page table log includes the page table log 710-1 corresponding to the V1 version page table 430-1 (for example, it is used to record the update of the page table 430-1 relative to the empty page table), the page table log 710-2 corresponding to the V2 version page table 430-2 (for example, it is used to record the update of the page table 430-2 relative to the page table 430-1)... The page table log 710-6 corresponding to the V6 version page table 430-6.
[0053] In some embodiments, each version of metadata that is persisted adds a new page table log record to the system, which may include, for example, the location and version number of the list log on the persistent storage device. The version number can increase sequentially, which means that if the system replays all PTJs in sequence, the latest version of the page table can be obtained. However, as more and more versions of metadata are persisted, when the system restores the page table to the memory, there will be many PTJs that need to be read. This will increase the time used to load and replay all PTJs before the system can respond to metadata access requests. In addition, this will also increase the metadata storage overhead.
[0054] To avoid this situation, in some embodiments, the host 110 can initiate a background process to perform a merge of page table logs and store the merge results in the persistent storage device 130. In some embodiments, the background process can determine whether at least one page table log in the persistent storage device 130 will be merged with the previous version of the page table. In some embodiments, the background process can merge at least one page table log with the previous version of the page table when the merge condition is met to obtain a list of new versions. For example, the merge condition includes at least one of the following: the time from the last page table log merge exceeds a threshold time; and the amount of page table updates indicated by at least one page table log exceeds a threshold amount. In some embodiments, the background process can store the merged new version of the page table in the persistent storage device 130.
[0055] In some embodiments, the merged new version of the page table may be stored in the persistent storage device 130 in both a data portion and an index portion. For example, the data portion may include a plurality of blocks into which the new version of the page table is divided (hereinafter also referred to as "data blocks"). The data portion may be first stored in the persistent storage device 130. The index portion may be generated based on the corresponding addresses of the plurality of blocks in the persistent storage device, and may be stored in the persistent storage device 130 after the data portion is stored. In this document, the index portion of the page table is also referred to as a "second index structure".
[0056] Figure 8 A schematic diagram is shown of storing a page table in a persistent storage device with both a data part and an index part according to an embodiment of the present disclosure. Figure 8A page table 800 is shown, whose data portion 810 is, for example, divided into a plurality of blocks 811, 812 ... 818. These blocks may be stored in a persistent storage device 130 in a serial or parallel manner. In some embodiments, these blocks 811, 812 ... 818 may be further divided into different groups. For example, blocks within the same group may be written to the same storage block (chunk) in the persistent storage device 130 in a serial manner, while blocks of different groups may be written to different storage blocks (chunks) in the persistent storage device 130 in a parallel manner. An index portion 820 of the page table 800 may be generated based on the positions of these blocks in the persistent storage device 130, which may include, for example, an index structure 821. In some embodiments, when the blocks 811, 812 ... 818 may be further divided into different groups, the index portion 820 may include a plurality of index structures to correspond to different groups, respectively. After the data portion 810 is persisted, the index portion 820 (e.g., the index structure 821) may be stored in the persistent storage device 130.
[0057] Fig. 9 A schematic diagram of merging page table logs according to an embodiment of the present disclosure is shown. In some embodiments, for example, the background process may periodically check whether there are new PTJs that need to be merged. When it is determined that there are new PTJs that need to be merged, the background process may apply the PTJs to be merged to the data portion of the last merged page table in sequence, and then generate a new page table index portion and store it in the persistent storage device 130. After the PTJs are merged, the storage space they occupy can be reclaimed and released. Fig. 9 As shown, for example, PTJs 710-1, 710-2, and 710-3 may be merged with previously merged page tables (not shown) into page table 430-3. Then, page table 430-3 may be merged with PTJs 710-4, 710-5, and 710-6 into page table 430-6. For example, each merged page table 430 may be merged as follows: Figure 8 The data portion 810 and the index portion 820 shown are stored in the persistent storage device 130 .
[0058] As described above, when a storage node managing metadata fails, the metadata managed by the failed node can be failed over to other storage nodes. Other storage nodes need to restore the metadata from the persistent storage device to the memory so as to be able to respond to access requests for the metadata.
[0059] Fig.10 FIG. 2 shows a schematic diagram of restoring metadata of a storage object according to an embodiment of the present disclosure. Fig.10As shown, for example, each version of the page table log 1010-1, 1010-2 ... 1010-8 is stored in a persistent storage device, and the latest version of the B + tree 1030 is also stored in the persistent storage device. The background process, for example, merges the page table log 1010-1 with the previous version of the page table (not shown) into a page table 1020-1, and further merges the page table 1020-1 with the page table logs 1010-2, 1010-3 ... 1010-4 into a page table 1020-5. Page table logs 1010-6, 1010-7 and 1010-8 have not yet been merged. In some embodiments, the most recently merged page table 1020-5, the unmerged page table logs 1010-6, 1010-7 and 1010-8, and the latest version of the B + tree 1030 can be read from the persistent storage device to restore the latest version of the metadata 1040 in the memory.
[0060] In some embodiments, in order to shorten the time of failover, the recovery of the page table can be divided into two steps. In step one, the index portion of the most recently merged page table and the remaining unmerged page table logs can be read from the persistent storage device. The structure of the page table to be recovered in the memory can be changed accordingly. For example, the page table in the memory can be divided into multiple blocks. When the index portion of the most recently merged page table is read from the persistent storage device, the location information of each block recorded in the index portion can be used to initialize each block of the page table in the memory. Then, a PTJ with a version order can be applied to each block. In this way, after completing step one, the memory will have the contents of the unmerged PTJ and the location information of each data block of the page table.
[0061] At this time, when an access request for metadata is received, at most one additional read operation can be used to read the corresponding page table content from the persistent storage device. For example, when it is desired to query the location of a certain page from the page table, you can first search in the unmerged PTJ whether there is a record corresponding to the page ID (that is, the latest page address). If not found, it can be determined based on the page ID which data block of the multiple data blocks of the page table the page is associated with. Then, the content of the data block can be read from the persistent storage device based on the location information of the data block. In the memory, the content of the data block can be further merged with the content in the PTJ. In this way, after the above step 1 is completed, the system is able to respond to access requests for metadata.
[0062] In step 2, each data block of the page table can be read in parallel from the persistent storage device in the background. When the data portion is loaded into the memory, it can be merged with the content in the unmerged page table log. After the data portion is completely loaded into the memory and merged with the page table log, the system can respond to the access request for the metadata without querying the persistent storage device for the page table data block.
[0063] Fig.11 A schematic diagram of restoring a page table in a memory according to an embodiment of the present disclosure is shown. For example, Fig.11 The above step 1 is shown. Fig.11 As shown, the B+ tree 1110 stored in the persistent storage device 130 can be read into the memory 112. In order to restore the page table 1120 in the memory 112, the index part of the most recently merged page table and the remaining unmerged page table logs can be read from the persistent storage device. The page table 1120 in the memory can be divided into a plurality of blocks 1121, 1122, ... 1128. When the index part of the most recently merged page table is read from the persistent storage device 130, each block of the page table 1120 in the memory can be initialized using the location information of each block recorded in the index part. Then, a PTJ with a version order can be applied to each block of the page table 1120 in the memory. In this way, as Fig.11 As shown, block 1121 may have an unmerged page table log 1131 and block location information 1141 associated therewith, and block address information 1141 indicates, for example, a location 1151 at which block 1121 is stored in persistent storage device 130. Block 1122 may have an unmerged page table log 1132 and block location information 1142 associated therewith, and block address information 1142 indicates, for example, a location 1152 at which block 1122 is stored in persistent storage device 130. Block 1128 may have an unmerged page table log 1138 and block location information 1148 associated therewith, and block address information 1148 indicates, for example, a location 1158 at which block 1128 is stored in persistent storage device 130.
[0064] Fig.12 A schematic diagram of restoring a page table in a memory according to an embodiment of the present disclosure is shown. For example, Fig.12 The above step 2 is shown. Fig.12As shown, the various data blocks 1121, 1122 ... 1128 of the page table 1120 can be read in parallel from the persistent storage device 130 in the background. For example, when the data portion of the data block 1121 is loaded into the memory 112, it can be merged with the content in the unmerged page table log 1131. After the merge is completed, the content in the data block 1121 in the page table 1120 is completely restored, so the access request for the metadata associated with the data block 1121 can be responded to without querying the persistent storage device for the content of the data block 1121. Similarly, similar operations can be performed on the data blocks 1122, 1123 ... 1128 to restore the entire page table in the memory.
[0065] Fig.13 FIG. 1 is a flowchart of an example method 1300 for managing metadata of a storage object according to an embodiment of the present disclosure. For example, the method 1300 may be performed as follows: Figure 1 The host 110 shown is executed to recover the metadata of the storage object and respond to the access request for the metadata of the storage object. It should be understood that the method 1300 may also include additional actions not shown and / or may omit the actions shown, and the scope of the present disclosure is not limited in this respect.
[0066] At box 1310, the host 110 reads a first index structure for indexing metadata of a storage object and at least a portion of a page table corresponding to the first index structure from the persistent storage device 130 into the memory 112, wherein the first index structure is used to record a mapping relationship between a first identifier of the storage object and a second identifier of a storage page where the metadata of the storage object is located, and the page table is used to record a mapping relationship between the second identifier and a page address of the storage page.
[0067] At block 1320 , the host 110 , in response to receiving the first request to access metadata of the storage object, accesses metadata of the storage object based on the first index structure and at least a portion of the page table.
[0068] In some embodiments, a page table stored in a persistent storage device includes multiple blocks and a second index structure for recording corresponding addresses of the multiple blocks in the persistent storage device, and reading at least a portion of the page table includes: reading the second index structure from the persistent storage device.
[0069] In some embodiments, accessing metadata of a storage object includes: extracting a first identifier of the storage object from a first request; determining a second identifier of a storage page where the metadata of the storage object is located by searching a first index structure; based on the second identifier, determining a block associated with the storage page from a plurality of blocks; determining an address of the block in a persistent storage device by searching a second index structure; reading the block from an address in the persistent storage device; based on the second identifier, searching for a page address of the storage page in the block; and accessing the metadata of the storage object from the page address in the persistent storage device.
[0070] In some embodiments, method 1300 further includes: based on the second index structure, reading the plurality of blocks from the persistent storage device into the memory to restore the page table in the storage.
[0071] In some embodiments, a page table stored in a persistent storage device includes a previous page table and at least one page table log for recording updates of the page table relative to the previous page table, the previous page table includes multiple blocks and a second index structure for recording corresponding addresses of the multiple blocks in the persistent storage device, and reading at least a portion of the page table includes: reading at least one page table log and the second index structure from the persistent storage device.
[0072] In some embodiments, accessing metadata of a storage object includes: extracting a first identifier of the storage object from a first request; determining a second identifier of a storage page where the metadata of the storage object is located by searching a first index structure; based on the second identifier, searching for a page address of the storage page from at least one page table log; and in response to the page address of the storage page being found in at least one page table log, accessing the metadata of the storage object from the page address in a persistent storage device.
[0073] In some embodiments, method 1300 also includes: in response to the page address of the storage page not being found in at least one page table log, determining a block associated with the storage page from multiple blocks based on a second identifier; determining an address of the block in the persistent storage device by searching a second index structure; reading the block from the address in the persistent storage device; searching for the page address of the storage page in the block based on the second identifier; and accessing metadata of the storage object from the page address in the persistent storage device.
[0074] In some embodiments, method 1300 further includes: based on the second index structure, reading multiple blocks from the persistent storage device into the memory to restore the previous page table in the memory; and restoring the page table in the memory by merging the previous page table and at least one page table log.
[0075] In some embodiments, the first index structure is also used to index metadata of another storage object, and method 1300 further includes: accessing the metadata of another storage object based on the first index structure and the page table in response to receiving a second request to access metadata of another storage object.
[0076] In some embodiments, the first index structure is implemented using a B+ tree.
[0077] It can be seen from the above description that the embodiments of the present disclosure can significantly improve the speed of metadata persistence and failover. Since only the index part of the page table and several unmerged page table logs need to be loaded during metadata recovery, a large number of disk I / O operations can be saved during metadata failover. In addition, the growth of metadata will not cause the period of metadata unavailability during failover to be extended, which greatly improves system availability and scalability. In addition, using this page table recovery scheme, the I / O burst problem can be alleviated during page table recovery. The balance between I / O pressure and metadata access performance can be further achieved by limiting the background loading speed of page table data. This can greatly improve the performance of metadata failover. At the same time, in the persistence stage, since only the incremental part between the two versions of the page table needs to be persisted, the metadata persistence speed can be greatly improved, and the time required for persistence will no longer be extended as the size of the page table increases. In addition, the growth of metadata will no longer affect the time of metadata failover. This means that the memory space consumed by caching metadata updates can be saved during persistence, thereby reducing the memory overhead of the system.
[0078] Fig.14 1 shows a schematic block diagram of an example device 1400 that can be used to implement an embodiment of the present disclosure. Figure 1 The host 110 shown may be implemented by the device 1400. Fig.14 As shown, the device 1400 includes a central processing unit (CPU) 1401, which can perform various appropriate actions and processes according to computer program instructions stored in a read-only memory (ROM) 1402 or loaded from a storage page 1408 into a random access memory (RAM) 1403. In the RAM 1403, various programs and data required for the operation of the device 1400 can also be stored. The CPU 1401, the ROM 1402, and the RAM 1403 are connected to each other via a bus 1404. An input / output (I / O) interface 1405 is also connected to the bus 1404.
[0079] A number of components in the device 1400 are connected to the I / O interface 1405, including: an input unit 1406, such as a keyboard, a mouse, etc.; an output unit 1407, such as various types of displays, speakers, etc.; a storage page 1408, such as a disk, an optical disk, etc.; and a communication unit 1409, such as a network card, a modem, a wireless communication transceiver, etc. The communication unit 1409 allows the device 1400 to exchange information / data with other devices through a computer network such as the Internet and / or various telecommunication networks.
[0080] The various processes and processing described above, such as method 500 and / or 1300, may be performed by processing unit 1401. For example, in some embodiments, method 500 and / or 1300 may be implemented as a computer software program, which is tangibly contained in a machine-readable medium, such as storage page 1408. In some embodiments, part or all of the computer program may be loaded and / or installed on device 1400 via ROM 1402 and / or communication unit 1409. When the computer program is loaded into RAM 1403 and executed by CPU 1401, one or more actions of method 500 and / or 1300 described above may be performed.
[0081] The present disclosure may be a method, an apparatus, a system and / or a computer program product. The computer program product may include a computer-readable storage medium carrying computer-readable program instructions for executing various aspects of the present disclosure.
[0082] Computer readable storage medium can be a tangible device that can hold and store instructions used by an instruction execution device. Computer readable storage medium can be, for example, but not limited to, an electrical storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination of the above. More specific examples (non-exhaustive list) of computer readable storage medium include: portable computer disk, hard disk, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), static random access memory (SRAM), portable compact disk read-only memory (CD-ROM), digital versatile disk (DVD), memory stick, floppy disk, mechanical encoding device, such as a punch card or a convex structure in a groove on which instructions are stored, and any suitable combination of the above. The computer readable storage medium used here is not interpreted as a transient signal itself, such as a radio wave or other freely propagating electromagnetic wave, an electromagnetic wave propagated by a waveguide or other transmission medium (e.g., a light pulse by an optical fiber cable), or an electrical signal transmitted by a wire.
[0083] The computer-readable program instructions described herein can be downloaded from a computer-readable storage medium to each computing / processing device, or downloaded to an external computer or external storage device via a network, such as the Internet, a local area network, a wide area network, and / or a wireless network. The network can include copper transmission cables, optical fiber transmissions, wireless transmissions, routers, firewalls, switches, gateway computers, and / or edge servers. The network adapter card or network interface in each computing / processing device receives the computer-readable program instructions from the network and forwards the computer-readable program instructions for storage in the computer-readable storage medium in each computing / processing device.
[0084] The computer program instructions for performing the operation of the present disclosure may be assembly instructions, instruction set architecture (ISA) instructions, machine instructions, machine-related instructions, microcode, firmware instructions, state setting data, or source code or object code written in any combination of one or more programming languages, including object-oriented programming languages, such as Smalltalk, C++, etc., and conventional procedural programming languages, such as "C" language or similar programming languages. Computer-readable program instructions may be executed completely on a user's computer, partially on a user's computer, as an independent software package, partially on a user's computer, partially on a remote computer, or completely on a remote computer or server. In the case of a remote computer, the remote computer may be connected to the user's computer via any type of network, including a local area network (LAN) or a wide area network (WAN), or may be connected to an external computer (e.g., using an Internet service provider to connect via the Internet). In some embodiments, an electronic circuit, such as a programmable logic circuit, a field programmable gate array (FPGA), or a programmable logic array (PLA), may be customized by utilizing the state information of the computer-readable program instructions, and the electronic circuit may execute the computer-readable program instructions, thereby realizing various aspects of the present disclosure.
[0085] Various aspects of the present disclosure are described herein with reference to the flowcharts and / or block diagrams of the methods, devices (systems) and computer program products according to the embodiments of the present disclosure. It should be understood that each box in the flowchart and / or block diagram and the combination of each box in the flowchart and / or block diagram can be implemented by computer-readable program instructions.
[0086] These computer-readable program instructions can be provided to a processing unit of a general-purpose computer, a special-purpose computer, or other programmable data processing device, thereby producing a machine, so that when these instructions are executed by the processing unit of the computer or other programmable data processing device, a device that implements the functions / actions specified in one or more boxes in the flowchart and / or block diagram is generated. These computer-readable program instructions can also be stored in a computer-readable storage medium, and these instructions cause the computer, programmable data processing device, and / or other equipment to work in a specific manner, so that the computer-readable medium storing the instructions includes a manufactured product, which includes instructions for implementing various aspects of the functions / actions specified in one or more boxes in the flowchart and / or block diagram.
[0087] Computer-readable program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other device so that a series of operating steps are performed on the computer, other programmable data processing apparatus, or other device to produce a computer-implemented process, thereby causing the instructions executed on the computer, other programmable data processing apparatus, or other device to implement the functions / actions specified in one or more boxes in the flowchart and / or block diagram.
[0088] The flow chart and block diagram in the accompanying drawings show the possible architecture, function and operation of the system, method and computer program product according to multiple embodiments of the present disclosure. In this regard, each square box in the flow chart or block diagram can represent a part of a module, program segment or instruction, and a part of the module, program segment or instruction includes one or more executable instructions for realizing the specified logical function. In some alternative implementations, the function marked in the square box can also occur in a sequence different from that marked in the accompanying drawings. For example, two continuous square boxes can actually be executed substantially in parallel, and they can sometimes be executed in reverse order, depending on the functions involved. It should also be noted that each square box in the block diagram and / or flow chart, and the combination of the square boxes in the block diagram and / or flow chart can be implemented with a dedicated hardware-based system that performs the specified function or action, or can be implemented with a combination of special hardware and computer instructions.
[0089] The embodiments of the present disclosure have been described above, and the above description is exemplary, not exhaustive, and is not limited to the disclosed embodiments. Many modifications and variations will be apparent to those of ordinary skill in the art without departing from the scope and spirit of the described embodiments. The selection of terms used herein is intended to best explain the principles of the embodiments, practical applications, or technical improvements to the technology in the market, or to enable other persons of ordinary skill in the art to understand the embodiments disclosed herein.
Claims
1. A method for managing metadata of a storage object, comprising: In response to the metadata of the storage object being updated, updating in the memory a first index structure for indexing the metadata of the storage object and a page table corresponding to the first index structure, wherein the first index structure is used to record a mapping relationship between a first identifier of the storage object and a second identifier of a storage page where the metadata of the storage object is located, and the page table is used to record a mapping relationship between the second identifier and a page address of the storage page, and wherein the first index structure and the page table have been stored in a persistent storage device; recording updates to the page table in at least one page table log; storing the updated first index structure and the at least one page table log in the persistent storage device; Determining whether the at least one page table log in the persistent storage device is to be merged with the page table, wherein determining whether the at least one page table log is to be merged with the page table comprises: Determining whether the conditions for merger are met; and In response to the merging condition being satisfied, determining that the at least one page table log is to be merged with the page table, The merging conditions include at least one of the following: The time since the last page table log merge exceeds the threshold time; and an amount of page table updates indicated by the at least one page table log exceeds a threshold amount; In response to determining that the at least one page table log is to be merged with the page table, merging the page table and the at least one page table log into an updated page table; and The updated page table is stored in the persistent storage device.
2. The method of claim 1 , wherein storing the updated page table in the persistent storage device comprises: dividing the updated page table into a plurality of blocks; Storing the multiple blocks in the persistent storage device respectively; Generate a second index structure for recording corresponding addresses of the plurality of blocks in the persistent storage device; as well as The second index structure is stored in the persistent storage device. The method according to claim 1 , wherein the first index structure is implemented using a B+ tree.
4. A method for managing metadata of a storage object, comprising: A first index structure for indexing metadata of a storage object and at least a portion of a page table corresponding to the first index structure are read from a persistent storage device into a memory, wherein the first index structure is used to record a mapping relationship between a first identifier of the storage object and a second identifier of a storage page where the metadata of the storage object is located, and the page table is used to record a mapping relationship between the second identifier and a page address of the storage page, wherein the page table stored in the persistent storage device includes a previous page table and at least one page table log for recording updates of the page table relative to the previous page table, the previous page table includes multiple blocks and a second index structure for recording corresponding addresses of the multiple blocks in the persistent storage device, and reading at least a portion of the page table includes: Reading the at least one page table log and the second index structure from the persistent storage device; In response to receiving a first request to access metadata of the storage object, accessing the metadata of the storage object based on the first index structure and the at least a portion of the page table; Based on the second index structure, reading the plurality of blocks from the persistent storage device into the memory to restore the previous page table in the memory; and restoring the page table in the memory by merging the previous page table and the at least one page table log; and The first index structure is also used to index metadata of another storage object, and the method further includes: The metadata of the other storage object is accessed based on the first index structure and the page table in response to receiving a second request to access the metadata of the other storage object.
5. The method according to claim 4, wherein the page table stored in the persistent storage device includes a plurality of blocks and a second index structure for recording corresponding addresses of the plurality of blocks in the persistent storage device, and reading at least a portion of the page table comprises: The second index structure is read from the persistent storage device.
6. The method of claim 5, wherein accessing the metadata of the storage object comprises: extracting the first identifier of the storage object from the first request; Determine the second identifier of the storage page where the metadata of the storage object is located by searching the first index structure; determining, from the plurality of blocks, a block associated with the storage page based on the second identifier; Determine the address of the block in the persistent storage device by searching the second index structure; Reading the block from the address in the persistent storage device; Based on the second identifier, searching for a page address of the storage page in the block; as well as The metadata of the storage object is accessed from the page address in the persistent storage device.
7. The method according to claim 5, further comprising: Based on the second index structure, the plurality of blocks are read from the persistent storage device into the memory to restore the page table in the storage.
8. The method of claim 4, wherein accessing the metadata of the storage object comprises: extracting the first identifier of the storage object from the first request; Determine the second identifier of the storage page where the metadata of the storage object is located by searching the first index structure; Based on the second identifier, searching for a page address of the storage page from the at least one page table log; as well as In response to the page address of the storage page being found in the at least one page table log, the metadata of the storage object is accessed from the page address in the persistent storage device.
9. The method according to claim 8, further comprising: In response to the page address of the storage page not being found in the at least one page table log, determining a block associated with the storage page from the plurality of blocks based on the second identifier; Determine the address of the block in the persistent storage device by searching the second index structure; Reading the block from the address in the persistent storage device; Based on the second identifier, searching for a page address of the storage page in the block; as well as The metadata of the storage object is accessed from the page address in the persistent storage device.
10. The method according to claim 4, wherein the first index structure is implemented using a B+ tree.
11. An apparatus for managing metadata of a storage object, comprising: at least one processing unit; at least one memory coupled to the at least one processing unit and storing instructions for execution by the at least one processing unit, the instructions, when executed by the at least one processing unit, causing the apparatus to perform actions comprising: In response to the metadata of the storage object being updated, updating in the memory a first index structure for indexing the metadata of the storage object and a page table corresponding to the first index structure, wherein the first index structure is used to record a mapping relationship between a first identifier of the storage object and a second identifier of a storage page where the metadata of the storage object is located, and the page table is used to record a mapping relationship between the second identifier and a page address of the storage page, and wherein the first index structure and the page table have been stored in a persistent storage device; recording updates to the page table in at least one page table log; storing the updated first index structure and the at least one page table log in the persistent storage device; Determining whether the at least one page table log in the persistent storage device is to be merged with the page table, wherein determining whether the at least one page table log is to be merged with the page table comprises: Determining whether the conditions for merger are met; and In response to the merging condition being satisfied, determining that the at least one page table log is to be merged with the page table, The merging conditions include at least one of the following: The time since the last page table log merge exceeds the threshold time; and an amount of page table updates indicated by the at least one page table log exceeds a threshold amount; In response to determining that the at least one page table log is to be merged with the page table, merging the page table and the at least one page table log into an updated page table; and The updated page table is stored in the persistent storage device.
12. The apparatus of claim 11 , wherein storing the updated page table in the persistent storage device comprises: dividing the updated page table into a plurality of blocks; Storing the multiple blocks in the persistent storage device respectively; Generate a second index structure for recording corresponding addresses of the plurality of blocks in the persistent storage device; as well as The second index structure is stored in the persistent storage device. The apparatus according to claim 11 , wherein the first index structure is implemented using a B+ tree.
14. An apparatus for managing metadata of a storage object, comprising: at least one processing unit; at least one memory coupled to the at least one processing unit and storing instructions for execution by the at least one processing unit, the instructions, when executed by the at least one processing unit, causing the apparatus to perform actions comprising: A first index structure for indexing metadata of a storage object and at least a portion of a page table corresponding to the first index structure are read from a persistent storage device into a memory, wherein the first index structure is used to record a mapping relationship between a first identifier of the storage object and a second identifier of a storage page where the metadata of the storage object is located, and the page table is used to record a mapping relationship between the second identifier and a page address of the storage page, wherein the page table stored in the persistent storage device includes a previous page table and at least one page table log for recording updates of the page table relative to the previous page table, the previous page table includes multiple blocks and a second index structure for recording corresponding addresses of the multiple blocks in the persistent storage device, and reading at least a portion of the page table includes: Reading the at least one page table log and the second index structure from the persistent storage device; In response to receiving a first request to access metadata of the storage object, accessing the metadata of the storage object based on the first index structure and the at least a portion of the page table; Based on the second index structure, reading the plurality of blocks from the persistent storage device into the memory to restore the previous page table in the memory; and restoring the page table in the memory by merging the previous page table and the at least one page table log; and The first index structure is also used to index metadata of another storage object, and the action further includes: The metadata of the other storage object is accessed based on the first index structure and the page table in response to receiving a second request to access the metadata of the other storage object.
15. The apparatus according to claim 14, wherein the page table stored in the persistent storage device comprises a plurality of blocks and a second index structure for recording corresponding addresses of the plurality of blocks in the persistent storage device, and reading at least a portion of the page table comprises: The second index structure is read from the persistent storage device.
16. The apparatus of claim 15, wherein accessing the metadata of the storage object comprises: extracting the first identifier of the storage object from the first request; Determine the second identifier of the storage page where the metadata of the storage object is located by searching the first index structure; determining, from the plurality of blocks, a block associated with the storage page based on the second identifier; Determine the address of the block in the persistent storage device by searching the second index structure; Reading the block from the address in the persistent storage device; Based on the second identifier, searching for a page address of the storage page in the block; as well as The metadata of the storage object is accessed from the page address in the persistent storage device.
17. The apparatus of claim 15, wherein the actions further comprise: Based on the second index structure, the plurality of blocks are read from the persistent storage device into the memory to restore the page table in the storage.
18. The apparatus of claim 14, wherein accessing the metadata of the storage object comprises: extracting the first identifier of the storage object from the first request; Determine the second identifier of the storage page where the metadata of the storage object is located by searching the first index structure; Based on the second identifier, searching for a page address of the storage page from the at least one page table log; as well as In response to the page address of the storage page being found in the at least one page table log, the metadata of the storage object is accessed from the page address in the persistent storage device.
19. The apparatus of claim 18, wherein the actions further comprise: In response to the page address of the storage page not being found in the at least one page table log, determining a block associated with the storage page from the plurality of blocks based on the second identifier; Determine the address of the block in the persistent storage device by searching the second index structure; Reading the block from the address in the persistent storage device; Based on the second identifier, searching for a page address of the storage page in the block; as well as The metadata of the storage object is accessed from the page address in the persistent storage device.
20. The apparatus of claim 14, wherein the first index structure is implemented using a B+ tree.
21. A computer program product tangibly stored in a computer storage medium and comprising machine executable instructions which, when executed by a device, cause the device to perform the method according to any one of claims 1-3.
22. A computer program product tangibly stored in a computer storage medium and comprising machine executable instructions which, when executed by a device, cause the device to perform the method according to any one of claims 4-10.
Citation Information
Patent Citations
Data tree storage methods, systems and computer program products using page structure
CN101339538A
Enhance memory access permission based on per-page current privilege level
CN109564552A
Storage devices including logical to physical address mapping and methods of operating
US20180357164A1
Continuous data backup using distributed journaling
US7558926B1
Logical sector mapping in a flash storage array
US8788788B2
