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: 11940994Abstract: 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: GrantFiled: October 29, 2021Date of Patent: March 26, 2024Assignee: Salesforce, Inc.Inventors: Rui Zhang, Prateek Swamy, Yi Xia, Punit B. Shah, Rama K. Korlapati
-
Publication number: 20230135823Abstract: 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: ApplicationFiled: October 29, 2021Publication date: May 4, 2023Inventors: Rui Zhang, Prateek Swamy, Yi Xia, Punit B. Shah, Rama K. Korlapati
-
Patent number: 11573713Abstract: 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: GrantFiled: November 2, 2021Date of Patent: February 7, 2023Assignee: Salesforce, Inc.Inventors: Punit B. Shah, Rui Zhang, Rama K. Korlapati, Prashasthi Prabhakar, Dominique Jeremy Evans
-
Patent number: 11416470Abstract: 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: GrantFiled: May 30, 2019Date of Patent: August 16, 2022Assignee: Salesforce, Inc.Inventors: Subho Sanjay Chatterjee, Patrick James Helland, Nathaniel Wyatt, James E. Mace, Punit B. Shah
-
Patent number: 11347713Abstract: 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: GrantFiled: September 27, 2019Date of Patent: May 31, 2022Assignee: salesforce.com, inc.Inventors: Jeffrey Ira Cohen, Punit B. Shah, Serge Philippe Rielau
-
Patent number: 11243873Abstract: 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: GrantFiled: July 31, 2020Date of Patent: February 8, 2022Assignee: salesforce.com, inc.Inventors: Mark Wilding, Punit B. Shah
-
Patent number: 11176138Abstract: 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: GrantFiled: February 25, 2020Date of Patent: November 16, 2021Assignee: salesforce.com, inc.Inventors: Punit B. Shah, Douglas Doole, Rama K Korlapati, Serge P. Rielau
-
Publication number: 20210263936Abstract: 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: ApplicationFiled: February 25, 2020Publication date: August 26, 2021Inventors: Punit B. Shah, Douglas Doole, Rama K. Korlapati, Serge P. Rielau
-
Publication number: 20210097051Abstract: 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: ApplicationFiled: September 27, 2019Publication date: April 1, 2021Inventors: Jeffrey Ira Cohen, Punit B. Shah, Serge Philippe Rielau
-
Publication number: 20200364136Abstract: 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: ApplicationFiled: July 31, 2020Publication date: November 19, 2020Inventors: Mark Wilding, Punit B. Shah
-
Patent number: 10733083Abstract: 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: GrantFiled: October 18, 2017Date of Patent: August 4, 2020Assignee: salesforce.com, inc.Inventors: Mark Wilding, Punit B. Shah
-
Publication number: 20190278762Abstract: 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: ApplicationFiled: May 30, 2019Publication date: September 12, 2019Inventors: Subho Sanjay Chatterjee, Patrick James Helland, Nathaniel Wyatt, James E. Mace, Punit B. Shah
-
Patent number: 10346386Abstract: 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: GrantFiled: November 4, 2016Date of Patent: July 9, 2019Assignee: salesforce.com, inc.Inventors: Subho Sanjay Chatterjee, Patrick James Helland, Nathaniel Wyatt, James E. Mace, Punit B. Shah
-
Publication number: 20190114253Abstract: 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: ApplicationFiled: October 18, 2017Publication date: April 18, 2019Inventors: Mark Wilding, Punit B. Shah
-
Publication number: 20180129693Abstract: 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: ApplicationFiled: November 4, 2016Publication date: May 10, 2018Inventors: Subho Sanjay Chatterjee, Patrick James Helland, Nathaniel Wyatt, James E. Mace, Punit B. Shah
-
Patent number: 8700876Abstract: 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: GrantFiled: October 5, 2012Date of Patent: April 15, 2014Assignee: SAP AGInventors: Punit B. Shah, Nuzio Ruffolo, Enzo Cialini
-
Publication number: 20130297653Abstract: 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: ApplicationFiled: May 2, 2012Publication date: November 7, 2013Applicant: International Business Machines CorporationInventors: Naresh K. Chainani, Punit B. Shah
-
Patent number: 8407711Abstract: 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: GrantFiled: July 13, 2008Date of Patent: March 26, 2013Assignee: International Business Machines CorporationInventors: Punit B. Shah, Billy R. Robinson, Francis M. Bartucca, Carlos P. Sosa
-
Patent number: 8285966Abstract: 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: GrantFiled: December 21, 2011Date of Patent: October 9, 2012Assignee: SAP AGInventors: Punit B. Shah, Nuzio Ruffolo, Enzo Cialini
-
Publication number: 20120110592Abstract: 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: ApplicationFiled: December 21, 2011Publication date: May 3, 2012Applicant: INTERNATIONAL BUSINESS MACHINES CORPORATIONInventors: Punit B. Shah, Nuzio Ruffolo, Enzo Cialini