Patents by Inventor Punit B. Shah

Punit B. Shah 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: 11940994
    Abstract: Techniques are disclosed that relate to manipulating a chain of database objects without locking the chain. A computer system may maintain a chain that orders a set of database objects stored in a cache of the computer system. The computer system may receive a set of requests to perform database transactions. Based on those received set of requests, the computer system may determine to perform a plurality of chain operations that involve modifying the chain. The computer system may perform two or more of the plurality of chain operations at least partially in parallel using a set of atomic operations without acquiring a lock on the chain.
    Type: Grant
    Filed: October 29, 2021
    Date of Patent: March 26, 2024
    Assignee: Salesforce, Inc.
    Inventors: Rui Zhang, Prateek Swamy, Yi Xia, Punit B. Shah, Rama K. Korlapati
  • Publication number: 20230135823
    Abstract: Techniques are disclosed that relate to manipulating a chain of database objects without locking the chain. A computer system may maintain a chain that orders a set of database objects stored in a cache of the computer system. The computer system may receive a set of requests to perform database transactions. Based on those received set of requests, the computer system may determine to perform a plurality of chain operations that involve modifying the chain. The computer system may perform two or more of the plurality of chain operations at least partially in parallel using a set of atomic operations without acquiring a lock on the chain.
    Type: Application
    Filed: October 29, 2021
    Publication date: May 4, 2023
    Inventors: Rui Zhang, Prateek Swamy, Yi Xia, Punit B. Shah, Rama K. Korlapati
  • Patent number: 11573713
    Abstract: Methods, computer readable media, and devices for identifying and preventing invalid memory access. A method may include defining a dynamic scope for an operation, receiving a request to allocate a portion of the range of shared memory, allocating a monotonically increasing portion of the range of shared memory such that a subsequent request to allocate memory is allocated a different portion of the range of shared memory, receiving a request to deallocate the allocated portion of the range of shared memory, deallocating the allocated portion of the range of shared memory by protecting the deallocated portion of the range of shared memory from any subsequent access, and in response to an access of the protected deallocated portion of the range of shared memory by one of the one or more threads or processes of the operation, trapping and terminating the one thread or process.
    Type: Grant
    Filed: November 2, 2021
    Date of Patent: February 7, 2023
    Assignee: Salesforce, Inc.
    Inventors: Punit B. Shah, Rui Zhang, Rama K. Korlapati, Prashasthi Prabhakar, Dominique Jeremy Evans
  • Patent number: 11416470
    Abstract: Systems and methods provide multi-version concurrency control of database records with uncommitted transactions. The system and methods may include receiving a query regarding a transaction counter number. When a transaction header identifying data is updated with the assigned transaction counter number, the updated transaction header may be used in identifying data as an instance of multiversion concurrency control information by the received query. A key lookup may be performed, and when the key lookup encounters an uncommitted row for a transaction number, a corresponding transaction header identifying data to identify a data array element to determine whether the transaction number is committed, and determining the transaction counter number when the transaction number is committed. The transaction counter number may be stamped on the row version record when it is determined that the row is committed.
    Type: Grant
    Filed: May 30, 2019
    Date of Patent: August 16, 2022
    Assignee: Salesforce, Inc.
    Inventors: Subho Sanjay Chatterjee, Patrick James Helland, Nathaniel Wyatt, James E. Mace, Punit B. Shah
  • Patent number: 11347713
    Abstract: Techniques are disclosed relating to concurrently processing transactions. A computer system may maintain a database table having a plurality of versions. Each of the versions may identify a corresponding portion of the database table that transactions associated with that version are permitted to access. The computer system may receive a first request to perform a first transaction to modify a definition of the database table. The computer system may receive a second request to perform a second transaction to modify data stored in the database table. In response to determining that the first and second transactions are associated with different versions of the plurality of versions, the computer system may concurrently process the first and second transactions.
    Type: Grant
    Filed: September 27, 2019
    Date of Patent: May 31, 2022
    Assignee: salesforce.com, inc.
    Inventors: Jeffrey Ira Cohen, Punit B. Shah, Serge Philippe Rielau
  • Patent number: 11243873
    Abstract: Techniques are disclosed relating to testing application code. A computer system, in various embodiments, receives application code to be tested by the computer system and separate information defining actions to be performed at specified locations within the application code. In various embodiments, the computer system executes the application code in a test environment in which the actions defined by the separate information are retrieved and performed by a plurality of threads of the application code at the specified locations to control flow of the plurality of threads through the application code. In some embodiments, a first one of the plurality of threads is operable to perform at least one of the actions to control the flow of a second one of the plurality of threads.
    Type: Grant
    Filed: July 31, 2020
    Date of Patent: February 8, 2022
    Assignee: salesforce.com, inc.
    Inventors: Mark Wilding, Punit B. Shah
  • Patent number: 11176138
    Abstract: Caching runtime plan data that is determined not to change for different invocations of a query plan. In some embodiments, a computing system accesses information that specifies a query plan generated for a first database query and generates a first runtime plan for the first database query based on the query plan. In some embodiments, the system caches information generated for the first runtime plan that is determined not to change for different invocations of the query plan. For example, transformation code may include separate functions for mutable and immutable state. In some embodiments, the system retrieves and uses the cached information to generate a second runtime plan for a second database query. Disclosed techniques may improve performance of query plan transformations that hit in the runtime plan cache.
    Type: Grant
    Filed: February 25, 2020
    Date of Patent: November 16, 2021
    Assignee: salesforce.com, inc.
    Inventors: Punit B. Shah, Douglas Doole, Rama K Korlapati, Serge P. Rielau
  • Publication number: 20210263936
    Abstract: Caching runtime plan data that is determined not to change for different invocations of a query plan. In some embodiments, a computing system accesses information that specifies a query plan generated for a first database query and generates a first runtime plan for the first database query based on the query plan. In some embodiments, the system caches information generated for the first runtime plan that is determined not to change for different invocations of the query plan. For example, transformation code may include separate functions for mutable and immutable state. In some embodiments, the system retrieves and uses the cached information to generate a second runtime plan for a second database query. Disclosed techniques may improve performance of query plan transformations that hit in the runtime plan cache.
    Type: Application
    Filed: February 25, 2020
    Publication date: August 26, 2021
    Inventors: Punit B. Shah, Douglas Doole, Rama K. Korlapati, Serge P. Rielau
  • Publication number: 20210097051
    Abstract: Techniques are disclosed relating to concurrently processing transactions. A computer system may maintain a database table having a plurality of versions. Each of the versions may identify a corresponding portion of the database table that transactions associated with that version are permitted to access. The computer system may receive a first request to perform a first transaction to modify a definition of the database table. The computer system may receive a second request to perform a second transaction to modify data stored in the database table. In response to determining that the first and second transactions are associated with different versions of the plurality of versions, the computer system may concurrently process the first and second transactions.
    Type: Application
    Filed: September 27, 2019
    Publication date: April 1, 2021
    Inventors: Jeffrey Ira Cohen, Punit B. Shah, Serge Philippe Rielau
  • Publication number: 20200364136
    Abstract: Techniques are disclosed relating to testing application code. A computer system, in various embodiments, receives application code to be tested by the computer system and separate information defining actions to be performed at specified locations within the application code. In various embodiments, the computer system executes the application code in a test environment in which the actions defined by the separate information are retrieved and performed by a plurality of threads of the application code at the specified locations to control flow of the plurality of threads through the application code. In some embodiments, a first one of the plurality of threads is operable to perform at least one of the actions to control the flow of a second one of the plurality of threads.
    Type: Application
    Filed: July 31, 2020
    Publication date: November 19, 2020
    Inventors: Mark Wilding, Punit B. Shah
  • Patent number: 10733083
    Abstract: Techniques are disclosed relating to testing application code. A computer system, in various embodiments, receives application code to be tested by the computer system and separate information defining actions to be performed at specified locations within the application code. In various embodiments, the computer system executes the application code in a test environment in which the actions defined by the separate information are retrieved and performed by a plurality of threads of the application code at the specified locations to control flow of the plurality of threads through the application code. In some embodiments, a first one of the plurality of threads is operable to perform at least one of the actions to control the flow of a second one of the plurality of threads.
    Type: Grant
    Filed: October 18, 2017
    Date of Patent: August 4, 2020
    Assignee: salesforce.com, inc.
    Inventors: Mark Wilding, Punit B. Shah
  • Publication number: 20190278762
    Abstract: Systems and methods provide multi-version concurrency control of database records with uncommitted transactions. The system and methods may include receiving a query regarding a transaction counter number. When a transaction header identifying data is updated with the assigned transaction counter number, the updated transaction header may be used in identifying data as an instance of multiversion concurrency control information by the received query. A key lookup may be performed, and when the key lookup encounters an uncommitted row for a transaction number, a corresponding transaction header identifying data to identify a data array element to determine whether the transaction number is committed, and determining the transaction counter number when the transaction number is committed. The transaction counter number may be stamped on the row version record when it is determined that the row is committed.
    Type: Application
    Filed: May 30, 2019
    Publication date: September 12, 2019
    Inventors: Subho Sanjay Chatterjee, Patrick James Helland, Nathaniel Wyatt, James E. Mace, Punit B. Shah
  • Patent number: 10346386
    Abstract: Systems and methods provide multi-version concurrency control of database records with uncommitted transactions. The system and methods may include receiving a query regarding a transaction counter number. When a transaction header identifying data is updated with the assigned transaction counter number, the updated transaction header may be used in identifying data as an instance of multiversion concurrency control information by the received query. A key lookup may be performed, and when the key lookup encounters an uncommitted row for a transaction number, a corresponding transaction header identifying data to identify a data array element to determine whether the transaction number is committed, and determining the transaction counter number when the transaction number is committed. The transaction counter number may be stamped on the row version record when it is determined that the row is committed.
    Type: Grant
    Filed: November 4, 2016
    Date of Patent: July 9, 2019
    Assignee: salesforce.com, inc.
    Inventors: Subho Sanjay Chatterjee, Patrick James Helland, Nathaniel Wyatt, James E. Mace, Punit B. Shah
  • Publication number: 20190114253
    Abstract: Techniques are disclosed relating to testing application code. A computer system, in various embodiments, receives application code to be tested by the computer system and separate information defining actions to be performed at specified locations within the application code. In various embodiments, the computer system executes the application code in a test environment in which the actions defined by the separate information are retrieved and performed by a plurality of threads of the application code at the specified locations to control flow of the plurality of threads through the application code. In some embodiments, a first one of the plurality of threads is operable to perform at least one of the actions to control the flow of a second one of the plurality of threads.
    Type: Application
    Filed: October 18, 2017
    Publication date: April 18, 2019
    Inventors: Mark Wilding, Punit B. Shah
  • Publication number: 20180129693
    Abstract: Systems and methods provide multi-version concurrency control of database records with uncommitted transactions. The system and methods may include receiving a query regarding a transaction counter number. When a transaction header identifying data is updated with the assigned transaction counter number, the updated transaction header may be used in identifying data as an instance of multiversion concurrency control information by the received query. A key lookup may be performed, and when the key lookup encounters an uncommitted row for a transaction number, a corresponding transaction header identifying data to identify a data array element to determine whether the transaction number is committed, and determining the transaction counter number when the transaction number is committed. The transaction counter number may be stamped on the row version record when it is determined that the row is committed.
    Type: Application
    Filed: November 4, 2016
    Publication date: May 10, 2018
    Inventors: Subho Sanjay Chatterjee, Patrick James Helland, Nathaniel Wyatt, James E. Mace, Punit B. Shah
  • Patent number: 8700876
    Abstract: Database partition monitoring and dynamic logical partition reconfiguration in support of an autonomic self-tunable database management system are provided by an automated monitor that monitors one or more resource parameters in a logical partition running a database application in a logically partitioned data processing host. The monitor initiates dynamic logical partition reconfiguration in the event that the parameters vary from predetermined parameter values. In particular, the monitor can initiate removal of resources if one of the resource parameters is being underutilized and initiate addition of resources if one of the resource parameters is being overutilized. The monitor can also calculate an amount of resources to be removed or added. The monitor can interact directly with a dynamic logical partition reconfiguration function of the data processing host or it can utilize an intelligent intermediary that listens for a partition reconfiguration suggestion from the monitor.
    Type: Grant
    Filed: October 5, 2012
    Date of Patent: April 15, 2014
    Assignee: SAP AG
    Inventors: Punit B. Shah, Nuzio Ruffolo, Enzo Cialini
  • Publication number: 20130297653
    Abstract: A method for offloaded handling of metadata storage management in a utility file system includes trapping a request for a file operation from an application process directed to a specified file of metadata stored in a utility file system of a host data processing system. The method further includes determining whether the application process is part of a privileged application or an unprivileged application and restricting access to the specified file if it is determined that the application process is part of an unprivileged application, but otherwise transforming the specified request into at least one predetermined operation if it is determined that the application process is part of a privileged application and directing the performance of the predetermined operation in the utility file system.
    Type: Application
    Filed: May 2, 2012
    Publication date: November 7, 2013
    Applicant: International Business Machines Corporation
    Inventors: Naresh K. Chainani, Punit B. Shah
  • Patent number: 8407711
    Abstract: A manage-analyze-plan-execute (MAPE) loop is performed on a system-wide basis in relation to subsystems of a computing system based on one or more parameters. Performing the MAPE loop results in a performance level at which each subsystem is to operate to conserve energy utilization on the system-wide basis such that the computing system still satisfies the parameters. The subsystem the performance level at which each subsystem is to operate is communicated to the subsystem. Each subsystem operates at the performance level communicated to the subsystem.
    Type: Grant
    Filed: July 13, 2008
    Date of Patent: March 26, 2013
    Assignee: International Business Machines Corporation
    Inventors: Punit B. Shah, Billy R. Robinson, Francis M. Bartucca, Carlos P. Sosa
  • Patent number: 8285966
    Abstract: An automated monitor monitors one or more resource parameters in a logical partition running a database application in a logically partitioned data processing host. The monitor initiates dynamic logical partition reconfiguration in the event that the parameters vary from predetermined parameter values. In particular, the monitor can initiate removal of resources if one of the resource parameters is being underutilized and initiate addition of resources if one of the resource parameters is being overutilized. The monitor can also calculate an amount of resources to be removed or added. The monitor can interact directly with a dynamic logical partition reconfiguration function of the data processing host or it can utilize an intelligent intermediary that listens for a partition reconfiguration suggestion from the monitor. In the latter configuration, the listener can determine where available resources are located and attempt to fully or partially satisfy the resource needs suggested by the monitor.
    Type: Grant
    Filed: December 21, 2011
    Date of Patent: October 9, 2012
    Assignee: SAP AG
    Inventors: Punit B. Shah, Nuzio Ruffolo, Enzo Cialini
  • Publication number: 20120110592
    Abstract: An automated monitor monitors one or more resource parameters in a logical partition running a database application in a logically partitioned data processing host. The monitor initiates dynamic logical partition reconfiguration in the event that the parameters vary from predetermined parameter values. In particular, the monitor can initiate removal of resources if one of the resource parameters is being underutilized and initiate addition of resources if one of the resource parameters is being overutilized. The monitor can also calculate an amount of resources to be removed or added. The monitor can interact directly with a dynamic logical partition reconfiguration function of the data processing host or it can utilize an intelligent intermediary that listens for a partition reconfiguration suggestion from the monitor. In the latter configuration, the listener can determine where available resources are located and attempt to fully or partially satisfy the resource needs suggested by the monitor.
    Type: Application
    Filed: December 21, 2011
    Publication date: May 3, 2012
    Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATION
    Inventors: Punit B. Shah, Nuzio Ruffolo, Enzo Cialini