Patents by Inventor Hassan Chafi

Hassan Chafi 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).

  • Patent number: 11456946
    Abstract: A pattern matching engine interprets a query into a data structure resembling a finite state machine. Vertices in the query pattern are treated as states or stages, while edges connecting them are treated as state transitions or hops. To match the full pattern, the first stage is first matched by applying vertex filters, if any. If the vertex is eligible, its edges that satisfy the edge filters, if any, are followed to move to the neighbors that can potentially produce results, thus progressing to the next stage. This process is repeated; if all stages are matched, then the whole pattern has been matched successfully.
    Type: Grant
    Filed: June 11, 2020
    Date of Patent: September 27, 2022
    Assignee: Oracle International Corporation
    Inventors: Petar Tonkovic, Vasileios Trigonakis, Tomas Faltin, Sungpack Hong, Hassan Chafi
  • Publication number: 20220284056
    Abstract: Techniques are provided for updating in-memory property graphs in a fast manner, while minimizing memory consumption. A graph is represented as delta compressed sparse rows (CSR), in which its data structure stores forward edge offsets that map reverse edges to forward edges, enabling fast traversals of graph edges in forward and reverse directions. To support fast graph updates, delta logs are used to store changes to the graph. In an embodiment, a base version of the graph data structure is initially loaded or created, and subsequent versions of the graph are created from the reference to the initial graph and a delta log data structure that records the changes compared to the base version of the graph.
    Type: Application
    Filed: March 5, 2021
    Publication date: September 8, 2022
    Inventors: Damien Hilloulin, Vasileios Trigonakis, Alexander Weld, Valentin Venzin, Sungpack Hong, Hassan Chafi
  • Publication number: 20220222081
    Abstract: A method includes determining, whether: a first case is applicable, in which a first number of values of a first dataset and a second number of values of a second dataset total less than or equal to a third number of values of a register; a second case is applicable, in which the first and second numbers total more than the third number, and the first or second number is less than or equal to half of the third number; or a third case is applicable, in which the first and second numbers total more than the third number, and each of the first and second numbers is greater than half of the third number. In response to the determining, the method includes selectively loading to the register a first portion of the first dataset and a second portion of the second dataset, and performing conflict-detection for identifying one or more common values in the register loaded with the first portion and the second portion.
    Type: Application
    Filed: January 14, 2021
    Publication date: July 14, 2022
    Inventors: Benjamin Schlegel, Matthias Brantner, Hassan Chafi
  • Patent number: 11385889
    Abstract: Herein are machine learning (ML) feature processing and analytic techniques to detect anomalies in parse trees of logic statements, database queries, logic scripts, compilation units of general-purpose programing language, extensible markup language (XML), JAVASCRIPT object notation (JSON), and document object models (DOM). In an embodiment, a computer identifies an operational trace that contains multiple parse trees. Values of explicit features are generated from a single respective parse tree of the multiple parse trees of the operational trace. Values of implicit features are generated from more than one respective parse tree of the multiple parse trees of the operational trace. The explicit and implicit features are stored into a same feature vector. With the feature vector as input, an ML model detects whether or not the operational trace is anomalous, based on the explicit features of each parse tree of the operational trace and the implicit features of multiple parse trees of the operational trace.
    Type: Grant
    Filed: December 4, 2019
    Date of Patent: July 12, 2022
    Assignee: Oracle International Corporation
    Inventors: Pit Fender, Benjamin Schlegel, Matthias Brantner, Harshad Kasture, Hassan Chafi
  • Publication number: 20220215055
    Abstract: Techniques are provided for finding unused vertex and edge identifiers (IDs) in a distributed graph engine. A run-time data structure may be built during the loading of the graph. The data structure identifies unavailable IDs that are associated with graph entities of the graph. The data structure is traversed to determine one or more ranges of free IDs. Unused IDs are generated from the ranges.
    Type: Application
    Filed: January 4, 2021
    Publication date: July 7, 2022
    Inventors: Arnaud Delamare, Vasileios Trigonakis, Yahya Ez-Zainabi, Sungpack Hong, Hassan Chafi
  • Patent number: 11379232
    Abstract: Techniques are provided for obtaining generic vectorized d-heaps for any data type for which horizontal aggregation SIMD instructions are not available, including primitive as well as complex data types. A generic vectorized d-heap comprises a prefix heap and a plurality of suffix heaps. Each suffix heap of the plurality of suffix heaps comprises a d-heap. A plurality of key values stored in the heap are split into key prefix values and key suffix values. Key prefix values are stored in the prefix heap and key suffix values are stored in the plurality of suffix heaps. Each entry in the prefix heap includes a key prefix value of the plurality of key values and a reference to the suffix heap of the plurality of suffix heaps that includes all key suffix values of the plurality of key values that share the respective key prefix value.
    Type: Grant
    Filed: April 30, 2019
    Date of Patent: July 5, 2022
    Assignee: Oracle International Corporation
    Inventors: Benjamin Schlegel, Harshard Kasture, Pit Fender, Matthias Brantner, Hassan Chafi
  • Patent number: 11379200
    Abstract: Techniques are described for compiling source code to generate graph-optimized intermediate representation instructions of the source code that implement techniques for optimizing algorithms for graph analysis. A compiler, executing on a computing device, receives source code instructions for a program to be compiled. The compiler identifies a target expression, within the source code instructions, that invokes a particular method call on a particular object type. The target expression contains a target block of code to be translated into an intermediate representation using graph-optimized compilation techniques. The compiler generates a block of graph-specific intermediate representation instructions to replace the target expression. The compiler compiles the source code instructions to generate intermediate representation instructions, where the intermediate representation instructions include the block of graph-specific intermediate representation instructions in place of the target expression.
    Type: Grant
    Filed: January 30, 2020
    Date of Patent: July 5, 2022
    Assignee: Oracle International Corporation
    Inventors: Martijn Dwars, Martin Sevenich, Sungpack Hong, Hassan Chafi, Guido Wachsmuth
  • Patent number: 11363093
    Abstract: Techniques are described herein for evaluating graph processing tasks using a multi-stage pipelining communication mechanism. In a multi-node system comprising a plurality of nodes, each node of said plurality of nodes executes a respective communication agent object. The respective communication agent object comprises: a sender lambda function is configured to perform sending operations and generate source messages based on the sender operations. An intermediate lambda function is configured to read source messages marked for a node, perform intermediate operations based on the source messages and generate intermediate messages based on the intermediate operations. A final receiver lambda function configured to: read intermediate messages marked for said each node, perform final operations based on the intermediate messages and generate a final result based on the final operations.
    Type: Grant
    Filed: May 1, 2018
    Date of Patent: June 14, 2022
    Assignee: ORACLE INTERNATIONAL CORPORATION
    Inventors: Jinsu Lee, Thomas Manhardt, Sungpack Hong, Petr Koupy, Hassan Chafi, Vasileios Trigonakis
  • Patent number: 11360976
    Abstract: 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: Grant
    Filed: August 30, 2018
    Date of Patent: June 14, 2022
    Assignee: Oracle International Corporation
    Inventors: 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
  • Publication number: 20220179859
    Abstract: Systems and methods for improving evaluation of graph queries through depth first traversals are described herein. In an embodiment, a multi-node system evaluates against graph data a graph query that specifies a particular pattern to match by determining, at a first node of the multi-node system, in a particular instance of evaluating the graph query, that one or more first vertices on the first node match a first portion of the graph query and that a second vertex that is to be evaluated next is stored on a second node separate from the first node. In response to determining that the next vertex to be evaluated is stored on the second node separate from the first node, the first node generates a message to the second node comprising one or more results of the first portion of the graph query based on the one or more first vertices, an identifier of the next vertex, and a current stage of evaluating the graph query.
    Type: Application
    Filed: December 9, 2020
    Publication date: June 9, 2022
    Inventors: Tomas Faltin, Vasileios Trigonakis, Jean-Pierre Lozi, Sungpack Hong, Hassan Chafi
  • Publication number: 20220129461
    Abstract: Techniques support graph pattern matching queries inside a relational database management system (RDBMS) that supports SQL execution. The techniques compile a graph pattern matching query into a SQL query that can then be executed by the relational engine. As a result, techniques enable execution of graph pattern matching queries on top of the relational engine by avoiding any change in the existing SQL engine.
    Type: Application
    Filed: October 26, 2020
    Publication date: April 28, 2022
    Inventors: Vlad Haprian, Laurent Daynes, Zhen Hua Liu, Lei Sheng, Hugo Kapp, Marco Arnaboldi, Jean-Pierre Lozi, Andrew Witkowski, Hassan Chafi, Sungpack Hong
  • Publication number: 20220129465
    Abstract: Techniques support graph pattern matching queries inside a relational database management system (RDBMS) that supports SQL execution. The techniques compile a graph pattern matching query into a SQL query that can then be executed by the relational engine. As a result, techniques enable execution of graph pattern matching queries on top of the relational engine by avoiding any change in the existing SQL engine.
    Type: Application
    Filed: October 26, 2020
    Publication date: April 28, 2022
    Inventors: Vlad Haprian, Laurent Daynes, Zhen Hua Liu, Lei Sheng, Hugo Kapp, Marco Arnaboldi, Jean-Pierre Lozi, Andrew Witkowski, Hassan Chafi, Sungpack Hong
  • Publication number: 20220129451
    Abstract: Techniques support graph pattern matching queries inside a relational database management system (RDBMS) that supports SQL execution. The techniques compile a graph pattern matching query into a SQL query that can then be executed by the relational engine. As a result, techniques enable execution of graph pattern matching queries on top of the relational engine by avoiding any change in the existing SQL engine.
    Type: Application
    Filed: October 26, 2020
    Publication date: April 28, 2022
    Inventors: Vlad Haprian, Laurent Daynes, Zhen Hua Liu, Lei Sheng, Hugo Kapp, Marco Arnaboldi, Jean-Pierre Lozi, Andrew Witkowski, Hassan Chafi, Sungpack Hong
  • Publication number: 20220114178
    Abstract: Techniques are provided for processing a graph query by exploiting an in-memory graph index and minimizing the number of storage accesses needed to project properties of generated paths. A predefined number of paths from a graph query runtime is accumulated, using different data structures, before executing storage accesses necessary to retrieve all properties needed. A first data structure stores all paths from the graph query runtime that hit cache(s) entirely. A second data structure stores paths that do not hit caches at any level or only a subset of the levels does. Once any of these data structures are full, result rows are produced based on the two data structures prior to extracting more paths from the graph query runtime.
    Type: Application
    Filed: January 29, 2021
    Publication date: April 14, 2022
    Inventors: Vlad Ioan Haprian, Mikael Gonzalez Morales, Laurent Daynes, Zhen Hua Liu, Danica Porobic, Marco Arnaboldi, Jean-Pierre Lozi, Hugo Kapp, Sungpack Hong, Shasank Kisan Chavan, Hassan Chafi
  • Patent number: 11294894
    Abstract: Herein are techniques that extend a software system to embed new guest programing languages (GPLs) that interoperate in a transparent, modular, and configurable way. In embodiments, a computer inserts an implementation of a GPL into a deployment of the system. A command registers the GPL, define subroutines for the GPL, generates a guest virtual environment, and adds a binding of a dependency to a guest module. In an embodiment, a native programing language invokes a guest programing language to cause importing intra- or inter-language dependencies. An embodiment defines a guest object that is implemented in a first GPL and accessed from a second GPL. In an embodiment, dependencies are retrieved from a virtual file system having several alternative implementation mechanisms that include: an archive file or an actual file system, and a memory buffer or a column of a database table.
    Type: Grant
    Filed: August 30, 2019
    Date of Patent: April 5, 2022
    Assignee: Oracle International Corporation
    Inventors: Pit Fender, Harshad Kasture, Alexander Ulrich, Benjamin Schlegel, Matthias Brantner, Hassan Chafi
  • Patent number: 11294899
    Abstract: Techniques herein optimally distribute graph query processing across heterogeneous tiers. In an embodiment, a computer receives a graph query to extract a query result (QR) from a graph in a database operated by a database management system (DBMS). The graph has vertices interconnected by edges. Each vertex has vertex properties, and each edge has edge properties. The computer decomposes the graph query into filter expressions (FE's). Each FE is processed as follows. A filtration tier to execute the FE is selected from: the DBMS which sends at least the QR to a stream, a stream evaluator that processes the stream as it arrives without waiting for the entire QR to arrive and that stores at least the QR into memory, and an in-memory evaluator that identifies the QR in memory. A translation of the FE executes on the filtration tier to obtain vertices and/or edges that satisfy the FE.
    Type: Grant
    Filed: August 22, 2019
    Date of Patent: April 5, 2022
    Assignee: Oracle International Corporation
    Inventors: Alexander Weld, Korbinian Schmid, Sungpack Hong, Hassan Chafi, Hyungyu Shin
  • Patent number: 11256750
    Abstract: Techniques herein accelerate graph querying by caching neighbor vertices (NVs) of super-node vertices. In an embodiment, a computer receives a graph query (GQ) to extract result paths from a graph in a database. The GQ has a sequence of query vertices (QVs) and a sequence of query edges (QEs). The computer successively traverses each QE and QV to detect paths of the graph that match the GQ. Traversing each QE and QV entails retrieving NVs of a current graph vertex (CGV) of a current traversal path. If the CGV is a key in a cache whose keys are graph vertices having an excessive degree, then the computer retrieves NVs from the cache. Otherwise, the computer retrieves NVs from the database. If the degree is excessive, and the CGV is not a key in the cache, then the computer stores, into the cache, the CGV as a key for the NVs.
    Type: Grant
    Filed: August 14, 2019
    Date of Patent: February 22, 2022
    Assignee: Oracle International Corporation
    Inventors: Oskar Van Rest, Jinha Kim, Xuming Meng, Sungpack Hong, Hassan Chafi
  • Publication number: 20220050840
    Abstract: Techniques described herein allow for accurate translation of natural language (NL) queries to declarative language. A syntactic dependency parsing tree is generated for an NL query, which is used to map tokens in the query to logical data model concepts. Relationship-type mappings are completed based on relationship constraints. Final mappings are identified for any relationship tokens that are associated with multiple candidate mappings by identifying which candidate mappings have the lowest cost metrics. An NL query-specific query graph is generated based on the mapping data for the NL query and the logical data model. The query graph represents an NL query-specific version of the logical data model where grammatical dependencies between NL query words are translated to the query graph. A query graph is annotated with information, from the mapping data, that is not represented paths in the query graph. The query graph is used generate a computer-executable translation of the NL query.
    Type: Application
    Filed: August 12, 2020
    Publication date: February 17, 2022
    Inventors: Alberto Parravicini, Jinha Kim, Sungpack Hong, Matthias Brantner, Hassan Chafi
  • Patent number: 11250059
    Abstract: Techniques are described herein for early pruning of potential graph query results. Specifically, based on determining that property values of a path through graph data cannot affect results of a query, the path is pruned from a set of potential query solutions prior to fully exploring the path. Early solution pruning is performed on prunable queries that project prunable functions including MIN, MAX, SUM, and DISTINCT, the results of which are not tied to a number of paths explored for query execution. A database system implements early solution pruning for a prunable query based on intermediate results maintained for the query during query execution. Specifically, when a system determines that property values of a given potential solution path cannot affect the query results reflected in intermediate results maintained for the query, the path is discarded from the set of possible query solutions without further exploration of the path.
    Type: Grant
    Filed: January 9, 2020
    Date of Patent: February 15, 2022
    Assignee: ORACLE INTERNATIONAL CORPORATION
    Inventors: Arnaud Delamare, Vasileios Trigonakis, Jean-Pierre Lozi, Vlad Ioan Haprian, Petr Koupy, Hassan Chafi, Sungpack Hong
  • Patent number: 11231935
    Abstract: Vectorized sorted-set intersection is performed using conflict-detection single instruction, multiple data (SIMD) instructions. A first ordered subset of values of a first ordered set of distinct values and a second ordered subset of values of a second ordered set of distinct values is loaded into a register. A first value in the register that matches another value in the register (i.e., common values) is identified by performing an SIMD instruction. The first value is then stored in a result set representing a merge-sort result set between the first ordered set of distinct values and the second ordered set of distinct values.
    Type: Grant
    Filed: April 13, 2020
    Date of Patent: January 25, 2022
    Assignee: Oracle International Corporation
    Inventors: Benjamin Schlegel, Pit Fender, Matthias Brantner, Hassan Chafi