IP Library › Granted Patent US 11,086,531
Granted Patent B2
US 11,086,531 · App. 16/575,258 · Granted Aug 10, 2021

Scaling events for hosting hierarchical data structures

Inventors: Mahendra Manshi Chheda (Sammamish, WA); Srikanth Mandadi (Redmond, WA); Alazel Acheson (Redmond, WA); Christopher Ryan Baker (Seattle, WA); Matthew William Berry, Jr. (Seattle, WA)
Assignee: Amazon Technologies, Inc.
G06F3/0619G06F3/065G06F3/0685
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,086,531
App. No.
16/575,258
Granted
Aug 10, 2021
Kind
B2
Abstract

Scaling events may be detected for hosting hierarchical data structures. Scaling events may be detected to modify the capacity of a data store for hierarchical data structures to handle changing write workloads, read workloads, or storage capacity. Hierarchical data structures may be moved from one group of storage hosts to another group of storage hosts according to a filtered snapshot that includes the hierarchical data structures to be moved that is provided to the destination storage hosts. Changes made to the hierarchical data structures made at the source storage hosts during the move can be applied to the filtered snapshot so that the hierarchical data structures may be made available at the destination storage hosts inclusive of the changes.

Claims (60)

1. A system, comprising:

one or more compute nodes, respectively comprising at least one processor and a memory, configured to:

identify one or more of a plurality of hierarchical data structures stored at a plurality of storage hosts to move from a current transaction log to a different transaction log, wherein updates to the plurality of hierarchical data structures are applied to the plurality of hierarchical data structures amongst the storage hosts after the updates are successfully committed to the current transaction log;

commit to the current transaction log a transition to the different transaction log for the one or more identified hierarchical data structures;

obtain, by the plurality of storage hosts, the transition to the different transaction log from the current transaction log;

apply, at the plurality of storage hosts, the transition to the different transaction log, in order to direct subsequent requests to commit updates to the one or more identified hierarchical data structures to the different transaction log.

2. The system of claim 1 , wherein the one or more identified hierarchical data structures are to be moved to a plurality of destination storage hosts, and wherein the one or more compute nodes are further configured to:

generate a filtered snapshot of the hierarchical data structures stored at the storage hosts that excludes those hierarchical data structures not to be moved to the destination storage hosts;

provide the filtered snapshot to the destination storage hosts;

update the transaction log to commit the movement of the one or more identified hierarchical data structures to the destination storage hosts; and

make the one or more identified hierarchical data structures available for processing access requests at the destination storage hosts.

3. The system of claim 1 , wherein the one or more compute nodes are further configured to:

detect an event to add at least one storage host to the plurality of storage hosts for processing access requests to the one or more identified hierarchical data structures; and

provision the at least one storage host to include with the plurality of storage hosts, wherein the at least one storage host gets a snapshot of the one or more identified hierarchical data structures and connects with the different transaction log for the one or more identified hierarchical data structures.

4. The system of claim 1 , wherein the one or more compute nodes are implemented as part of a network-based directory storage service, wherein each of the hierarchical data structures is a different directory structure hosted on behalf of a different client of the directory storage service.

5. The system of claim 1 , wherein the one or more compute nodes are further configured to:

monitor one or more performance metrics for the plurality of storage hosts;

based at least in part on the one or more of the performance metrics, detect a scaling event to add the different transaction log; and

provision the different transaction log to commit updates for the one or more identified hierarchical data structures.

6. The system of claim 1 , wherein to apply, at the plurality of storage hosts, the transition to the different transaction log, the one or more compute nodes are further configured to change metadata maintained at the plurality of storage hosts for processing requests directed to the one or more identified hierarchical data structures stored at a plurality of storage hosts.

7. A method, comprising:

performing, by one or more computing devices:

identifying one or more of a plurality of hierarchical data structures stored at a plurality of storage hosts to move from a current transaction log to a different transaction log, wherein updates to the plurality of hierarchical data structures are applied to the plurality of hierarchical data structures amongst the storage hosts after the updates are successfully committed to the current transaction log;

committing to the current transaction log a transition to the different transaction log for the one or more identified hierarchical data structures;

obtaining, by the plurality of storage hosts, the transition to the different transaction log from the current transaction log;

applying, at the plurality of storage hosts, the transition to the different transaction log, in order to direct subsequent requests to commit updates to the one or more identified hierarchical data structures to the different transaction log.

8. The method of claim 7 , wherein the identifying the one or more hierarchical data structures stored at the plurality of storage hosts to move comprises evaluating one or more characteristics of the hierarchical data structures to select the one or more identified hierarchical data structures out of the plurality of hierarchal data structures stored at the plurality of storage hosts.

