IP Library Granted Patent US 11,243,909
Granted Patent B2
US 11,243,909 · App. 16/176,770 · Granted Feb 8, 2022

Journaling overhead reduction with remapping interface

Inventors: Qingda Lu (Bellevue, WA); Yikang Xu (Redmond, WA); Qinghua Ye (Sammamish, WA); Jiesheng Wu (Redmond, WA); Liping Bao (Sammamish, WA)
Assignee: Alibaba Group Holding Limited
G06F16/13G06F12/06G06F16/122G06F16/1815
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,243,909
App. No.
16/176,770
Granted
Feb 8, 2022
Kind
B2
Abstract

Methods and systems are provided for improving a journaling file system by reducing journaling overhead utilizing a remapping interface to log-structured cloud block devices such that blocks in a journaling transaction are atomically mapped to their final disk locations with minimum overhead. With log-structured cloud block devices, all blocks may be stored in logfiles and indexed for access. By modifying the index of the destination block to point to the corresponding journal block, the additional write may be avoided, and a journal block may effectively be remapped from its original LBA to its destination LBA without any actual data movement, thereby reducing the file system journaling overhead.

Claims (68)

1. A method in a cloud block service system having a virtual block device and a device index map of the virtual block device, the method comprising:

receiving a remap request from a client;

determining whether logical block address (LBA) mappings of the virtual block device in the remap request are valid in response to receiving the remap request, each LBA mapping comprising a corresponding first LBA value and a corresponding second LBA value;

upon determining that the LBA mappings are valid, assigning a request sequence number to the remap request, and recording the LBA mappings;

based on the device index map of the virtual block device, translating each LBA mapping to a corresponding pair of LBA-to-physical location mappings;

writing the corresponding pairs of LBA-to-physical location mappings to a data logfile as corresponding remapping log blocks;

appending a remapping commit block to the data logfile to indicate that the remap request is committed;

inserting the corresponding pairs of LBA-to-physical location mappings into the device index map;

periodically checkpointing the device index map into a separate index logfile; and

upon determining that a latest request sequence number of a checkpointed device index map has surpassed a request sequence number of a corresponding remapping log block in the data logfile, deleting the corresponding remapping log block.

2. The method of claim 1 , wherein determining whether the LBA mappings of the virtual block device in the remap request are valid in response to receiving the remap request includes:

determining whether a device identification (DeviceId) of the virtual block device and credentials of the client in the remap request are valid in response to receiving the remap request from the client; and

upon determining that the DeviceId and the credentials are valid, determining whether the LBA mappings in the remap request are valid.

3. The method of claim 1 , wherein determining whether the LBA mappings of the virtual block device in the remap request are valid in response to receiving the remap request includes:

determining that the LBA mappings are not valid based on at least one of:

at least one LBA in the LBA mappings being out of range of the virtual block device; or

at least one LBA number existing in more than one LBA mappings.

4. The method of claim 1 ,

wherein a first LBA-to-physical location mapping of the corresponding pair of LBA-to-physical location mappings comprises the corresponding second LBA value and a corresponding first physical location determined in the device index map based on the corresponding first LBA value, and a second LBA-to-physical location mapping of the corresponding pair of LBA-to-physical location mappings comprises the corresponding first LBA value and a null location in the device index map where the null location is not in use.

5. The method of claim 1 , wherein metadata of each remapping log block includes a tag indicative of the corresponding block being a part of the remap request.

6. The method of claim 1 , further comprising:

replaying the data logfile corresponding to the virtual block device to reconstruct the device index map.

7. The method of claim 6 , wherein replaying the data logfile corresponding to the virtual block device to reconstruct the device index map includes:

if a remapping commit block corresponding to the request sequence number is missing, omitting remapping log blocks of the request sequence number.

8. A system comprising:

one or more processors;

a virtual block device coupled to the one or more processors;

memory coupled to the one or more processors, the memory storing computer executable instructions executable by the one or more processors, that when executed, causes the one or more processors to perform operations comprising:

receiving a remap request from a client;

determining whether a device identification (DeviceId) of the virtual block device and credentials of the client in the remap request are valid in response to receiving the remap request;

upon determining that the DeviceId and the credentials are valid, determining whether logical block address (LBA) mappings of the virtual block device in the remap request are valid, each LBA mapping comprising a corresponding first LBA value and a corresponding second LBA value;

upon determining that the LBA mappings are valid, assigning a request sequence number to the remap request, and recording the LBA mappings;

based on a device index map of the virtual block device in the memory, translating each LBA mapping to a corresponding pair of LBA-to-physical location mappings;

