-
公开(公告)号:US11030073B2
公开(公告)日:2021-06-08
申请号:US16670681
申请日:2019-10-31
Applicant: Oracle International Corporation
Inventor: Sam Idicula , Kirtikar Kashyap , Arun Raghavan , Evangelos Vlachos , Venkatraman Govindaraju
IPC: G06F9/46 , G06F9/30 , G06F9/455 , G06F9/44 , G06F11/36 , G06F11/34 , G06F11/30 , G06F11/07 , G06F9/38 , G06F9/50
Abstract: Techniques are provided for redundant execution by a better processor for intensive dynamic profiling after initial execution by a constrained processor. In an embodiment, a system of computer(s) receives a request to profile particular runtime aspects of an original binary executable. Based on the particular runtime aspects and without accessing source logic, the system statically rewrites the original binary executable into a rewritten binary executable that invokes telemetry instrumentation that makes observations of the particular runtime aspects and emits traces of those observations. A first processing core having low power (capacity) performs a first execution of the rewritten binary executable to make first observations and emit first traces of the first observations. Afterwards, a second processing core performs a second (redundant) execution of the original binary executable based on the first traces. The second execution generates a detailed dynamic performance profile based on the second execution.
-
公开(公告)号:US10691722B2
公开(公告)日:2020-06-23
申请号:US15610171
申请日:2017-05-31
Applicant: Oracle International Corporation
Inventor: Shenoda Guirguis , Kantikiran Pasupuleti , Sabina Petride , Sam Idicula
IPC: G06F16/27 , G06F16/23 , G06F16/2455
Abstract: Techniques are described for efficient query processing and data change propagation to a secondary database system. The secondary database system may execute queries received at a primary database system. Database changes made at the primary system are copied to the secondary system. The primary system receives a query to be executed on either the primary system or the secondary system. The primary system determines whether to send the query to the secondary system based upon whether data objects stored within the secondary system have pending changes that need to be applied to the data objects. The pending changes are stored within in-memory journals within the primary system. The primary system scans for the pending changes to the data objects and sends the pending changes to the secondary system. The secondary system then receives and applies the pending changes to the data objects within the secondary system. Upon applying the pending changes, the secondary system executes the query.
-
公开(公告)号:US10585887B2
公开(公告)日:2020-03-10
申请号:US14673560
申请日:2015-03-30
Applicant: ORACLE INTERNATIONAL CORPORATION
Inventor: Khai Tran , Rajkumar Sen , Sabina Petride , Sam Idicula
IPC: G06F7/00 , G06F17/30 , G06F16/2453
Abstract: Techniques are described to evaluate an operation from an execution plan of a query to offload the operation to another database management system for less costly execution. In an embodiment, the execution plan is determined based on characteristics of the database management system that received the query for execution. One or more operations in the execution plan are then evaluated for offloading to another heterogeneous database management system. In a related embodiment, the offloading cost for each operation may also include communication cost between the database management systems. The operations that are estimated to be less costly to execute on the other database management system are then identified for offloading to the other database management system. In an alternative embodiment, the database management system generates permutations of execution plans for the same query, and similarly evaluates each permutation of the execution plans for offloading its one or more operations. Based on the total cost of each permutation, which may include offloading cost for one or more operations to another database management system, the least costly plan is selected for the query execution.
-
34.
公开(公告)号:US20200036954A1
公开(公告)日:2020-01-30
申请号:US16590289
申请日:2019-10-01
Applicant: Oracle International Corporation
Inventor: Venkatanathan Varadarajan , Arun Raghavan , Sam Idicula , Nipun Agarwal
IPC: H04N13/128 , G06T7/593
Abstract: Techniques described herein provide methods and systems for scalable distribution of computer vision workloads. In an embodiment, a method comprises receiving, at each of a first node and a second node of a distributed system of nodes, two images. The first image comprises a first set of pixels and the second image comprising a second set of pixels. The method further comprises shifting, at the first node, each pixel of the first set of pixels of the first image in a uniform direction by a first number of pixels to form a first shifted image and shifting, at the second node, each pixel of the first set of pixels of the first image in the uniform direction by a second number of pixels to form a second shifted image. The second number of pixels is different from the first number of pixels. The method further comprises overlaying each of the first shifted image and the second shifted image with the second image, such that each pixel of the first shifted image and second shifted image has a corresponding pixel in the second image. The method further comprises creating, at the first node, a first disparity map that indicates, for each pixel of the first shifted image, a level of similarity between the pixel of the first shifted image and the corresponding pixel in the second image and creating, at the second node, a second disparity map that indicates, for each pixel of the second shifted image, a level of similarity between the pixel of the second shifted image and the corresponding pixel in the second image.
-
公开(公告)号:US10394811B2
公开(公告)日:2019-08-27
申请号:US15608830
申请日:2017-05-30
Applicant: Oracle International Corporation
Inventor: Gong Zhang , Venkatraman Govindaraju , Sam Idicula
IPC: G06F17/00 , G06F16/2453 , G06F16/2455 , G06F16/2457
Abstract: Techniques are described for executing a query with a top-N clause to select a first N-number of rows in a data source arranged at least according to a first key and a second key of the data source using a first sort order respectively specified for the first key and a second sort order respectively specified for the second key by the query. The data source may include one or more tiles that include at least a portion of the first key and the second key. To execute the query, in an embodiment, a DBMS determines, in a first vector of first key values that are in a first tile, row identifiers identifying entries of the first vector that contain values equal to a tail value that follows a particular top number of the first key values. The DBMS may select, from a second vector of values of the second key in the first tile, second key values identified based on the determined row identifiers of the first vector. In an embodiment, the DBMS generates a result set of the query that includes at least a value from the second key values selected from the second vector based on the determined first row identifiers.
-
公开(公告)号:US10366124B2
公开(公告)日:2019-07-30
申请号:US15616777
申请日:2017-06-07
Applicant: Oracle International Corporation
Inventor: Jian Wen , Sam Idicula , Nitin Kunal , Negar Koochakzadeh , Seema Sundara , Thomas Chang , Aarti Basant , Nipun Agarwal , Farhan Tauheed
IPC: G06F17/30 , G06F16/903 , G06F9/48
Abstract: Techniques are described herein for grouping of operations in local memory of a processing unit. The techniques involve adding a first operation for a first leaf operator of a query execution plan to a first pipelined group. The query execution plan includes a set of leaf operators and a set of non-leaf operators. Each leaf operator of the set of one or more leaf operators has a respective parent non-leaf operator and each non-leaf operator has one or more child operators from among the set of leaf operators or others of the set of non-leaf operators. The techniques further involve determining a memory requirement of executing the first operation for the first leaf operator and executing a second operation for the respective parent non-leaf operator of the first leaf operator. The output of the first operation is input to the second operation. The techniques further involve determining whether the memory requirement is satisfied by an amount of local memory. If it is determined that the memory requirement is satisfied by the amount of local memory the second operation for the respective parent non-leaf operator is added to the first pipelined group. The techniques further involve assigning the first pipelined group to a first thread and the first thread executing the first pipelined group. Executing the first pipelined group involves: storing first output of the first operation in the local memory of the first thread; using the first output as input for the second operation; storing second output of the second operation in the local memory; and moving second output from the local memory to a tier of memory different than the local memory relative to the first thread.
-
公开(公告)号:US20190205446A1
公开(公告)日:2019-07-04
申请号:US15861212
申请日:2018-01-03
Applicant: Oracle International Corporation
Inventor: Anantha Kiran Kandukuri , Seema Sundara , Sam Idicula , Pit Fender , Nitin Kunal , Sabina Petride , Georgios Giannikis , Nipun Agarwal
Abstract: Techniques related to distributed relational dictionaries are disclosed. In some embodiments, one or more non-transitory storage media store a sequence of instructions which, when executed by one or more computing devices, cause performance of a method. The method involves generating, by a query optimizer at a distributed database system (DDS), a query execution plan (QEP) for generating a code dictionary and a column of encoded database data. The QEP specifies a sequence of operations for generating the code dictionary. The code dictionary is a database table. The method further involves receiving, at the DDS, a column of unencoded database data from a data source that is external to the DDS. The DDS generates the code dictionary according to the QEP. Furthermore, based on joining the column of unencoded database data with the code dictionary, the DDS generates the column of encoded database data according to the QEP.
-
38.
公开(公告)号:US20190188205A1
公开(公告)日:2019-06-20
申请号:US16272829
申请日:2019-02-11
Applicant: Oracle International Corporation
Inventor: Sabina Petride , Sam Idicula , Nipun Agarwal
IPC: G06F16/2455
CPC classification number: G06F16/24556 , G06F16/24553
Abstract: A system and method for processing a group and aggregate query on a relation are disclosed. A database system determines whether assistance of a heterogeneous system (HS) of compute nodes is beneficial in performing the query. Assuming that the relation has been partitioned and loaded into the HS, the database system determines, in a compile phase, whether the HS has the functional capabilities to assist, and whether the cost and benefit favor performing the operation with the assistance of the HS. If the cost and benefit favor using the assistance of the HS, then the system enters the execution phase. The database system starts, in the execution phase, an optimal number of parallel processes to produce and consume the results from the compute nodes of the HS. After any needed transaction consistency checks, the results of the query are returned by the database system.
-
公开(公告)号:US20190004794A1
公开(公告)日:2019-01-03
申请号:US15638168
申请日:2017-06-29
Applicant: Oracle International Corporation
Inventor: Arun Raghavan , Sandeep R. Agrawal , Sam Idicula , Nipun Agarwal
Abstract: Techniques related to matrix multiplication at memory bandwidth are disclosed. Computing device(s) perform multiplication of a first matrix with a second matrix to generate a third matrix. A first register stores contiguous element values of the first matrix. Furthermore, a second register stores a first set of contiguous element values of the second matrix, and a third register stores a second set of contiguous element values of the second matrix. The first set and the second set correspond to a first row and a second row, respectively, of the second matrix. The first row and the second row are contiguous rows. A single instruction is executed to cause at least a partial computation of contiguous element values of the third matrix. The single instruction causes multiplication of element values stored in the first register with element values stored in the second and third registers and grouped accumulation of the products.
-
公开(公告)号:US10108666B2
公开(公告)日:2018-10-23
申请号:US14871490
申请日:2015-09-30
Applicant: Oracle International Corporation
Inventor: Sam Idicula , Wolf Roediger
IPC: G06F17/30
Abstract: Techniques for detecting data skew while performing a distributed join operation on tables in a cluster of nodes managed by database management system (cDBMS), is disclosed. In an embodiment, heavy hitter values in a join column of a table are determined during the runtime of a distributed join operation of the table with another table. The cDBMS keeps in a datastore a count for each unique value read from the join column of the table. The datastore may be a hash table with the unique values serving as keys and may additionally include a heap or a sorted array for an efficient count based traversal. When a count for a particular value in the datastore exceeds a threshold, then the particular value is identified as a heavy hitter value. The tuples from the joined table that include the heavy hitter value, are kept local at the node that the tuples were originally distributed to, while the other joined table tuples are broadcasted to one or more nodes of the cDBMS that at least include the originally distributed nodes.
-
-
-
-
-
-
-
-
-