9. The method of claim 7 , further comprising:

detecting a scaling event to add the different transaction log;

provisioning the different transaction log to commit updates for the one or more identified hierarchical data structures.

10. The method of claim 7 , wherein applying, at the plurality of storage hosts, the transition to the different transaction log further comprises changing metadata maintained at the plurality of storage hosts for processing requests directed to the one or more identified hierarchical data structures stored at a plurality of storage hosts.

11. The method of claim 7 , wherein the one or more identified hierarchical data structures are to be moved to a plurality of destination storage hosts, further comprising:

generating a filtered snapshot of the hierarchical data structures stored at the storage hosts that excludes those hierarchical data structures not to be moved to the destination storage hosts;

providing the filtered snapshot to the destination storage hosts;

updating the transaction log to commit the movement of the one or more identified hierarchical data structures to the destination storage hosts; and

making the one or more identified hierarchical data structures available for processing access requests at the destination storage hosts.

12. The method of claim 7 , wherein the committing to the current transaction log a transition to the different transaction log is performed by a resource that is separate from the storage hosts.

13. The method of claim 7 , wherein the identifying, the committing, the obtaining, and the applying are performed as part of a network-based directory storage service, wherein each of the hierarchical data structures is a different directory structure hosted on behalf of a different client of the directory storage service.

14. A non-transitory, computer-readable storage medium, storing program instructions that when executed by one or more computing devices cause the one or more computing devices to implement:

identifying one or more of a plurality of hierarchical data structures stored at a plurality of storage hosts to move from a current transaction log to a different transaction log, wherein updates to the plurality of hierarchical data structures are applied to the plurality of hierarchical data structures amongst the storage hosts after the updates are successfully committed to the current transaction log;

committing to the current transaction log a transition to the different transaction log for the one or more identified hierarchical data structures;

obtaining, by the plurality of storage hosts, the transition to the different transaction log from the current transaction log;

applying, at the plurality of storage hosts, the transition to the different transaction log, in order to direct subsequent requests to commit updates to the one or more identified hierarchical data structures to the different transaction log.

15. The non-transitory, computer-readable storage medium of claim 14 , wherein, in identifying one or more of the plurality of hierarchical data structures to move from the current transaction log to the different transaction log, the program instructions cause the one or more computing devices to implement receiving a request to move the one or more hierarchal data structures that specifies the one or more hierarchical data structures.

16. The non-transitory, computer-readable storage medium of claim 14 , wherein the program instructions cause the one or more computing devices to further implement:

monitoring one or more performance metrics for the plurality of storage hosts;

detecting, based at least in part on the one or more of the performance metrics, a scaling event to add the different transaction log; and

provisioning the different transaction log to commit updates for the one or more identified hierarchical data structures.

17. The non-transitory, computer-readable storage medium of claim 14 , wherein, in applying, at the plurality of storage hosts, the transition to the different transaction log, the program instructions cause the one or more computing devices to further implement changing metadata maintained at the plurality of storage hosts for processing requests directed to the one or more identified hierarchical data structures stored at a plurality of storage hosts.

18. The non-transitory, computer-readable storage medium of claim 14 , wherein the one or more identified hierarchical data structures are to be moved to a plurality of destination storage hosts, and wherein the program instructions cause the one or more computing devices to further implement:

generate a filtered snapshot of the hierarchical data structures stored at the storage hosts that excludes those hierarchical data structures not to be moved from to the destination storage hosts;

provide the filtered snapshot to the destination storage hosts;

update the transaction log to commit the movement of the one or more identified hierarchical data structures to the destination storage hosts; and

make the one or more identified hierarchical data structures available for processing access requests at the destination storage hosts.

19. The non-transitory, computer-readable storage medium of claim 14 , wherein the program instructions cause the one or more computing devices to further implement:

detect an event to add at least one storage host to the plurality of storage hosts for processing access requests to the one or more identified hierarchical data structures; and

provision the at least one storage host to include with the plurality of storage hosts;

obtain, at the at least one storage host, a snapshot of the one or more identified hierarchical data structures; and

connect the at least one storage host with the different transaction log for the one or more identified hierarchical data structures.

20. The non-transitory, computer-readable storage medium of claim 14 , wherein the identifying, the committing, the obtaining, and the applying are performed as part of a network-based directory storage service, wherein each of the hierarchical data structures is a different directory structure hosted on behalf of a different client of the directory storage service.

Continuity (2)
Continuation 15475034 · Mar 30, 2017
Related Publication 20200012441A1 · Jan 9, 2020