IP Library Granted Patent US 10,432,639
Granted Patent B1
US 10,432,639 · App. 15/587,313 · Granted Oct 1, 2019

Security management for graph analytics

Inventors: Bradley R. Bebee (Seattle, WA); Bryan B. Thompson (Seattle, WA)
Assignee: Amazon Technologies, Inc.
H04L63/101G06F16/9024G06F16/90335G06T1/20G06T11/206H04L63/083G06T2210/52
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 10,432,639
App. No.
15/587,313
Filed
May 4, 2017
Granted
Oct 1, 2019
Kind
B1
Art Unit
2431
USPC
726/4
Abstract

A bit vector representing access permissions associated with respective vertices of a graph data set is generated. At least a portion of the bit vector is read, and a first graph analytics algorithm is performed. The algorithm comprises determining, based at least in part on a portion of the bit vector, whether access permission to one or more vertices of the graph data set is granted.

Claims (44)

1. A method, comprising:

performing, by one or more processors and memory:

generating a bit vector representing one or more access permissions associated with respective vertices of a graph data set;

reading at least a portion of the bit vector;

performing a first graph analytics algorithm, wherein the performing the algorithm includes determining, based at least in part on a portion of the bit vector, whether access permission to one or more vertices of the graph data set is granted; and

transmitting to a client, via a network, results of execution of the algorithm based on the one or more vertices of the graph data set to which the access permission was granted.

2. The method as recited in claim 1 , wherein said performing the algorithm comprises excluding, based at least in part on determining that the access permission is not granted, a first vertex of the one or more vertices from a frontier of vertices generated in an iteration of the first graph analytics algorithm.

3. The method as recited in claim 1 , wherein said performing the algorithm comprises implementing, based at least in part on determining that the access permission is granted with respect to a first vertex of the one or more vertices, a user defined function associated with the first vertex.

4. The method as recited in claim 1 , further comprising:

providing, to one or more execution platforms at which the first graph analytics algorithm is performed, at least the portion of the bit vector, wherein a first execution platform of the first plurality of execution platforms comprises one or more of: (a) a graphical processing unit (GPU), (b) a central processing unit (CPU), (c) a device comprising at least one CPU and at least one GPU, (d) a field programmable gate array (FPGA) device, or (e) an accelerator comprising a system on chip (SOC).

5. The method as recited in claim 1 , wherein a first execution platform of the plurality of execution platforms at which the first graphics analytics algorithm is performed comprises a plurality of threads including a first thread and a second thread, the method further comprising:

storing, by the first thread in a first portion of a data structure, wherein the first portion corresponds to a first vertex of the graph data set, a symbol indicating that an operation is not to be performed on the first vertex; and

determining, by the second thread, based on examination of the first portion, not to perform the operation on the first vertex.

6. The method as recited in claim 1 , further comprising:

receiving, via a programmatic interface of a graph analytics service, an indication of the one or more access permissions.

7. The method as recited in claim 6 , wherein the indication of the one or more access permissions comprises a Boolean combination of a plurality of authorization tokens.

8. The method as recited in claim 1 , wherein said generating the bit vector comprises:

aggregating a plurality of portions of the bit vector, including a first portion generated at a first computing device, and a second portion generated at a second computing device.

9. The method as recited in claim 1 , wherein the bit vector comprises a first bit indicating an access permission granted to a first edge of the graph data set, wherein the performing the algorithm comprises determining, based at least in part on the first bit, whether an operation associated with the first edge is to be performed.

10. The method as recited in claim 1 , further comprising:

storing the bit vector; and

utilizing the bit vector during an execution of a second graph analytics algorithm.

11. A system, comprising:

memory storing program instructions that, if executed by one or more processors, cause the one or more processors to:

generate a first bit vector representing one or more access permissions associated with respective vertices of a graph data set;

read at least a portion of the first bit vector;

perform a first graph analytics algorithm, wherein to perform the first graph analytics algorithm, the instructions, if executed, cause the one or more processors to determine, based at least in part on a portion of the first bit vector, whether access permission to one or more vertices of the graph data set is granted; and

transmit to a client, via a network, results of execution of the algorithm based on the one or more vertices of the graph data set to which the access permission was granted.

12. The system as recited in claim 11 , wherein to perform the first graph analytics algorithm, the instructions, if executed, cause the one or more processors to include, based at least in part on determining that the access permission is granted, a first vertex of the one or more vertices in a frontier of vertices generated in an iteration of the first graph analytics algorithm.

