US 11,789,924 B2
Lock metadata re-balancing upon storage expansion
Ido Yelin, Tel Aviv (IL); Avi Goren, Tel Aviv (IL); and Oded Sonin, Tel Aviv (IL)
Assigned to VAST DATA LTD., Tel Aviv (IL)
Filed by VAST DATA LTD., Tel Aviv (IL)
Filed on Oct. 14, 2021, as Appl. No. 17/450,991.
Prior Publication US 2023/0118947 A1, Apr. 20, 2023
Int. Cl. G06F 16/00 (2019.01); G06F 16/23 (2019.01)
CPC G06F 16/2343 (2019.01) 17 Claims
OG exemplary drawing
 
1. A method for lock metadata re-balancing upon an expansion of a storage system, the method comprises:
instructing multiple compute entities, by an expansion manager and during a first phase of the lock metadata re-balancing, to execute a double lock mechanism when acquiring locks by using:
(a) a current translation function for linking addresses of current lock metadata units (LMUs) to identifiers of stored entities; wherein the current translation function is based on a size of a current storage space allocated to the lock metadata; and
(b) a next translation function for linking addresses of next LMUs to identifiers of stored entities; wherein the next translation function is based on a size of a next storage space allocated to the lock metadata; wherein the current storage space is expanded during the expansion of the storage system to provide the next storage space;
executing the double lock mechanism, by each of the multiple compute entities that needs to acquire a lock for a stored entity after being instructed and during the first phase, wherein the executing comprises: (i) obtaining an address of a current LMU by using the current translation function, (ii) obtaining an address of a next LMU by using the next translation function, and (iii) acquiring locks represented by the current and next LMU, wherein addresses of both the current LMU and the next LMU are linked to the stored entity during the first phase; and
instructing the multiple compute entities, by the expansion manager, and during another phase of the lock metadata re-balancing that follows a release of all current LMUs, to use the next translation function without using the current translation function, when acquiring locks and when checking status of locks.