Patents by Inventor Nipun Agarwal

Nipun Agarwal 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: 9953103
    Abstract: Techniques are provided for encoding/decoding binary XML data in a client program before sending/receiving the XML to/from a database server. By encoding the binary XML at the client, the overhead of parsing the XML text is avoided by the database server, thus improving database server scalability. Also, the XML data is sent by the server to the client in the binary form, and the binary format is decoded by the client program to perform the necessary operations.
    Type: Grant
    Filed: November 16, 2006
    Date of Patent: April 24, 2018
    Assignee: ORACLE INTERNATIONAL CORPORATION
    Inventors: Bhushan Khaladkar, Sivasankaran Chandrasekar, Ravi Murthy, Nipun Agarwal
  • Publication number: 20180068341
    Abstract: A method, apparatus, and computer program product are disclosed for self-service design, scheduling, and delivery of user-defined reports regarding promotions. The method includes receiving, from a user device, a report type and report delivery information. Based on the report type, relevant data regarding the one or more promotions is collected, using which a report is generated. The method then outputs the generated report based on the report delivery information. Optionally, analytical insights, such as trends within the data, sample size, suitability of control data, and indications of statistical significance, are generated and included in the report. A corresponding apparatus and computer program product are also provided.
    Type: Application
    Filed: April 17, 2017
    Publication date: March 8, 2018
    Inventors: Nipun Agarwal, Sudeep Srivastava, Isaac Kim
  • Patent number: 9898545
    Abstract: A method and apparatus for processing path-based database operations is provided. According to one aspect, a path cache is maintained. For each hierarchical node that is traversed during a path-determining operation, it is determined whether a cache entry corresponding to that node is already contained in the path cache. If such a cache entry is already contained in the path cache, then the path indicated in that cache entry is used to complete the pathname for the node for which the operation is being performed. As a result, hierarchically higher nodes do not need to be traversed to complete the operation. Alternatively, if such a cache entry is not already contained in the path cache, then a cache entry for the node currently being traversed is generated and inserted into the path cache for use in subsequent path-determining operations.
    Type: Grant
    Filed: January 28, 2015
    Date of Patent: February 20, 2018
    Assignee: ORACLE INTERNATIONAL CORPORATION
    Inventors: Sam Idicula, Nipun Agarwal, Ravi Murthy, Eric Sedlar
  • Patent number: 9842148
    Abstract: Herein is described a data placement scheme for a distributed query processing systems that achieves load balance amongst the nodes of the system. To identify a node on which to place particular data, a supervisor node performs a placement algorithm over the particular data's identifier, where the placement algorithm utilizes two or more hash functions. The supervisor node runs the placement algorithm until a destination node is identified that is available to store the data, or the supervisor node has run the placement algorithm an established number of times. If no available node is identified using the placement algorithm, then an available destination node is identified for the particular data and information identifying the data and the selected destination node is included in an exception map. Most data may be located by any node in the system based on the node performing the placement algorithm for the required data.
    Type: Grant
    Filed: May 5, 2015
    Date of Patent: December 12, 2017
    Assignee: ORACLE INTERNATIONAL CORPORATION
    Inventors: Gong Zhang, Sabina Petride, Boris Klots, Sam Idicula, Nipun Agarwal
  • Patent number: 9842090
    Abstract: A database system may utilize XML schema information to increase the efficiency of an XPath streaming evaluation. The database system may access XML schema or translation information during the evaluation of an element, attribute, or value in an XML data source. Based on the XML schema or translation information, the database system may determine matches to an XPath expression without decoding any binary-encoded data in the XML data source. Also, based on the XML schema information, the database may selectively skip or evaluate portions of the XML data source depending on whether those portions are defined in the XML schema so as to possibly contain a match to one or more unmatched steps in the XPath expression. XML schema information may be compiled into a compiled representation of the XPath expression for additional efficiencies.
    Type: Grant
    Filed: December 5, 2007
    Date of Patent: December 12, 2017
    Assignee: Oracle International Corporation
    Inventors: Sam Idicula, Sivasankaran Chandrasekar, Nipun Agarwal
  • Publication number: 20170351670
    Abstract: Techniques for performing database operations using vectorized instructions are provided. In one technique, it is determined whether to perform a database operation using one or more vectorized instructions or without using any vectorized instructions. This determination may comprise estimating a first cost of performing the database operation using one or more vectorized instructions and estimating a second cost of performing the database operation without using any vectorized instructions. Multiple factors that may be used to determine which approach to follow, such as the number of data elements that may fit into a SIMD register, a number of vectorized instructions in the vectorized approach, a number of data movement instructions that involve moving data from a SIMD register to a non-SIMD register and/or vice versa, a size of a cache, and a projected size of a hash table.
    Type: Application
    Filed: August 24, 2017
    Publication date: December 7, 2017
    Inventors: Rajkumar Sen, Sam Idicula, Nipun Agarwal
  • Patent number: 9813490
    Abstract: A method, apparatus, and system for efficiently re-partitioning data using scheduled network communication are provided. Given re-partitioning data defining the data blocks to be sent amongst a plurality of server nodes, a corresponding network schedule is determined to send the data blocks in a coordinated manner. The network schedule is divided into time slots, wherein each of the plurality of server nodes can send up to one data block and receive up to one data block in each time slot. By using a greedy selection algorithm that prioritizes by largest senders and largest receivers, a near optimal schedule can be determined even in the presence of heavy skew. The greedy selection algorithm can be implemented with a O(T*N^2) time complexity, enabling scaling to large multi-node clusters with many server nodes. The network schedule is of particular interest for database execution plans requiring re-partitioning on operators with different keys.
    Type: Grant
    Filed: May 13, 2015
    Date of Patent: November 7, 2017
    Assignee: Oracle International Corporation
    Inventors: Sam Idicula, Aarti Basant, Vikas Aggarwal, Stephan Wolf, Nipun Agarwal
  • Patent number: 9811560
    Abstract: Techniques related to version control based on a dual-range validity model are disclosed. In an embodiment, an online analytical processing (OLAP) server stores a plurality of version records describing versions of a data item. A version record may describe any open transactions for a version of the data item. The version record may specify a commit timestamp for the data item at a database and a valid timestamp at least as great as the commit timestamp. The commit timestamp and the valid timestamp may specify a validity range. The version record may also specify an expiration timestamp, which along with the valid timestamp may specify an unresolved range. The OLAP server may also identify a valid version of the data item for a query timestamp that corresponds to a query for particular data in the data item and that falls within either the validity range or the unresolved range.
    Type: Grant
    Filed: August 12, 2015
    Date of Patent: November 7, 2017
    Assignee: Oracle International Corporation
    Inventors: Andrea Di Blas, Benjamin Schlegel, Sam Idicula, Sabina Petride, Kantikiran Pasupuleti, Nipun Agarwal
  • Patent number: 9779123
    Abstract: Techniques for performing database operations using vectorized instructions are provided. In one technique, a hash table build phase involves executing vectorized instructions to determine whether a bucket in a hash table includes a free slot for inserting a key. A number of data elements from the bucket are loaded in a register. A vectorized instruction is executed against the register may be used to determine a position, within the register, that contains the “smallest” data element. If the data element at that position is zero (or negative), then it is determined that the corresponding position in the bucket is an available slot for inserting a key and corresponding data value.
    Type: Grant
    Filed: January 7, 2016
    Date of Patent: October 3, 2017
    Assignee: Oracle International Corporation
    Inventors: Rajkumar Sen, Nipun Agarwal
  • Publication number: 20170277691
    Abstract: In one embodiment, a method includes receiving social network data associated with a first user of one or more social-networking systems, calculating one or more social influence factors for the first user based on the social network data, where the social influence factors include a size of the first user's audience on the social-networking systems and one or more content-related factors based on social media content generated by the first user on the social-networking systems, determining a social influence score of the first user based upon the social influence factors, and performing an action based on the social influence score of the first user. The social network data may include one or more sizes of the first user's audience on each of the corresponding social-networking systems, and the size of the first user's audience may be based on a sum of the audience sizes.
    Type: Application
    Filed: March 22, 2016
    Publication date: September 28, 2017
    Inventor: Nipun Agarwal
  • Patent number: 9684639
    Abstract: Data used and generated by the process of validating XML documents is divided into two categories: compile-time static data and runtime data. Runtime data may be specific to a particular XML document and changes when validating the XML document, while compile-time data does not change in this way. For example, compile-time data may be data that defines, according to a schema, the descendant elements and ordering between them. Runtime data is information generated to track which descendants occurred in a particular XML document being validated. Compile-time static data, once generated to validate a particular XML document, is cached within a shared volatile memory. Once the compile-time data is cached, the compile-time static data may be used to validate other XML documents without the need to regenerate the compile-time static data.
    Type: Grant
    Filed: June 26, 2012
    Date of Patent: June 20, 2017
    Assignee: ORACLE INTERNATIONAL CORPORATION
    Inventors: Vijay Medi, Sam Idicula, Nipun Agarwal
  • Patent number: 9667269
    Abstract: A database server exploits the power of compression and a form of storing relational data referred to as column-major format, to store XML documents in shredded form. The column values that are to be stored for shredded XML documents are separately analyzed for a XML document to determine whether to store a particular column in column-major format or row-major format, and what compression technique to use, if any.
    Type: Grant
    Filed: June 1, 2010
    Date of Patent: May 30, 2017
    Assignee: Oracle International Corporation
    Inventors: Sivasankaran Chandrasekar, Nipun Agarwal
  • Patent number: 9665572
    Abstract: A method for providing optimized data representation of relations for in-memory database query processing is disclosed. The method seeks to optimize the use of the available memory by encoding relations on which the in-memory database query processing is performed and by employing auxiliary structures to maintain performance. Relations are encoded based on data patterns in one or more attribute-columns of the relation and the encoding that is selected is suited to a particular type of data in the column. Members of a set of auxiliary structures are selected based on the benefit the structure can provide and the cost of the structure in terms of the amount of memory used. Encoding of the relations is performed in real-time while query processing occurs, using locks to eliminate conflicts between the query processing and encoding.
    Type: Grant
    Filed: September 12, 2012
    Date of Patent: May 30, 2017
    Assignee: Oracle International Corporation
    Inventors: Sam Idicula, Kevin Moore, Brian Gold, Nipun Agarwal, Eric Sedlar
  • Patent number: 9659046
    Abstract: Techniques for performing database operations using vectorized instructions are provided. In one technique, a hash table probe phase involves executing vectorized instructions to determine where in a bucket a particular key is located. This determination may be preceded by one or more vectorized instructions that are used to determine whether the bucket contains the particular key.
    Type: Grant
    Filed: July 31, 2013
    Date of Patent: May 23, 2017
    Assignee: Oracle Inernational Corporation
    Inventors: Rajkumar Sen, Sabina Petride, Nipun Agarwal
  • Patent number: 9646321
    Abstract: A method, apparatus, and computer program product are disclosed for self-service design, scheduling, and delivery of user-defined reports regarding promotions. The method includes receiving, from a user device, a report type and report delivery information. Based on the report type, relevant data regarding the one or more promotions is collected, using which a report is generated. The method then outputs the generated report based on the report delivery information. Optionally, analytical insights, such as trends within the data, sample size, suitability of control data, and indications of statistical significance, are generated and included in the report. A corresponding apparatus and computer program product are also provided.
    Type: Grant
    Filed: August 7, 2015
    Date of Patent: May 9, 2017
    Assignee: Groupon, Inc.
    Inventors: Nipun Agarwal, Sudeep Srivastava, Isaac Kim
  • Patent number: 9626402
    Abstract: Techniques for performing database operations using vectorized instructions are provided. In one technique, data compaction is performed using vectorized instructions to identify a shuffle mask based on matching bits and update an output array based on the shuffle mask and an input array. In a related technique, a hash table probe involves using vectorized instructions to determine whether each key in one or more hash buckets matches a particular input key.
    Type: Grant
    Filed: August 1, 2013
    Date of Patent: April 18, 2017
    Assignee: Oracle International Corporation
    Inventors: Rajkumar Sen, Sam Idicula, Nipun Agarwal
  • Patent number: 9613066
    Abstract: A database management server manages a distributed data set at least partially stored in volatile memory of a plurality of nodes. The database management server stores transaction logs in persistent storage corresponding to one or more database transactions performed on the distributed data set. In response to a query, a join operation is performed with assistance from the cluster. A snapshot identifier identifies a particular database state that is transactionally consistent. Based on the transactional logs, updated data blocks updated after the snapshot identifier of the query are identified. The cluster is instructed to perform one or more distributed join operations on the distributed data set without processing data in the updated data blocks. The database management server performs a partial join evaluation on the updated data blocks.
    Type: Grant
    Filed: September 25, 2014
    Date of Patent: April 4, 2017
    Assignee: Oracle International Corporation
    Inventors: Sam Idicula, Sabina Petride, Nipun Agarwal, Eric Sedlar
  • Patent number: 9582525
    Abstract: Techniques are provided for efficiently collecting statistics for hierarchically-organized collections of data. A database system leverages container-level modification time stamps and stored subtree-level change information to gather statistical information from only those resources in a hierarchical collection for which the statistics have changed since the last time that statistics were gathered for the collection. A lockless data structure is also described for storing the subtree-level change information in which an identifier corresponding to each subtree in a collection containing a changed resource may be stored. This data structure may be a table that is distinct from one or more tables representing the collection. In one embodiment of the invention, the immediate parent resource of a particular modified resource may be omitted from the subtree table by leveraging modification time stamps while gathering statistics based on tracked subtree-level information.
    Type: Grant
    Filed: September 8, 2009
    Date of Patent: February 28, 2017
    Assignee: ORACLE INTERNATIONAL CORPORATION
    Inventors: Sam Idicula, Asha Tarachandani, Bhushan Khaladkar, Nipun Agarwal
  • Publication number: 20170046384
    Abstract: Techniques related to version control based on a dual-range validity model are disclosed. In an embodiment, an online analytical processing (OLAP) server stores a plurality of version records describing versions of a data item. A version record may describe any open transactions for a version of the data item. The version record may specify a commit timestamp for the data item at a database and a valid timestamp at least as great as the commit timestamp. The commit timestamp and the valid timestamp may specify a validity range. The version record may also specify an expiration timestamp, which along with the valid timestamp may specify an unresolved range. The OLAP server may also identify a valid version of the data item for a query timestamp that corresponds to a query for particular data in the data item and that falls within either the validity range or the unresolved range.
    Type: Application
    Filed: August 12, 2015
    Publication date: February 16, 2017
    Inventors: ANDREA DI BLAS, BENJAMIN SCHLEGEL, SAM IDICULA, SABINA PETRIDE, KANTIKIRAN PASUPULETI, NIPUN AGARWAL
  • Publication number: 20160337442
    Abstract: A method, apparatus, and system for efficiently re-partitioning data using scheduled network communication are provided. Given re-partitioning data defining the data blocks to be sent amongst a plurality of server nodes, a corresponding network schedule is determined to send the data blocks in a coordinated manner. The network schedule is divided into time slots, wherein each of the plurality of server nodes can send up to one data block and receive up to one data block in each time slot. By using a greedy selection algorithm that prioritizes by largest senders and largest receivers, a near optimal schedule can be determined even in the presence of heavy skew. The greedy selection algorithm can be implemented with a O(T*N?2) time complexity, enabling scaling to large multi-node clusters with many server nodes. The network schedule is of particular interest for database execution plans requiring re-partitioning on operators with different keys.
    Type: Application
    Filed: May 13, 2015
    Publication date: November 17, 2016
    Inventors: SAM IDICULA, AARTI BASANT, VIKAS AGGARWAL, STEPHAN WOLF, NIPUN AGARWAL