Graph analytic engine that implements efficient transparent remote access over representational state transfer

US10506016B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-10506016-B2
Application numberUS-201615159263-A
CountryUS
Kind codeB2
Filing dateMay 19, 2016
Priority dateMay 19, 2016
Publication dateDec 10, 2019
Grant dateDec 10, 2019

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

Techniques herein decouple available results, from graph analysis execution, to adapt to various deployment configurations. In an embodiment, a graph engine is deployed that has multiple mutually-exclusive configuration modes that include being embedded within a software application, centrally serving software applications, or distributed amongst a cluster of computers. Based on a current configuration mode of the graph engine, a software application receives or generates an analysis request to process a graph. The software application provides the analysis request to the graph engine in exchange for access to a computational future, of the graph engine, that is based on the analysis request and the graph. Based on a proxy of said computational future, the software application accesses a result of the analysis request. In an embodiment, a remote proxy exchanges representational state transfer (REST) messages. Network mechanisms, such as transport control protocol (TCP) and hypertext transfer protocol (HTTP), provide enhanced remoting.

First claim

Opening claim text (preview).

What is claimed is: 1. A method comprising: deploying a graph engine that has at least two separate configuration modes of: embedded within a software application on a single client computer, a single computer centrally serving a plurality of remote software applications, or distributed amongst a plurality of computers; based on a current configuration mode of said graph engine, a client providing an analysis request, to generate a combined result that contains a plurality of data items of a graph, in exchange for access to a computational future, of said graph engine, that is based on said analysis request and said graph; said client using said computational future to receive a remote proxy of an iterator of the plurality of data items of said combined result; said remote proxy sending, to said graph engine, an iteration request that identifies said iterator of the plurality of data items of said combined result; said graph engine sending, to said remote proxy, a response that contains a fixed amount of said plurality of data items of the combined result for said client, wherein said fixed amount exceeds one. 2. The method of claim 1 wherein: said current configuration mode is one of: a single computer centrally serving a plurality of remote software applications or distributed amongst a plurality of computers; providing said analysis request comprises said remote proxy sending a first representational state transfer (REST) request that contains said analysis request; using said computational future comprises said remote proxy sending a second REST request that identifies said computational future. 3. The method of claim 2 wherein: sending a second REST request comprises sending an HTTP request over a transport control protocol (TCP) connection; sending a second REST response comprises: said graph engine preserving said TCP connection while said computational future is unready; sending an HTTP response over said TCP connection. 4. The method of claim 2 wherein sending said second REST request times out, and said remote proxy automatically resends said second REST request. 5. The method of claim 2 further comprising: sending a second REST response that comprises an HTTP status code that indicates an error; in response to using said remote proxy, throwing an exception based on said HTTP status code. 6. The method of claim 1 wherein: said current configuration mode is embedded within a software application on a single client computer; said graph engine comprises a weak reference to said iterator that does not prevent reclamation of said iterator. 7. The method of claim 6 wherein: said current configuration mode is one of a single computer centrally serving a plurality of remote software applications or distributed amongst a plurality of computers; the method further comprises: said software application notifying said graph engine that said software application no longer needs said iterator, and said graph engine disposing said iterator. 8. The method of claim 1 wherein: the method further comprises said software application exchanging a second analysis request to process said graph in exchange for a second computational future of said graph engine; said second analysis request identifies said iterator of the plurality of data items of said combined result. 9. The method of claim 1 further comprising said graph engine cancelling an analysis request in response to receiving a cancellation request that identifies said analysis request. 10. The method of claim 1 wherein: said analysis request comprises a graph query or an analysis script; the method further comprises said graph engine compiling, based on said current configuration mode, and executing said analysis request. 11. The method of claim 1 further comprising a software application of said plurality of remote software applications invoking at least one analysis of: community detection, PageRank, or shortest path finding. 12. The method of claim 1 wherein: exchanging said analysis request in exchange for said computational future comprises said graph engine appending said analysis request onto a queue; the method further comprises said graph engine removing said analysis request from said queue for execution by a thread of a thread pool. 13. The method of claim 1 wherein: said current configuration mode is one of: a single computer centrally serving a plurality of remote software applications or distributed amongst a plurality of computers; the method further comprises a second software application exchanging a second analysis request to process said graph in exchange for a second computational future of said graph engine; said computational future and said second computational future are unready at a same time. 14. One or more non-transitory computer-readable media storing instructions that, when executed by one or more processors, cause: deploying a graph engine that has at least two separate configuration modes of: embedded within a software application on a single client computer, a single computer centrally serving a plurality of remote software applications, or distributed amongst a plurality of computers; based on a current configuration mode of said graph engine, a client providing an analysis request, to generate a combined result that contains a plurality of data items of a graph, in exchange for access to a computational future, of said graph engine, that is based on said analysis request and said graph; said client using said computational future to receive a remote proxy of an iterator of the plurality of data items of said combined result; said remote proxy sending, to said graph engine, an iteration request that identifies said iterator of the plurality of data items of said combined result; said graph engine sending, to said remote proxy, a response that contains a fixed amount of said plurality of data items of the combined result for said client, wherein said fixed amount exceeds one. 15. The one or more non-transitory computer-readable media of claim 14 wherein: said current configuration mode is one of: a single computer centrally serving a plurality of remote software applications or distributed amongst a plurality of computers; providing said analysis request comprises said remote proxy sending a first representational state transfer (REST) request that contains said analysis request; using said computational future comprises said remote proxy sending a second REST request that identifies said computational future. 16. The one or more non-transitory computer-readable media of claim 14 wherein said graph engine comprises a weak reference to said iterator that does not prevent reclamation of said iterator. 17. The one or more non-transitory computer-readable media of claim 14 wherein: the instructions further cause said software application exchanging a second analysis request to process said graph in exchange for a second computational future of said graph engine; said second analysis request identifies said iterator of the plurality of data items of said combined result. 18. The one or more non-transitory computer-readable media of claim 14 wherein: said current configuration mode is one of: a single computer centrally serving a plurality of remote software applications or distributed amongst a plurality of computers; the instructions further cause a second software application exchanging a second analysis request to process said graph in exchange for a second computational future of said graph engin

Assignees

Inventors

Classifications

  • H04L67/02Primary

    based on web technology, e.g. hypertext transfer protocol [HTTP] · CPC title

  • Graphs; Linked lists (G06F16/9027 takes precedence) · CPC title

  • Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP] · CPC title

  • specially adapted for terminals or networks with limited capabilities; specially adapted for terminal portability · CPC title

  • Electricity · mapped topic

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US10506016B2 cover?
Techniques herein decouple available results, from graph analysis execution, to adapt to various deployment configurations. In an embodiment, a graph engine is deployed that has multiple mutually-exclusive configuration modes that include being embedded within a software application, centrally serving software applications, or distributed amongst a cluster of computers. Based on a current confi…
Who is the assignee on this patent?
Oracle Int Corp
What technology area does this patent fall under?
Primary CPC classification H04L67/02. Mapped technology areas include Electricity.
When was this patent published?
Publication date Tue Dec 10 2019 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 12 related publications on this page (citations in our corpus or others sharing the same primary CPC).