Patents by Inventor Laurent Daynes
Laurent Daynes has filed for patents to protect the following inventions. This listing includes patent applications that are pending as well as patents that have already been granted by the United States Patent and Trademark Office (USPTO).
-
Publication number: 20210182285Abstract: An in-memory graph query runtime is integrated inside a database management system and is capable of performing simple patter-matching queries against homogeneous graphs. The runtime efficiently combines breadth-first (BFS) and depth-first (DFS) neighbor traversal algorithms to achieve a hybrid runtime that takes the best from both sides. As a result, the hybrid runtime is able to process arbitrarily large queries with a fixed amount of memory, optimizing for memory locality.Type: ApplicationFiled: December 11, 2019Publication date: June 17, 2021Inventors: Vlad Haprian, Laurent Daynes, Shasank K. Chavan, Jean-Pierre Lozi, Vasileios Trigonakis, Sungpack Hong, Marco Arnaboldi, Ciprian Baetu
-
Publication number: 20210182316Abstract: An in-memory graph query runtime is integrated inside a database management system and is capable of performing simple patter-matching queries against homogeneous graphs. The runtime efficiently combines breadth-first (BFS) and depth-first (DFS) neighbor traversal algorithms to achieve a hybrid runtime that takes the best from both sides. As a result, the hybrid runtime is able to process arbitrarily large queries with a fixed amount of memory, optimizing for memory locality.Type: ApplicationFiled: December 11, 2019Publication date: June 17, 2021Inventors: Vlad Haprian, Laurent Daynes, Shasank K. Chavan, Jean-Pierre Lozi, Vasileios Trigonakis, Sungpack Hong, Marco Arnaboldi, Ciprian Baetu
-
Patent number: 10990594Abstract: Database techniques are provided that use state machines to manage polyglot subroutine bindings for database commands. In an embodiment, a computer receives a database command that contains call sites (CSs). Each CS is associated with a user defined logic (UDL). The computer associates an initial operational state with each of the CSs. During a first invocation of a particular CS, the CS becomes initialized and transitions to an optimized state that is configured for streamlined invocation of the UDL. The UDL is invoked to contribute data to a partial result for the database command. Eventually, command execution stalls and causes the CS to transition to an unready state, which entails releasing shared resources. Later execution resumes and during another invocation of the CS, resources are reacquired, the CS is made ready and transitioned back to the optimized state. The CS may again be repeatedly invoked while revisiting the optimized state.Type: GrantFiled: May 4, 2018Date of Patent: April 27, 2021Assignee: Oracle International CorporationInventors: Anantha Kiran Kandukuri, Laurent Daynes, Hassan Chafi
-
Publication number: 20210064619Abstract: The present invention relates to execution optimization of database queries. Herein are techniques for optimal execution based on query interpretation by translation to a domain specific language (DSL), with optimizations such as partial evaluation, abstract syntax tree (AST) rewriting, just in time (JIT) compilation, dynamic profiling, speculative logic, and Futamura projection. In an embodiment, a database management system (DBMS) that is hosted on a computer generates a query tree that represents a database query that contains an expression that is represented by a subtree of the query tree. The DBMS generates a sequence of DSL instructions that represents the subtree. The sequence of DSL instructions is executed to evaluate the expression during execution of the database query. In an embodiment, an AST is generated from the sequence of DSL instructions. In an embodiment, the DSL AST is optimally rewritten based on a runtime feedback loop that includes dynamic profiling information.Type: ApplicationFiled: August 29, 2019Publication date: March 4, 2021Inventors: PIT FENDER, ALEXANDER ULRICH, LAURENT DAYNES, MATTHIAS BRANTNER, BASTIAN HOSSBACH, BENJAMIN SCHLEGEL, HASSAN CHAFI
-
Patent number: 10684873Abstract: Computer-implemented techniques described herein provide efficient data decoding using runtime specialization. In an embodiment, a method comprises a virtual machine executing a body of code of a dynamically typed language, wherein executing the body of code includes: querying a relational database, and in response to the query, receiving table metadata indicating data types of one or more columns of a first table in the relational database. In response to receiving the table metadata: for a first column of the one or more columns, generating decoding machine code to decode the first column based on the data type of the first column, and executing the decoding machine code to decode the first column of the one or more columns.Type: GrantFiled: June 12, 2018Date of Patent: June 16, 2020Assignee: ORACLE INTERNATIONAL CORPORATIONInventors: Bastian Hossbach, Jürgen Christ, Laurent Daynes, Matthias Brantner, Hassan Chafi, Christian Humer
-
Patent number: 10592264Abstract: A method may include generating, from an expression, an expression tree including an arithmetic operation and conversion operations each converting an operand of the arithmetic operation from an initial decimal format to an optimized decimal format. The initial decimal format may include a shape. The method may further include at runtime, evaluating the arithmetic operation with initial operands represented in the initial decimal format, and specializing one of the conversion operations according to the shape of the corresponding initial operand.Type: GrantFiled: May 16, 2018Date of Patent: March 17, 2020Assignee: Oracle International CorporationInventors: Alexey Karyakin, Laurent Daynes
-
Publication number: 20190377589Abstract: Computer-implemented techniques described herein provide efficient data decoding using runtime specialization. In an embodiment, a method comprises a virtual machine executing a body of code of a dynamically typed language, wherein executing the body of code includes: querying a relational database, and in response to the query, receiving table metadata indicating data types of one or more columns of a first table in the relational database. In response to receiving the table metadata: for a first column of the one or more columns, generating decoding machine code to decode the first column based on the data type of the first column, and executing the decoding machine code to decode the first column of the one or more columns.Type: ApplicationFiled: June 12, 2018Publication date: December 12, 2019Inventors: Bastian Hossbach, Jürgen Christ, Laurent Daynes, Matthias Brantner, Hassan Chafi, Christian Humer
-
Publication number: 20190354391Abstract: A method may include generating, from an expression, an expression tree including an arithmetic operation and conversion operations each converting an operand of the arithmetic operation from an initial decimal format to an optimized decimal format. The initial decimal format may include a shape. The method may further include at runtime, evaluating the arithmetic operation with initial operands represented in the initial decimal format, and specializing one of the conversion operations according to the shape of the corresponding initial operand.Type: ApplicationFiled: May 16, 2018Publication date: November 21, 2019Applicant: Oracle International CorporationInventors: Alexey Karyakin, Laurent Daynes
-
Publication number: 20190340284Abstract: Database techniques are provided that use state machines to manage polyglot subroutine bindings for database commands. In an embodiment, a computer receives a database command that contains call sites (CSs). Each CS is associated with a user defined logic (UDL). The computer associates an initial operational state with each of the CSs. During a first invocation of a particular CS, the CS becomes initialized and transitions to an optimized state that is configured for streamlined invocation of the UDL. The UDL is invoked to contribute data to a partial result for the database command. Eventually, command execution stalls and causes the CS to transition to an unready state, which entails releasing shared resources. Later execution resumes and during another invocation of the CS, resources are reacquired, the CS is made ready and transitioned back to the optimized state. The CS may again be repeatedly invoked while revisiting the optimized state.Type: ApplicationFiled: May 4, 2018Publication date: November 7, 2019Inventors: ANANTHA KIRAN KANDUKURI, LAURENT DAYNES, HASSAN CHAFI
-
Publication number: 20190065552Abstract: Herein are computerized techniques for deploying JavaScript and TypeScript stored procedures and user-defined functions into a database management system (DBMS). In an embodiment, a computer generates a SQL call specification for each subroutine of one or more subroutines encoded in a scripting language. The generating is based on a signature declaration of the subroutine. Each subroutine comprises a definition of a stored procedure or a user-defined function. The computer packages the definition and the SQL call specification of each subroutine into a single bundle file. The definition and the SQL call specification of each subroutine are deployed into a DBMS from the single bundle file. Eventually, the SQL call specification of at least one subroutine is invoked to execute the definition of the subroutine in the DBMS.Type: ApplicationFiled: August 30, 2018Publication date: February 28, 2019Inventors: MATTHIAS BRANTNER, LAURENT DAYNES, PIT FENDER, BENJAMIN SCHLEGEL, ANANTHA KIRAN KANDUKURI, HASSAN CHAFI, ERIC SEDLAR, JUERGEN CHRIST, LUCAS BRAUN, BASTIAN HOSSBACH, ALEXANDER ULRICH, HARSHAD KASTURE
-
Patent number: 8453128Abstract: A method for implementing a just-in-time compiler involves obtaining high-level code templates in a high-level programming language, where the high-level programming language is designed for compilation to an intermediate language capable of execution by a virtual machine, and where each high-level code template represents an instruction in the intermediate language. The method further involves compiling the high-level code templates to native code to obtain optimized native code templates, where compiling the high-level code templates is performed, prior to runtime, using an optimizing static compiler designed for runtime use with the virtual machine. The method further involves implementing the just-in-time compiler using the optimized native code templates, where the just-in-time compiler is configured to substitute an optimized native code template when a corresponding instruction in the intermediate language is encountered at runtime.Type: GrantFiled: September 28, 2007Date of Patent: May 28, 2013Assignee: Oracle America, Inc.Inventors: Laurent Daynes, Bernd J. Mathiske, Gregory M. Wright, Mario I. Wolczko
-
Patent number: 7945920Abstract: Disclosed techniques ensure that isolates that are attached to a shared object region will see appropriate class states. In response to an isolate's attempt to instantiate, in such a region, an object that is an instance of a particular class, a bootstrap class' identity is added to that region's bootstrap class list. In response to an isolate's attempt to attach to the region, each class that is both (a) in the region's associated bootstrap class list, and (b) not yet initialized for that isolate, is initialized for that isolate. Thus, those bootstrap classes are seen by that isolate as being in the “initialized” state. In response to an isolate's addition of a particular bootstrap class to the region's list of dependent bootstrap classes, the particular bootstrap class is initialized for each of the isolates attached to the region and for which the bootstrap class is not initialized yet.Type: GrantFiled: September 19, 2006Date of Patent: May 17, 2011Assignee: Oracle America, Inc.Inventors: Grzegorz Czajkowski, Laurent Daynes, Michal Wegiel
-
Patent number: 7840967Abstract: A technique for allowing isolated JAVA applications (“isolates”) to share data between themselves is disclosed. According to one aspect, a shared object region, to which multiple isolates may attach, is defined in memory. A shared class loader associated with the region is stored in the region in conjunction with the region's creation. Isolates that can access the region can invoke that loader. The region only comprises objects whose type is defined by a bootstrap class loader or the region's associated shared class loader. Runtime representations of classes defined by the shared class loader are stored in the region. Thus, the types of objects stored in the region are known to all isolates that attach to the region. Isolates attached to the region may enter the context of the region to access objects stored therein. Within the context of a shared object region, all allocation instructions automatically allocate to that region.Type: GrantFiled: July 6, 2006Date of Patent: November 23, 2010Assignee: Oracle America, Inc.Inventors: Grzegorz Czajkowski, Laurent Daynes, Michal Wegiel
-
Patent number: 7761872Abstract: A method is provided to virtualize a mutually exclusive lock of a shared immutable object. A determination is made whether any threads have locked the immutable shared object. If threads have not locked the immutable shared object, threads of different tasks are allowed to fast lock and unlock the immutable shared object. If a thread requests the lock of an immutable shared object and the object is fast locked by another thread when both threads are from an equivalent task, the lock of the immutable shared object is inflated and the requesting thread is blocked. If a thread requests the lock of an immutable shared object and the object is fast locked by another thread when both threads are from different tasks, the lock of the immutable shared object is virtualized and granted to the requesting thread.Type: GrantFiled: March 1, 2006Date of Patent: July 20, 2010Assignee: Oracle America, Inc.Inventors: Laurent Daynès, Grzegorz Czajkowski
-
Patent number: 7665075Abstract: A method for sharing dynamically compiled code between different class loaders is provided. In this method, loader-reentrant compiled code is produced from bytecodes by generating native code implementing a class initialization barrier when compiling bytecodes that require a class to be initialized, by generating native code implementing a link resolution barrier when compiling bytecodes that require a symbolic link to be resolved, and by generating code to retrieve loader-dependent data from a loader-dependent table when compiling bytecodes that use data computed from a resolved symbolic link.Type: GrantFiled: May 18, 2004Date of Patent: February 16, 2010Assignee: Sun Microsystems, Inc.Inventors: Laurent Daynes, Grzegorz Czajkowski
-
Patent number: 7644402Abstract: A method for reducing a usage of main memory by a first class loader and a second class loader is provided. The first class loader and the second class loader are capable of dynamically loading a class having a class file, and translating the class file into a first and a second class type, respectively. The method includes dividing a runtime representation of the first class type into a first loader independent part and a first loader dependent part. Also included is determining whether a runtime representation of the second class type can use the first loader independent part of the runtime representation of the first class type. If the first loader independent part can be used, the method includes generating a second loader dependent part of the runtime representation of the second class type using the first loader independent part of the runtime representation of the first class type.Type: GrantFiled: March 17, 2004Date of Patent: January 5, 2010Assignee: Sun Microsystems, Inc.Inventors: Laurent Daynes, Grzegorz Czajkowski
-
Patent number: 7584231Abstract: A method is provided enabling concurrent garbage collection of a young generation of a task with other tasks executing in a multi-tasking virtual machine. A first record is provided for each thread which has a value in an old generation memory after each thread successfully allocates an object in the old generation memory. A second record is provided for each thread which has a memory address value. Threads of a garbage-collecting task are stopped and an end of scan value for the task is calculated. Garbage collection on threads associated the garbage-collected task are permitted when one of two conditions involving either second records or second records and first records are met.Type: GrantFiled: May 25, 2006Date of Patent: September 1, 2009Assignee: Sun Microsystems, Inc.Inventors: Laurent Daynès, Andrew McClure, Grzegorz J. Czajkowski
-
Patent number: 7526760Abstract: A method for implementing virtual method invocation when a compiled code of an invoked method is shared between class types that share a runtime representation is provided. In this method, an entry of an inline cache is set to a reference to an object. Subsequently, instructions for calling code are modified and the inline cache is set to be in one of an unresolved state, a monomorphic state, a shared monomorphic state, or a megamorphic state. A computer readable medium and a system for implementing virtual method invocation are also described.Type: GrantFiled: November 5, 2004Date of Patent: April 28, 2009Assignee: Sun Microsystems, Inc.Inventors: Laurent Daynes, Grzegorz Czajkowski
-
Publication number: 20090089767Abstract: A method for implementing a just-in-time compiler involves obtaining high-level code templates in a high-level programming language, where the high-level programming language is designed for compilation to an intermediate language capable of execution by a virtual machine, and where each high-level code template represents an instruction in the intermediate language. The method further involves compiling the high-level code templates to native code to obtain optimized native code templates, where compiling the high-level code templates is performed, prior to runtime, using an optimizing static compiler designed for runtime use with the virtual machine. The method further involves implementing the just-in-time compiler using the optimized native code templates, where the just-in-time compiler is configured to substitute an optimized native code template when a corresponding instruction in the intermediate language is encountered at runtime.Type: ApplicationFiled: September 28, 2007Publication date: April 2, 2009Applicant: SUN MICROSYSTEMS, INC.Inventors: Laurent Daynes, Bernd J. Mathiske, Gregory M. Wright, Mario I. Wolczko
-
Patent number: 7406687Abstract: A computer implemented process for making a bytecode of a method sharable by a first class loader and a second class loader is provided. The first class loader and the second class loader are capable of dynamically loading a class having a class file, and translating the class file into first and second class types, respectively. The process includes dividing a runtime representation of the first class type into first loader independent and first loader dependent parts and determining whether a runtime representation of the second class type can use the first loader independent part. If the first loader independent part can be used by the runtime representation of the second class type, the process includes generating a second loader dependent part using the first loader independent part. Further included is performing a loader re-entrant interpretation of a bytecode of the method if the method is invoked.Type: GrantFiled: March 17, 2004Date of Patent: July 29, 2008Assignee: Sun Microsystems, Inc.Inventors: Laurent Daynes, Grzegorz Czajkowski