IP Library Granted Patent US 11,308,123
Granted Patent B2
US 11,308,123 · App. 16/888,240 · Granted Apr 19, 2022

Selectively replicating changes to hierarchial data structures

Inventors: Alazel Acheson (Redmond, WA); Christopher Ryan Baker (Seattle, WA); Mahendra Manshi Chheda (Sammamish, WA); James Robert Englert (Seattle, WA); Meng Li (Seattle, WA); Srikanth Mandadi (Redmond, WA); Slavka Praus (Seattle, WA); Colin Watson (Seattle, WA)
Assignee: Amazon Technologies, Inc.
G06F16/273G06F16/2246G06F16/2379
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,308,123
App. No.
16/888,240
Granted
Apr 19, 2022
Kind
B2
Abstract

Updates to a hierarchical data structure may be selectively replicated to other replicas of the hierarchical data structure. An update for a hierarchical data structure may be received and committed to the hierarchical data structure. A determination as to whether any other replicas of the hierarchical data structure have permission to receive the update may be made. For those replicas of the hierarchical data structure with permission to receive the update, the update may be provided to the replicas and committed to the replicas. Different types of replication techniques may be implemented, such as pull-based replication techniques or push-based replication techniques. Replication permissions for objects of the hierarchical data structure may be individually defined, in some embodiments.

Claims (46)

1. A system, comprising:

at least one processor; and

a memory, storing program instructions that when executed by the at least one memory cause the at least one memory to implement a first geographic region of a plurality of different geographic regions of a directory storage service, the first geographic region configured to:

receive a request to attach a first object to a second object in a hierarchal data structure stored at a plurality of replicas across the plurality of different geographic regions of the directory storage service, wherein the second object is mastered in a second geographic region of the plurality of different geographic regions;

send a request to the second region of the plurality of geographic regions to update a replica of the hierarchical data structure in the second geographic region to attach the first object to the second object;

update another replica of the hierarchical data structure in the first geographic region to attach the first object to the second object in response to an acknowledgement that the second geographic region performed the attachment of the first object to the second object; and

acknowledge the request to attach the first object to the second object in the hierarchal data structure.

2. The system of claim 1 , wherein the first object is mastered in the first geographic region.

3. The system of claim 1 , wherein the first geographic region is further configured to:

receive a request to detach the first object from the second object in the hierarchal data structure;

send a request to the second region of the plurality of geographic regions to update the replica of the hierarchical data structure in the second geographic region to detach the first object from the second object;

update the another replica of the hierarchical data structure in the first geographic region to detach the first object from the second object in response to an acknowledgement that the second geographic region performed the detachment of the first object from the second object; and

acknowledge the request to detach the first object from the second object in the hierarchal data structure.

4. The system of claim 1 , wherein the attachment of the first object to the second object is not eligible to be replicated to a third geographic region of the plurality of different geographic regions.

5. The system of claim 1 , wherein the first object is not available for access by a client at the second geographic region of the directory storage service.

6. The system of claim 1 , wherein the first geographic region is further configured to perform an update to the first object stored in the another replica of hierarchical data structure at the first geographic region of the directory storage service in response to a request to update the first object, wherein the update is not replicated to the replica of the hierarchical data structure at the second geographic region of the directory storage service.

7. The system of claim 1 , wherein the update to the replica of the hierarchical data structure in the second geographic region to attach the first object to the second object is committed to a transaction log for the replica of the hierarchical data structure.

8. A method, comprising:

receiving, at a first geographic region of a directory storage service, a request to attach a first object to a second object in a hierarchal data structure stored at a plurality of replicas across the plurality of different geographic regions of the directory storage service including the first geographic region, wherein the second object is mastered in a second geographic region of the plurality of different geographic regions;

sending, by the first geographic region of the directory storage service, a request to the second region of the plurality of geographic regions to update a replica of the hierarchical data structure in the second geographic region to attach the first object to the second object;

updating, by the first geographic region of the directory storage service, another replica of the hierarchical data structure in the first geographic region to attach the first object to the second object in response to an acknowledgement that the second geographic region performed the attachment of the first object to the second object; and

