Patents by Inventor Kartik Kulkarni

Kartik Kulkarni 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: 11971869
    Abstract: A shared-nothing database system is provided in which parallelism and workload balancing are increased by assigning the rows of each table to “slices”, and storing multiple copies (“duplicas”) of each slice across the persistent storage of multiple nodes of the shared-nothing database system. When the data for a table is distributed among the nodes of a shared-nothing system in this manner, requests to read data from a particular row of the table may be handled by any node that stores a duplica of the slice to which the row is assigned. For each slice, a single duplica of the slice is designated as the “primary duplica”. All DML operations (e.g. inserts, deletes, updates, etc.) that target a particular row of the table are performed by the node that has the primary duplica of the slice to which the particular row is assigned. The changes made by the DML operations are then propagated from the primary duplica to the other duplicas (“secondary duplicas”) of the same slice.
    Type: Grant
    Filed: October 26, 2022
    Date of Patent: April 30, 2024
    Assignee: Oracle International Corporation
    Inventors: Jesse Kamp, Allison L. Holloway, Meichun Hsu, Hideaki Kimura, Boris Klots, Vasudha Krishnaswamy, Kartik Kulkarni, Teck Hua Lee, Yunrui Li, Aurosish Mishra, Ajit Mylavarapu, Sukhada Pendse, Garret F. Swart, Shasank K. Chavan, Tirthankar Lahiri, Juan R. Loaiza
  • Patent number: 11657037
    Abstract: Techniques related to query execution against an in-memory standby database are disclosed. A first database includes PF data stored on persistent storage in a persistent format. The first database is accessible to a first database server that converts the PF data to a mirror format to produce MF data that is stored within volatile memory. The first database server receives, from a second database server, one or more change records indicating one or more transactions performed against a second database. The one or more change records are applied to the PF data, and a reference timestamp is advanced from a first to a second timestamp. The first database server invalidates any MF data that is changed by a subset of the one or more transactions that committed between the first and second timestamps.
    Type: Grant
    Filed: August 31, 2016
    Date of Patent: May 23, 2023
    Assignee: Oracle International Corporation
    Inventors: Vasudha Krishnaswamy, Yunrui Li, Vivekanandhan Raja, Tirthankar Lahiri, Mahesh B. Girkar, Sukhada Pendse, Kartik Kulkarni, Jing Zheng, Shruti Gautam, Henry Chau
  • Patent number: 11586641
    Abstract: Techniques are described herein for executing queries on distinct portions of a database object that has been separate into chunks and distributed across the volatile memories of a plurality of nodes in a clustered database system. The techniques involve redistributing the in-memory database object portions on changes to the clustered database system. Each node may maintain a mapping indicating which nodes in the clustered database system store which chunks, and timestamps indicating when each mapping entry was created or updated. A query coordinator may use the timestamps to select a database server instance with local in memory access to data required by a portion of a query to process that portion of the query.
    Type: Grant
    Filed: December 23, 2019
    Date of Patent: February 21, 2023
    Assignee: Oracle International Corporation
    Inventors: Niloy Mukherjee, Kartik Kulkarni, Tirthankar Lahiri, Vineet Marwah, Juan Loaiza
  • Publication number: 20230050727
    Abstract: A shared-nothing database system is provided in which parallelism and workload balancing are increased by assigning the rows of each table to “slices”, and storing multiple copies (“duplicas”) of each slice across the persistent storage of multiple nodes of the shared-nothing database system. When the data for a table is distributed among the nodes of a shared-nothing system in this manner, requests to read data from a particular row of the table may be handled by any node that stores a duplica of the slice to which the row is assigned. For each slice, a single duplica of the slice is designated as the “primary duplica”. All DML operations (e.g. inserts, deletes, updates, etc.) that target a particular row of the table are performed by the node that has the primary duplica of the slice to which the particular row is assigned. The changes made by the DML operations are then propagated from the primary duplica to the other duplicas (“secondary duplicas”) of the same slice.
    Type: Application
    Filed: October 26, 2022
    Publication date: February 16, 2023
    Inventors: Jesse Kamp, Allison L. Holloway, Meichun Hsu, Hideaki Kimura, Boris Klots, Vasudha Krishnaswamy, Kartik Kulkarni, Teck Hua Lee, Yunrui Li, Aurosish Mishra, Ajit Mylavarapu, Sukhada Pendse, Garret F. Swart, Shasank K. Chavan, Tirthankar Lahiri, Juan R. Loaiza
  • Patent number: 11550771
    Abstract: A shared-nothing database system is provided in which parallelism and workload balancing are increased by assigning the rows of each table to “slices”, and storing multiple copies (“duplicas”) of each slice across the persistent storage of multiple nodes of the shared-nothing database system. When the data for a table is distributed among the nodes of a shared-nothing system in this manner, requests to read data from a particular row of the table may be handled by any node that stores a duplica of the slice to which the row is assigned. For each slice, a single duplica of the slice is designated as the “primary duplica”. All DML operations (e.g. inserts, deletes, updates, etc.) that target a particular row of the table are performed by the node that has the primary duplica of the slice to which the particular row is assigned. The changes made by the DML operations are then propagated from the primary duplica to the other duplicas (“secondary duplicas”) of the same slice.
    Type: Grant
    Filed: October 14, 2020
    Date of Patent: January 10, 2023
    Assignee: Oracle International Corporation
    Inventors: Jesse Kamp, Allison L. Holloway, Meichun Hsu, Hideaki Kimura, Boris Klots, Vasudha Krishnaswamy, Kartik Kulkarni, Teck Hua Lee, Yunrui Li, Aurosish Mishra, Ajit Mylavarapu, Sukhada Pendse, Garret F. Swart, Shasank K. Chavan, Tirthankar Lahiri, Juan R. Loaiza
  • Publication number: 20220114153
    Abstract: A shared-nothing database system is provided in which parallelism and workload balancing are increased by assigning the rows of each table to “slices”, and storing multiple copies (“duplicas”) of each slice across the persistent storage of multiple nodes of the shared-nothing database system. When the data for a table is distributed among the nodes of a shared-nothing system in this manner, requests to read data from a particular row of the table may be handled by any node that stores a duplica of the slice to which the row is assigned. For each slice, a single duplica of the slice is designated as the “primary duplica”. All DML operations (e.g. inserts, deletes, updates, etc.) that target a particular row of the table are performed by the node that has the primary duplica of the slice to which the particular row is assigned. The changes made by the DML operations are then propagated from the primary duplica to the other duplicas (“secondary duplicas”) of the same slice.
    Type: Application
    Filed: October 14, 2020
    Publication date: April 14, 2022
    Inventors: Jesse Kamp, Allison L. Holloway, Meichun Hsu, Hideaki Kimura, Boris Klots, Vasudha Krishnaswamy, Kartik Kulkarni, Teck Hua Lee, Yunrui Li, Aurosish Mishra, Ajit Mylavarapu, Sukhada Pendse, Garret F. Swart, Shasank K. Chavan, Tirthankar Lahiri, Juan R. Loaiza
  • Patent number: 10747752
    Abstract: Embodiments store transaction metadata in dedicated pools of allocated memory chunks. Portions of the pools of allocated memory chunks are dedicated to the respective apply slave processes that mine and process change records. Also, the pools of allocated memory chunks are anchored within the structure of a transaction log such that buffering and application of metadata for one transaction does not block required buffering and application of metadata for other transactions. The standby database system pre-processes transaction metadata in preparation for application of the metadata to invalidate appropriate portions of MF data. Further, embodiments divide the work of pre-processing invalidation records among the many apply slave processes that record the invalidation records. A garbage collection selects memory chunks for garbage collection in reverse order of how the chunks were allocated.
    Type: Grant
    Filed: February 9, 2018
    Date of Patent: August 18, 2020
    Assignee: Oracle International Corporation
    Inventors: Vasudha Krishnaswamy, Kartik Kulkarni, Sukhada Pendse, Akshay Kulkarni
  • Publication number: 20200133950
    Abstract: Techniques are described herein for executing queries on distinct portions of a database object that has been separate into chunks and distributed across the volatile memories of a plurality of nodes in a clustered database system. The techniques involve redistributing the in-memory database object portions on changes to the clustered database system. Each node may maintain a mapping indicating which nodes in the clustered database system store which chunks, and timestamps indicating when each mapping entry was created or updated. A query coordinator may use the timestamps to select a database server instance with local in memory access to data required by a portion of a query to process that portion of the query.
    Type: Application
    Filed: December 23, 2019
    Publication date: April 30, 2020
    Inventors: NILOY MUKHERJEE, KARTIK KULKARNI, TIRTHANKAR LAHIRI, VINEET MARWAH, JUAN LOAIZA
  • Patent number: 10528580
    Abstract: Techniques are described herein for executing queries on distinct portions of a database object that has been separate into chunks and distributed across the volatile memories of a plurality of nodes in a clustered database system. The techniques involve redistributing the in-memory database object portions on changes to the clustered database system. Each node may maintain a mapping indicating which nodes in the clustered database system store which chunks, and timestamps indicating when each mapping entry was created or updated. A query coordinator may use the timestamps to select a database server instance with local in memory access to data required by a portion of a query to process that portion of the query.
    Type: Grant
    Filed: January 27, 2016
    Date of Patent: January 7, 2020
    Assignee: Oracle International Corporation
    Inventors: Niloy Mukherjee, Kartik Kulkarni, Tirthankar Lahiri, Vineet Marwah, Juan Loaiza
  • Patent number: 10474653
    Abstract: Techniques are described herein for distributing distinct portions of a database object across volatile memories of selected nodes of a plurality of nodes in a clustered database system. The techniques involve storing a unit-to-service mapping that associates a unit (a database object or portion thereof) to one or more database services. The one or more database services are mapped to one or more nodes. The nodes to which a service is mapped may include nodes in disjoint database systems, so long as those database systems have access to a replica of the unit. The database object is treated as in-memory enabled by nodes that are associated with the service, and are treated as not in-memory enabled by nodes that are not associated with the service.
    Type: Grant
    Filed: September 30, 2016
    Date of Patent: November 12, 2019
    Assignee: Oracle International Corporation
    Inventors: Niloy Mukherjee, Jesse Kamp, Tirthankar Lahiri, Maria Colgan, Vivekanandhan Raja, Vasudha Krishnaswamy, Aditi Gupta, Kartik Kulkarni
  • Patent number: 10303788
    Abstract: A minimum value (MV) is computed for start timestamps that each correspond to an uncommitted transaction. In an embodiment, the MV is computed for a pluggable database that is open on at least first and second instances of a database. The MV is computed for the first instance as of a first current timestamp (CT). The MV and the first CT are communicated to a second instance that has a second CT. If the first and second CTs are equal, the second instance store the MV. If the first CT is bigger, the second CT also becomes equal to the first CT. If the first CT is smaller, the MV is discarded, and the first CT becomes equal to the second CT. In an embodiment, if the MV remains unchanged for a predetermined time period, a start timestamp corresponding to the MV is advanced to a current or future timestamp.
    Type: Grant
    Filed: August 31, 2016
    Date of Patent: May 28, 2019
    Assignee: Oracle International Corporation
    Inventors: Kartik Kulkarni, Juan R. Loaiza, Vivekanandhan Raja, Kothanda Umamageswaran, Sanket Hase, Vasudha Krishnaswamy, Tirthankar Lahiri
  • Patent number: 10275184
    Abstract: Techniques are described herein for executing queries on distinct portions of a database object that has been separate into chunks and distributed across the volatile memories of a plurality of nodes in a clustered database system. The techniques involve receiving a query that requires work to be performed on data that resides in a plurality of on disk extents. A parallel query coordinator that is aware of the in-memory distribution divides the work into granules that align with the in-memory separation. The parallel query coordinator then sends each granule to the database server instance with local in memory access to the data required by the granule and aggregates the results to respond to the query.
    Type: Grant
    Filed: July 22, 2015
    Date of Patent: April 30, 2019
    Assignee: ORACLE INTERNATIONAL CORPORATION
    Inventors: Niloy Mukherjee, Vineet Marwah, Hui Jin, Kartik Kulkarni
  • Patent number: 10248685
    Abstract: A minimum value (MV) is computed for start timestamps that each correspond to an uncommitted transaction. In an embodiment, the MV is computed for a pluggable database that is open on at least first and second instances of a database. The MV is computed for the first instance as of a first current timestamp (CT). The MV and the first CT are communicated to a second instance that has a second CT. If the first and second CTs are equal, the second instance store the MV. If the first CT is bigger, the second CT also becomes equal to the first CT. If the first CT is smaller, the MV is discarded, and the first CT becomes equal to the second CT. In an embodiment, if the MV remains unchanged for a predetermined time period, a start timestamp corresponding to the MV is advanced to a current or future timestamp.
    Type: Grant
    Filed: August 31, 2016
    Date of Patent: April 2, 2019
    Assignee: Oracle International Corporation
    Inventors: Kartik Kulkarni, Juan R. Loaiza, Vivekanandhan Raja, Kothanda Umamageswaran, Sanket Hase, Vasudha Krishnaswamy, Tirthankar Lahiri
  • Patent number: 10002148
    Abstract: Techniques are described herein for distributing data from one or more partitioned tables across the volatile memories of a cluster. In memory copies of data from partitioned tables are grouped based on the data falling within the same partition criteria. These groups are used for assigning data from corresponding partitions to the same node when distributing data from partitioned tables across the volatile memories of a multi-node cluster. When a query requires a join between rows of partitioned tables, the work for the join query is divided into work granules that correspond to partition-wise join operations. Those partition-wise join operations are assigned to nodes by a query coordinator based on the partition-to-node mapping located in the node of the query coordinator.
    Type: Grant
    Filed: July 22, 2015
    Date of Patent: June 19, 2018
    Assignee: ORACLE INTERNATIONAL CORPORATION
    Inventors: Niloy Mukherjee, Mohamed Zait, Juan Loaiza, Vineet Marwah, Tirthankar Lahiri, Jiaqi Yan, Kartik Kulkarni
  • Publication number: 20180165324
    Abstract: Embodiments store transaction metadata in dedicated pools of allocated memory chunks. Portions of the pools of allocated memory chunks are dedicated to the respective apply slave processes that mine and process change records. Also, the pools of allocated memory chunks are anchored within the structure of a transaction log such that buffering and application of metadata for one transaction does not block required buffering and application of metadata for other transactions. The standby database system pre-processes transaction metadata in preparation for application of the metadata to invalidate appropriate portions of MF data. Further, embodiments divide the work of pre-processing invalidation records among the many apply slave processes that record the invalidation records. A garbage collection selects memory chunks for garbage collection in reverse order of how the chunks were allocated.
    Type: Application
    Filed: February 9, 2018
    Publication date: June 14, 2018
    Inventors: Vasudha Krishnaswamy, Kartik Kulkarni, Sukhada Pendse, Akshay Kulkarni
  • Publication number: 20180096010
    Abstract: Techniques are described herein for distributing distinct portions of a database object across volatile memories of selected nodes of a plurality of nodes in a clustered database system. The techniques involve storing a unit-to-service mapping that associates a unit (a database object or portion thereof) to one or more database services. The one or more database services are mapped to one or more nodes. The nodes to which a service is mapped may include nodes in disjoint database systems, so long as those database systems have access to a replica of the unit. The database object is treated as in-memory enabled by nodes that are associated with the service, and are treated as not in-memory enabled by nodes that are not associated with the service.
    Type: Application
    Filed: September 30, 2016
    Publication date: April 5, 2018
    Inventors: Niloy Mukherjee, Jesse Kamp, Tirthankar Lahiri, Maria Colgan, Vivekanandhan Raja, Vasudha Krishnaswamy, Aditi Gupta, Kartik Kulkarni
  • Publication number: 20180060378
    Abstract: A minimum value (MV) is computed for start timestamps that each correspond to an uncommitted transaction. In an embodiment, the MV is computed for a pluggable database that is open on at least first and second instances of a database. The MV is computed for the first instance as of a first current timestamp (CT). The MV and the first CT are communicated to a second instance that has a second CT. If the first and second CTs are equal, the second instance store the MV. If the first CT is bigger, the second CT also becomes equal to the first CT. If the first CT is smaller, the MV is discarded, and the first CT becomes equal to the second CT. In an embodiment, if the MV remains unchanged for a predetermined time period, a start timestamp corresponding to the MV is advanced to a current or future timestamp.
    Type: Application
    Filed: August 31, 2016
    Publication date: March 1, 2018
    Inventors: Kartik Kulkarni, Juan R. Loaiza, Vivekanandhan Raja, Kothanda Umamageswaran, Sanket Hase, Vasudha Krishnaswamy, Tirthankar Lahiri
  • Publication number: 20180060377
    Abstract: A minimum value (MV) is computed for start timestamps that each correspond to an uncommitted transaction. In an embodiment, the MV is computed for a pluggable database that is open on at least first and second instances of a database. The MV is computed for the first instance as of a first current timestamp (CT). The MV and the first CT are communicated to a second instance that has a second CT. If the first and second CTs are equal, the second instance store the MV. If the first CT is bigger, the second CT also becomes equal to the first CT. If the first CT is smaller, the MV is discarded, and the first CT becomes equal to the second CT. In an embodiment, if the MV remains unchanged for a predetermined time period, a start timestamp corresponding to the MV is advanced to a current or future timestamp.
    Type: Application
    Filed: August 31, 2016
    Publication date: March 1, 2018
    Inventors: Kartik Kulkarni, Juan R. Loaiza, Vivekanandhan Raja, Kothanda Umamageswaran, Sanket Hase, Vasudha Krishnaswamy, Tirthankar Lahiri
  • Patent number: 9875259
    Abstract: Techniques are described herein for distributing distinct portions of a database object across the volatile memories of a plurality of nodes in a clustered database system. The techniques involve establishing a single database server instance located on a node in a multi-node cluster as a load-operation master for a particular data set. The load-operation master determines how the data set may be separated into chunks using a hash function. The load-operation master then broadcasts a small payload of consistency information to other database servers, so each database server may independently execute the hash function and independently load their respectively assigned chunks of data.
    Type: Grant
    Filed: December 10, 2014
    Date of Patent: January 23, 2018
    Assignee: Oracle International Corporation
    Inventors: Niloy Mukherjee, Tirthankar Lahiri, Vineet Marwah, Kartik Kulkarni
  • Publication number: 20170212939
    Abstract: Techniques are described herein for executing queries on distinct portions of a database object that has been separate into chunks and distributed across the volatile memories of a plurality of nodes in a clustered database system. The techniques involve redistributing the in-memory database object portions on changes to the clustered database system. Each node may maintain a mapping indicating which nodes in the clustered database system store which chunks, and timestamps indicating when each mapping entry was created or updated. A query coordinator may use the timestamps to select a database server instance with local in memory access to data required by a portion of a query to process that portion of the query.
    Type: Application
    Filed: January 27, 2016
    Publication date: July 27, 2017
    Inventors: NILOY MUKHERJEE, KARTIK KULKARNI, TIRTHANKAR LAHIRI, VINEET MARWAH, JUAN LOAIZA