System and Method for Lockless Reading of Metadata Pages
US-2022342816-A1 · Oct 27, 2022 · US
US11921695B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-11921695-B2 |
| Application number | US-202117494225-A |
| Country | US |
| Kind code | B2 |
| Filing date | Oct 5, 2021 |
| Priority date | Oct 5, 2021 |
| Publication date | Mar 5, 2024 |
| Grant date | Mar 5, 2024 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
In a dual node system, each node can store metadata updates in a volatile memory metadata log. Metadata pages can be used to access data stored on a volume. A node designated as preferred or affined for a volume can be expected to receive I/Os directed to the volume. A preferred node for a volume can record, in its volatile memory metadata log, the metadata changes for the metadata pages used to access data stored on the volume. A non-preferred or non-affined node for the volume can infrequently receive I/Os directed to the volume. A non-preferred node for a volume can record, in its volatile memory metadata log, pointers or references to the metadata changes for the metadata pages used to access data stored on the volume, where the pointers or references map to persisted copies of the meta changes as stored in a persisted metadata log.
Opening claim text (preview).
What is claimed is: 1. A computer-implemented method comprising: receiving, at a first node, a metadata update request to apply a first metadata change to a first metadata page; acquiring, by the first node, a first lock on the first node for the first metadata page; sending a commit message from the first node to a second node, wherein the commit message is a request by the first node to acquire a second lock for the first metadata page on the second node and apply the first metadata change to the first metadata page, and wherein the commit message includes the first metadata change for the first metadata page; acquiring, by the first node, the second lock for the first metadata page; persistently storing, by the second node, the first metadata change to the first metadata page in a first persisted entry of a persisted metadata log; recording, in an in-memory metadata log of the second node, a first entry for the first metadata change to the first metadata page, wherein the first entry includes a reference or pointer to the first persisted entry of the persisted metadata log; releasing the second lock for the first metadata page; sending, from the second node to the first node, a reply to the commit message; and responsive to receiving the reply, performing first processing by the first node including: recording, in an in-memory metadata log of the first node, a second entry for the first metadata change to the first metadata page, wherein the second entry includes the first metadata change to the first metadata page; and releasing the first lock for the first metadata page, wherein the first node and the second node are included in a same data storage system, wherein a first set of one or more paths are between one or more initiator ports of a host and a first set of one or more target ports of the first node, wherein a second set of one or more paths are between one or more initiator ports of the host and a second set of one or more target ports of the second node, wherein the first node is a preferred node for servicing I/O operations for a first logical device exposed to the host over the first set of one or more paths between the host and the first node, and wherein the second node is a non-preferred node for servicing I/O operations for the first logical device exposed to the host over the second set of one or more paths between the host and the second node. 2. The computer-implemented method of claim 1 , wherein each path of the first set of one or more paths is configured as an optimized or preferred path for the first logical device, wherein each path of the second set of one or more paths is configured as a non-optimized or non-preferred path for the first logical device, and wherein the method further includes: issuing, by the host, I/Os to the first logical device over one or more of the optimized paths of the first set of one or more paths between the host and the first node, wherein the host only issues I/Os to the first logical device over a non-optimized or non-preferred path of the second set of one or more paths when there is no available optimized or preferred path of the first set of one or more paths between the host and the first node. 3. The computer-implemented method of claim 2 , further comprising: determining, by the host, that there is no available optimized or preferred path of the first set of one or more paths between the host and the first node; and responsive to said determining, sending, by the host, a first I/O operation to the first logical device over a first of the non-optimized or non-preferred paths of the second set of one or more paths between the host and the second node. 4. The computer-implemented method of claim 3 , wherein the first non-optimized or non-preferred path is between a first initiator of the host and a first target port of the second node, wherein the first I/O operation is a write I/O operation that writes first data to a target logical address on the first logical device, and wherein the method further comprises: receiving, by the second node, the write I/O operation at the first target port; determining, in accordance with one or more criteria, that the second node is a preferred node for the first logical device; performing second processing to service the write I/O operation, said second processing including: determining a second metadata change to a second metadata page, wherein the second metadata page is used in connection with accessing the target logical address of the first logical device; persistently storing, by the second node, the second metadata change to the second metadata page in a second persisted entry of the persisted metadata log; and recording, in the in-memory metadata log of the second node, a third entry for the second metadata change to the second metadata page, wherein the third entry includes the second metadata change to the second metadata page. 5. The computer-implemented method of claim 4 , wherein the one or more criteria specify that the second node is designated as a preferred node for the first logical device responsive to the second node receiving at least a specified amount of I/O workload for the first logical device. 6. The computer-implemented method of claim 4 , wherein the one or more criteria specify that the second node is designated as a preferred node for the first logical device responsive to configuration information of the host or the same data storage system indicating that the second node is designated as a preferred node for the first logical device. 7. The computer-implemented method of claim 1 , further comprising: receiving, at the first node, a read I/O operation to read first data from a target logical address on the first logical device; determining, by the first node, that the first metadata page is needed to access the first data stored at the target logical address on the first logical device; determining, by the first node, that the first metadata page is not included in a volatile memory cache of the first node; and responsive to determining by the first node that the first metadata page is not included in the volatile memory cache of the first node, constructing, by the first node, a latest version of the first metadata page. 8. The computer-implemented method of claim 7 , wherein said constructing the latest version of the first metadata page further comprises: retrieving, by the first node, a stored version of the first metadata page from non-volatile backend storage; and applying, by the first node, a set of one or more metadata changes to the stored version of the first metadata page to generate the latest version of the first metadata page wherein the set of one or more metadata changes includes the first metadata change as recorded in the second entry of the in-memory metadata log of the first node. 9. The computer-implemented method of claim 8 , wherein responsive to constructing, by the first node, the latest version of the first metadata page, performing processing comprising: storing, by the first node, the latest version of the first metadata page in the volatile memory cache of the first node. 10. The computer-implemented method of claim 1 , further comprising: receiving, at the second node, a read I/O operation to read first data from a target logical address on the first logical device; determining, by the second node, that the first metadata page is needed to access the first data stored at the target logical address on the first logical device; determining, by the second node, that the first metadata page is not included in a volatile memory cache of the second node; and responsive to determining, by the second node, that the first metadata
Locking methods, e.g. distributed locking or locking implementation details · CPC title
Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS] · CPC title
Permissions · CPC title
in relation to content · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.