13. The system as recited in claim 11 , to perform the first graph analytics algorithm, the instructions, if executed, cause the one or more processors to perform, based at least in part on determining that the access permission is granted, a user defined function.

14. The system as recited in claim 11 , wherein at least a portion of the first graph analytics algorithm is performed at a first execution platform comprising one or more of: (a) a graphical processing unit (GPU), (b) a central processing unit (CPU), (c) a device comprising at least one CPU and at least one GPU, (d) a field programmable gate array (FPGA) device, or (e) an accelerator comprising a system on chip (SOC).

15. The system as recited in claim 11 , wherein the first bit vector represents one or more access permissions granted to a first entity, wherein the instructions, if executed, cause the one or more processors to:

generate a second bit vector representing one or more access permissions which are (a) granted to a second entity and (b) associated with one or more portions of the graph data set; and

utilize the second bit vector to perform the first graph analytics algorithm on behalf of the second entity.

16. A non-transitory computer-accessible storage medium storing program instructions that when executed on one or more processors cause the one or more processors to perform a method comprising:

generating a bit vector representing one or more access permissions associated with respective vertices of a graph data set;

performing a first graph analytics algorithm, wherein the performing includes determining, based at least in part on a portion of the bit vector, whether to perform an operation on one or more vertices of the graph data set; and

transmitting to a client, via a network, results of execution of the operation based on the one or more vertices of the graph data set to which the access permission was granted.

17. The non-transitory computer-accessible storage medium as recited in claim 16 , wherein the operation comprises including a first vertex of the one or more vertices in a frontier of vertices generated in an iteration of the first graph analytics algorithm.

18. The non-transitory computer-accessible storage medium as recited in claim 16 , wherein the operation comprises executing a user defined function.

19. The non-transitory computer-accessible storage medium as recited in claim 16 , wherein the first graph analytics algorithm comprises one or more of: (a) a breadth first search algorithm, (b) a single source shortest path algorithm, (c) a page ranking algorithm or (d) a connected components algorithm.

20. The non-transitory computer-accessible storage medium as recited in claim 16 , wherein the method comprises:

acquiring at least a first execution platform from a network-accessible computing service of a provider network; and

causing at least a portion of the first graph analytics algorithm to be performed at the first execution platform.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 5, 2017
From: BEBEE, BRADLEY R.; THOMPSON, BRYAN B.
To: AMAZON TECHNOLOGIES, INC.
Reel/Frame 042251/0016 →
Cited By (106)
US 12,206,696 US 12,242,626 US 12,244,621 US 12,261,866 US 12,267,345 US 12,284,197 US 12,289,247 US 12,306,815 US 12,309,181 US 12,309,182 US 12,309,185 US 12,309,236 US 12,323,449 US 12,335,286 US 12,335,348 US 12,341,797 US 12,348,545 US 12,355,626 US 12,355,787 US 12,355,793 US 12,363,148 US 12,368,745 US 12,368,746 US 12,368,747 US 12,375,573 US 12,381,901 US 12,386,802 US 12,395,573 US 12,401,669 US 12,405,849 US 12,407,701 US 12,407,702 US 12,418,552 US 12,418,555 US 12,423,615 US 12,425,428 US 12,425,430 US 12,445,474 US 12,452,272 US 12,452,279 US 12,457,231 US 12,463,994 US 12,463,995 US 12,463,996 US 12,463,997 US 12,464,003 US 12,470,577 US 12,470,578 US 12,483,576 US 12,489,770 US 12,489,771 US 12,495,052 US 12,500,910 US 12,500,911 US 12,500,912 US 12,505,126 US 12,506,762 US 12,511,110 US 12,513,221 US 12,526,297 US 12,537,836 US 12,537,837 US 12,537,839 US 12,537,840 US 12,537,884 US 12,547,836 US 12,549,575 US 12,549,577 US 12,556,548 US 12,556,559 US 12,563,060 US 12,563,064 US 12,563,071 US 12,563,072 US 12,580,932 US 12,580,934 US 12,580,935 US 12,580,936 US 12,580,937 US 12,587,553 US 12,592,950 US 12,598,205 US 12,613,930 US 12,615,271 US 12,621,324 US 12,621,329 US 12,627,686 US 12,627,687 US 12,627,690 US 12,634,312 US 12,634,376 US 12,652,302 US 12,659,325 US 12,659,326 US 12,659,327 US 12,659,333 US 12,676,874 US 12,689,638 US 12,689,640 US 12,695,768 US 12,706,931 US 12,706,932 US 12,706,933 US 12,706,980 US 12,712,897 US 12,719,896