acknowledging, by the first geographic region of the directory storage service, the request to attach the first object to the second object in the hierarchal data structure.

9. The method of claim 8 , wherein the first object is mastered in the first geographic region.

10. The method of claim 8 , further comprising:

receiving, by the first geographic region of the directory storage service, a request to detach the first object from the second object in the hierarchal data structure;

sending, by the first geographic region of the directory storage service, a request to the second region of the plurality of geographic regions to update the replica of the hierarchical data structure in the second geographic region to detach the first object from the second object;

updating, by the first geographic region of the directory storage service, the another replica of the hierarchical data structure in the first geographic region to detach the first object from the second object in response to an acknowledgement that the second geographic region performed the detachment of the first object from the second object; and

acknowledging, by the first geographic region of the directory storage service, the request to detach the first object from the second object in the hierarchal data structure.

11. The method of claim 8 , wherein the attachment of the first object to the second object is not eligible to be replicated to a third geographic region of the plurality of different geographic regions.

12. The method of claim 8 , wherein the first object is not available for access by a client at the second geographic region of the directory storage service.

13. The method of claim 8 , further comprising performing an update to the first object stored in the another replica of hierarchical data structure at the first geographic region of the directory storage service in response to a request to update the first object, wherein the update is not replicated to the replica of the hierarchical data structure at the second geographic region of the directory storage service.

14. The method of claim 8 , wherein the update to the replica of the hierarchical data structure in the second geographic region to attach the first object to the second object is committed to a transaction log for the replica of the hierarchical data structure.

15. One or more non-transitory, computer-readable storage media, storing program instructions that when executed on or across one or more computing devices cause the one or more computing devices to implement a first geographic region of a plurality of different geographic regions of a directory storage service that implements:

receiving a request to attach a first object to a second object in a hierarchal data structure stored at a plurality of replicas across the plurality of different geographic regions of the directory storage service including the first geographic region, wherein the second object is mastered in a second geographic region of the plurality of different geographic regions;

sending a request to the second region of the plurality of geographic regions to update a replica of the hierarchical data structure in the second geographic region to attach the first object to the second object;

updating another replica of the hierarchical data structure in the first geographic region to attach the first object to the second object in response to an acknowledgement that the second geographic region performed the attachment of the first object to the second object; and

acknowledging the request to attach the first object to the second object in the hierarchal data structure.

16. The one or more non-transitory, computer-readable storage media of claim 15 , wherein the first object is mastered in the first geographic region.

17. The one or more non-transitory, computer-readable storage media of claim 15 , storing further program instructions that when executed on or across the one or more computing devices causes the one or more computing devices to implement:

receiving a request to detach the first object from the second object in the hierarchal data structure;

sending a request to the second region of the plurality of geographic regions to update the replica of the hierarchical data structure in the second geographic region to detach the first object from the second object;

updating the another replica of the hierarchical data structure in the first geographic region to detach the first object from the second object in response to an acknowledgement that the second geographic region performed the detachment of the first object from the second object; and

acknowledging the request to detach the first object from the second object in the hierarchal data structure.

18. The one or more non-transitory, computer-readable storage media of claim 15 , wherein the attachment of the first object to the second object is not eligible to be replicated to a third geographic region of the plurality of different geographic regions.

19. The one or more non-transitory, computer-readable storage media of claim 15 , wherein the first object is not available for access by a client at the second geographic region of the directory storage service.

20. The one or more non-transitory, computer-readable storage media of claim 15 , storing further program instructions that when executed on or across the one or more computing devices causes the one or more computing devices to implement performing an update to the first object stored in the another replica of hierarchical data structure at the first geographic region of the directory storage service in response to a request to update the first object, wherein the update is not replicated to the replica of the hierarchical data structure at the second geographic region of the directory storage service.

Continuity (2)
Continuation 15475031 · Mar 30, 2017
Related Publication 20200293550A1 · Sep 17, 2020
Cited By (1)
US 12,192,205