-
公开(公告)号:US20210097051A1
公开(公告)日:2021-04-01
申请号:US16585191
申请日:2019-09-27
Applicant: salesforce.com, inc.
Inventor: Jeffrey Ira Cohen , Punit B. Shah , Serge Philippe Rielau
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.
-
公开(公告)号:US11243873B2
公开(公告)日:2022-02-08
申请号:US16945399
申请日:2020-07-31
Applicant: salesforce.com, inc.
Inventor: Mark Wilding , Punit B. Shah
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.
-
公开(公告)号:US11176138B2
公开(公告)日:2021-11-16
申请号:US16800837
申请日:2020-02-25
Applicant: salesforce.com, inc.
Inventor: Punit B. Shah , Douglas Doole , Rama K Korlapati , Serge P. Rielau
IPC: G06F16/245 , G06F16/2453
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.
-
公开(公告)号:US11416470B2
公开(公告)日:2022-08-16
申请号:US16426052
申请日:2019-05-30
Applicant: salesforce.com, inc.
Inventor: Subho Sanjay Chatterjee , Patrick James Helland , Nathaniel Wyatt , James E. Mace , Punit B. Shah
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.
-
公开(公告)号:US20210263936A1
公开(公告)日:2021-08-26
申请号:US16800837
申请日:2020-02-25
Applicant: salesforce.com, inc.
Inventor: Punit B. Shah , Douglas Doole , Rama K. Korlapati , Serge P. Rielau
IPC: G06F16/2453
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.
-
公开(公告)号:US11940994B2
公开(公告)日:2024-03-26
申请号:US17515118
申请日:2021-10-29
Applicant: salesforce.com, inc.
Inventor: Rui Zhang , Prateek Swamy , Yi Xia , Punit B. Shah , Rama K. Korlapati
IPC: G06F7/00 , G06F16/23 , G06F16/2455 , G06F17/00
CPC classification number: G06F16/2379 , G06F16/24552
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.
-
公开(公告)号:US10733083B2
公开(公告)日:2020-08-04
申请号:US15787470
申请日:2017-10-18
Applicant: salesforce.com, inc.
Inventor: Mark Wilding , Punit B. Shah
IPC: G06F11/36
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.
-
公开(公告)号:US10346386B2
公开(公告)日:2019-07-09
申请号:US15343969
申请日:2016-11-04
Applicant: salesforce.com, inc.
Inventor: Subho Sanjay Chatterjee , Patrick James Helland , Nathaniel Wyatt , James E. Mace , Punit B. Shah
IPC: G06F16/23
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.
-
公开(公告)号:US20180129693A1
公开(公告)日:2018-05-10
申请号:US15343969
申请日:2016-11-04
Applicant: salesforce.com, inc.
Inventor: Subho Sanjay Chatterjee , Patrick James Helland , Nathaniel Wyatt , James E. Mace , Punit B. Shah
IPC: G06F17/30
CPC classification number: G06F16/2343 , G06F16/2329
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.
-
公开(公告)号:US20230135823A1
公开(公告)日:2023-05-04
申请号:US17515118
申请日:2021-10-29
Applicant: salesforce.com, inc.
Inventor: Rui Zhang , Prateek Swamy , Yi Xia , Punit B. Shah , Rama K. Korlapati
IPC: G06F16/23 , G06F16/2455
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.
-
-
-
-
-
-
-
-
-