Overloading R language constructs with database engine constructs

US9418082B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9418082-B2
Application numberUS-201213434563-A
CountryUS
Kind codeB2
Filing dateMar 29, 2012
Priority dateMar 29, 2012
Publication dateAug 16, 2016
Grant dateAug 16, 2016

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.

A method, system, and computer program product for interfacing an R language client with a separate database engine environment. The method commences by interpreting an R language code fragment to identify and select R language constructs and transforming the R language constructs into queries or other database language constructs to execute within the database engine environment. The method further implements techniques for transmitting marshalled results (resulting from the execution of the database language constructs) back to the R client environment. In some situations, the marshalled results include an XML schema or DTD or another metadata description of the structure of the results. User conveniences in the form of transparent database query construction, and transparent exploitation of parallelism is achieved by determining the computation resource requirements of executable language constructs, and mapping the execution to one (or more) of, a local R client, a database engine, or a remote execution engine.

First claim

Opening claim text (preview).

What is claimed is: 1. A computer implemented method for transparently interfacing an R client environment with a separate database engine environment, the method comprising: receiving, at a computer, an R language code fragment from the R client environment; analyzing the R language code fragment to identify a first group of R language constructs; determining computation resource requirements of at least one R language construct selected from among the first group of R language constructs; in response to the determination of the computation resource requirements, determining whether to map a first selected R language construct from among the first group of R language constructs to the R client environment or the database engine environment, wherein mapping of the first selected R language construct is based at least in part on volume of data operated upon by the first selected R language construct and security restrictions for communications of data between the R client environment and the database engine environment; and upon determining that the first selected R language construct should be mapped to the database engine environment, transforming the first selected R language construct into a database query language construct to be executed in the database engine environment, wherein execution of the database query language construct is subject to the security restrictions for communications of the data, execution of the database query language comprises: identifying the database query language construct that pertains to raw data for which a R client user does not have access to for security reasons; requesting execution of the database query language construct to access the raw data, wherein the raw data is processed at the database engine environment to generate processed data without providing the R client user direct access to the raw data; and sending the processed data to the R client user. 2. The method of claim 1 , wherein mapping of the first selected R language construct is based at least in part on comparison of performance characteristics between the R client environment and the database engine environment. 3. The method of claim 2 , wherein the comparison of performance characteristics between the R client environment and the database engine environment comprises identifying available or estimated data statistics and comparing to specifications of capabilities of different engines to perform certain types of processing. 4. The method of claim 1 , further comprising executing a second selected R language construct on an instance of an R engine running at a remote execution engine. 5. The method of claim 1 , further comprising transmitting marshalled results, the marshalled results depending at least in part from an act of executing the first selected R language construct. 6. The method of claim 5 , wherein the transmitted marshalled results include a metadata description. 7. The method of claim 1 , further comprising: processing the first R language construct from among the first group of R language constructs to generate a first corresponding query without executing it; processing a second R language construct to generate a second corresponding query; generating an encompassing query based at least in part upon the first corresponding query and the second corresponding query; and executing the encompassing query only when a result is to be displayed in a tabular or graphical form in the R client environment. 8. A computer system for interfacing an R client environment with a separate database engine environment, comprising: a computer processor to execute a set of program code instructions; and a memory to hold the program code instructions, in which the program code instructions comprises program code to perform: receiving, at a computer, an R language code fragment from the R client environment; analyzing the R language code fragment to identify a first group of R language constructs; determining computation resource requirements of at least one R language construct selected from among the first group of R language constructs; in response to the determination of the computation resource requirements, determining whether to map a first selected R language construct from among the first group of R language constructs to the R client environment or the database engine environment, wherein mapping of the first selected R language construct is based at least in part on volume of data operated upon by the first selected R language construct and security restrictions for communications of data between the R client environment and the database engine environment; and upon determining that the first selected R language construct should be mapped to the database engine environment, transforming the first selected R language construct into a database query language construct to be executed in the database engine environment, wherein execution of the database query language construct is subject to the security restrictions for communications of the data, execution of the database query language comprises: identifying the database query language construct that pertains to raw data for which a R client user does not have access to for security reasons; requesting execution of the database query language construct to access the raw data, wherein the raw data is processed at the database engine environment to generate processed data without providing the R client user direct access to the raw data; and sending the processed data to the R client user. 9. The computer system of claim 8 , wherein mapping of the first selected R language construct is based at least in part on comparison of performance characteristics between the R client environment and the database engine environment. 10. The computer system of claim 9 , wherein the comparison of performance characteristics between the R client environment and the database engine environment comprises identifying available or estimated data statistics and comparing to specifications of capabilities of different engines to perform certain types of processing. 11. The computer system of claim 8 , the program code instructions further comprising program code to perform executing a second selected R language construct on an instance of an R engine running at a remote execution engine. 12. The computer system of claim 8 , the program code instructions further comprising program code to perform transmitting marshalled results, the marshalled results depending at least in part from an act of executing the first selected R language construct. 13. The computer system of claim 8 , the program code instructions further comprising program code to perform: processing the first R language construct from among the first group of R language constructs to generate a first corresponding query without executing it; processing a second R language construct to generate a second corresponding query; generating an encompassing query based at least in part upon the first corresponding query and the second corresponding query; and executing the encompassing query only when a result is to be displayed in a tabular or graphical form in the R client environment. 14. A computer program product embodied in a non-transitory computer readable medium, the non-transitory computer readable medium having stored thereon a sequence of instructions, which when executed by a processor causes the processor to execute a process to implement interfacing an R client environment with a separate database engine environment, the process comprising: receiving, at a computer, an R language code fragment from th

Assignees

Inventors

Classifications

  • Physics · mapped topic

  • Physics · mapped topic

  • G06F16/21Primary

    Design, administration or maintenance of databases · CPC title

  • G06F16/252Primary

    between a Database Management System and a front-end application · CPC title

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 US9418082B2 cover?
A method, system, and computer program product for interfacing an R language client with a separate database engine environment. The method commences by interpreting an R language code fragment to identify and select R language constructs and transforming the R language constructs into queries or other database language constructs to execute within the database engine environment. The method fu…
Who is the assignee on this patent?
Mukhin Denis B, Aboyoun Patrick, Sashikanth Vaishnavi, and 1 more
What technology area does this patent fall under?
Primary CPC classification G06F17/30289. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Aug 16 2016 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 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).