US 11,886,427 B1
Techniques for efficient journal space handling and recovery processing with multiple logs
Vladimir Shveidel, Pardes-Hana (IL); Dror Zalstein, Givatayim (IL); and Bar David, Tel Mond (IL)
Assigned to Dell Products L.P., Hopkinton, MA (US)
Filed by Dell Products L.P., Hopkinton, MA (US)
Filed on Oct. 3, 2022, as Appl. No. 17/959,204.
Int. Cl. G06F 16/23 (2019.01)
CPC G06F 16/2379 (2019.01) 19 Claims
OG exemplary drawing
 
1. A computer-implemented method comprising:
receiving, at a first node of a system, a request, wherein the request is a transaction comprising a plurality of MD (metadata) updates including a first MD update of a first MD update type and including a second MD update of a second MD update type, wherein the first MD update type is included in a first set of MD update types, and wherein the second MD update type is included in a second set of MD update types;
in response to receiving the request, performing processing including:
storing, in a first volatile MD log, the first MD update;
storing, in a second volatile MD log, the second MD update;
storing, in a first non-volatile MD log, the first MD update; and
storing, in a second non-volatile MD log, the second MD update, wherein each MD update stored in the first volatile MD log and the first non-volatile MD log has a first corresponding MD update type included in the first set, and wherein each MD update stored in the second volatile MD log and the second non-volatile MD log has a second corresponding MD update type included in the second set, wherein each MD update type of the first set is different from each MD update type in the second set; and
performing first processing by the first node to recover MD updates from the first non-volatile MD log and the second non-volatile MD log, said first processing including:
receiving a first transaction record from the first non-volatile MD log;
responsive to determining the first transaction record has a valid corresponding transaction record in the second non-volatile MD log, determining whether the first transaction record and the valid corresponding transaction record denote a first pair which is a duplicate transaction of a second pair of transaction records, wherein the second pair of transaction records includes one transaction record from the first non-volatile MD log and another transaction record from the second non-volatile MD log; and
responsive to determining the first pair is not a duplicate of the second pair, populating the first volatile MD log and the second volatile MD log of the first node in accordance with MD updates of the first pair, and otherwise discarding and invalidating the first pair.