writing the corresponding pairs of LBA-to-physical location mappings to a data logfile as corresponding remapping log blocks;

appending a remapping commit block to the data logfile to indicate that the remap request is committed;

inserting the corresponding pairs of LBA-to-physical location mappings into the device index map;

periodically checkpointing the device index map into a separate index logfile; and

upon determining that a latest request sequence number of a checkpointed device index map has surpassed a request sequence number of a corresponding remapping log block in the data logfile, deleting the corresponding remapping log block.

9. The system of claim 8 , wherein determining whether the LBA mappings of the virtual block device in the remap request are valid in response to receiving the remap request includes:

determining that the LBA mappings are not valid based on at least one of:

at least one LBA in the LBA mappings being out of range of the virtual block device; or

at least one LBA number existing in more than one LBA mappings.

10. The system of claim 8 ,

wherein a first LBA-to-physical location mapping of the corresponding pair of LBA-to-physical location mappings comprises the corresponding second LBA value and a corresponding first physical location determined in the device index map based on the corresponding first LBA value, and a second LBA-to-physical location mapping of the corresponding pair of LBA-to-physical location mappings comprises the corresponding first LBA value and a null location in the device index map where the null location is not in use.

11. The system of claim 8 , wherein metadata of each remapping log block includes a tag indicative of the corresponding block being a part of the remap request.

12. The system of claim 8 , wherein the operations further comprise:

replaying the data logfile corresponding to the virtual block device to reconstruct the device index map; and

if a remapping commit block corresponding to the request sequence number is missing, omitting remapping log blocks of the request sequence number.

13. A non-transitory computer readable medium storing computer-readable instructions executable by one or more processors, that when executed, causes the one or more processors to perform operations comprising:

receiving a remap request from a client;

determining whether a device identification (DeviceId) of a virtual block device and credentials of the client in the remap request are valid in response to receiving the remap request;

upon determining that the DeviceId and the credentials are valid, determining whether logical block address (LBA) mappings of the virtual block device in the remap request are valid, each LBA mapping comprising a corresponding first LBA value and a corresponding second LBA value;

upon determining that the LBA mappings are valid, assigning a request sequence number to the remap request, and recording the LBA mappings;

based on a device index map of the virtual block device, translating each LBA mapping to a corresponding pair of LBA-to-physical location mappings;

writing the corresponding pairs of LBA-to-physical location mappings to a data logfile as corresponding remapping log blocks;

appending a remapping commit block to the data logfile to indicate that the remap request is committed;

inserting the corresponding pairs of LBA-to-physical location mappings into the device index map;

periodically checkpointing the device index map into a separate index logfile; and

upon determining that a latest request sequence number of a checkpointed device index map has surpassed a request sequence number of a corresponding remapping log block in the data logfile, deleting the corresponding remapping log block.

14. The non-transitory computer readable medium of claim 13 , wherein determining whether the LBA mappings of the virtual block device in the remap request are valid in response to receiving the remap request includes:

determining that the LBA mappings are not valid based on at least one of:

at least one LBA in the LBA mappings being out of range of the virtual block device; or

at least one LBA number existing in more than one LBA mappings.

15. The non-transitory computer readable medium of claim 13 , wherein a first LBA-to-physical location mapping of the corresponding pair of LBA-to-physical location mappings comprises the corresponding second LBA value and a corresponding first physical location determined in the device index map based on the corresponding first LBA value, and a second LBA-to-physical location mapping of the corresponding pair of LBA-to-physical location mappings comprises the corresponding first LBA value and a null location in the device index map where the null location is not in use.

16. The non-transitory computer readable medium of claim 13 , wherein metadata of each remapping log block includes a tag indicative of the corresponding block being a part of the remap request.

17. The non-transitory computer readable medium of claim 13 , wherein the operations further comprise:

replaying the data logfile corresponding to the virtual block device to reconstruct the device index map; and

if a remapping commit block corresponding to the request sequence number is missing, omitting remapping log blocks of the request sequence number.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 29, 2026
From: ALIBABA GROUP HOLDING LIMITED
To: CLOUD INTELLIGENCE ASSETS HOLDING (SINGAPORE) PRIVATE LIMITED
Reel/Frame 075499/0384 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 17, 2018
From: LU, QINGDA; XU, YIKANG; YE, QINGHUA; WU, JIESHENG; BAO, LIPING
To: ALIBABA GROUP HOLDING LIMITED
Reel/Frame 047797/0287 →
Continuity (1)
Related Publication 20200134041A1 · Apr 30, 2020