RECOVERY MECHANISM FOR LOW LATENCY METADATA LOG
First Claim
Patent Images
1. A storage server comprising:
- a plurality of physical drives;
a management controller comprising a first memory; and
an input/output (IO) controller operatively coupled to the plurality of physical drives and to the management controller, the IO controller comprising a second memory, wherein the IO controller is to;
generate a first metadata update for a first page of a first metadata table, wherein the first metadata update is associated with storage of first data in at least one of a first physical block address (PBA) on a first physical drive of the plurality of physical drives or a first virtual block address (VBA) mapped to the first PBA;
generate a second metadata update for a second page of one of the first metadata table or a second metadata table, wherein the second metadata update is associated with at least one of the first VBA or the first PBA;
write a first cache entry to a first cache in a first memory of the management controller, the first cache entry comprising the first metadata update and the second metadata update;
write a copy of the first cache entry to a second cache in a second memory of the IO controller, wherein the second cache is a copy of the first cache; and
increment a commit pointer in the first cache and the second cache to indicate that the data has been stored in the first PBA and that all metadata updates associated with storage of the data at the first PBA have been committed.
2 Assignments
0 Petitions
Accused Products
Abstract
A storage server includes an IO controller, a management controller and physical drives. The IO controller generates multiple metadata updates and writes a cache entry that includes the multiple metadata updates to a first cache in memory of the management controller. The IO controller additionally writes a copy of the cache entry to a second cache in a memory of the IO controller and increments a commit pointer in the first and second caches to indicate that the metadata updates are committed.
-
Citations
25 Claims
-
1. A storage server comprising:
-
a plurality of physical drives; a management controller comprising a first memory; and an input/output (IO) controller operatively coupled to the plurality of physical drives and to the management controller, the IO controller comprising a second memory, wherein the IO controller is to; generate a first metadata update for a first page of a first metadata table, wherein the first metadata update is associated with storage of first data in at least one of a first physical block address (PBA) on a first physical drive of the plurality of physical drives or a first virtual block address (VBA) mapped to the first PBA; generate a second metadata update for a second page of one of the first metadata table or a second metadata table, wherein the second metadata update is associated with at least one of the first VBA or the first PBA; write a first cache entry to a first cache in a first memory of the management controller, the first cache entry comprising the first metadata update and the second metadata update; write a copy of the first cache entry to a second cache in a second memory of the IO controller, wherein the second cache is a copy of the first cache; and increment a commit pointer in the first cache and the second cache to indicate that the data has been stored in the first PBA and that all metadata updates associated with storage of the data at the first PBA have been committed. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
-
13. A method comprising:
-
sending, by a first controller, a command to store data at a first physical block address (PBA) of a first physical drive that is to be mapped to a first virtual block address (VBA) of a virtual drive; generating, by the first controller, a first metadata update for a first metadata table associated with the virtual drive, wherein the first metadata update indicates a mapping of the first VBA to the first PBA; generating, by the first controller, a second metadata update for a second metadata table, wherein the second metadata table identifies statuses of PBAs, and wherein the second metadata update indicates that the first PBA is valid; writing a first cache entry to a first cache in a first memory of a second controller operatively coupled to the first controller, the first cache entry comprising the first metadata update and the second metadata update; writing a copy of the first cache entry to a second cache in a second memory of the first controller, wherein the second cache is a copy of the first cache; and incrementing a commit pointer in the first cache and the second cache to indicate that the data has been stored in the first PBA and that all metadata updates associated with storage of the data at the first PBA have been committed. - View Dependent Claims (14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25)
-
Specification