-
公开(公告)号:US11386065B2
公开(公告)日:2022-07-12
申请号:US15420377
申请日:2017-01-31
Applicant: salesforce.com, inc.
Inventor: Thomas Fanghaenel , Patrick James Helland , James E. Mace
Abstract: Techniques are disclosed relating to efficiently processing of concurrent database transactions. In one embodiment, a database system receives a first key-value pair for a database transaction and stores the key-value pair in a data structure for active database transactions. The storing may include indexing into a hash table of the data structure with a key of the key-value pair to identify a hash bucket of the hash table corresponding to the key, acquiring a latch associated with the identified hash bucket, and, based on a state of the acquired latch, appending, to the hash bucket, a record specifying the key-value pair. The database system may cause the key-value pair from the data structure to be committed to persistent storage in response to the database transaction being committed.
-
公开(公告)号:US10691696B2
公开(公告)日:2020-06-23
申请号:US15420342
申请日:2017-01-31
Applicant: salesforce.com, inc.
Inventor: Patrick James Helland , James E. Mace , Thomas Fanghaenel
IPC: G06F16/2455
Abstract: This disclosure provides various techniques that may allow for accessing values stored in a data structure that stores multiple values corresponding to database transactions using a skip list. A key may be used to traverse the skip list to access data associated with the key. The skip list maintains on ordering of multiple keys, each associated with a particular record in the data structure, using indirect links between data records in the data structure that reference buckets included in hash table. Each bucket includes pointers to one or more records in the skip list.
-
公开(公告)号: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.
-
公开(公告)号:US11544271B2
公开(公告)日:2023-01-03
申请号:US16908097
申请日:2020-06-22
Applicant: salesforce.com, inc.
Inventor: Patrick James Helland , James E. Mace , Thomas Fanghaenel
IPC: G06F16/2455
Abstract: This disclosure provides various techniques that may allow for accessing values stored in a data structure that stores multiple values corresponding to database transactions using a skip list. A key may be used to traverse the skip list to access data associated with the key. The skip list maintains on ordering of multiple keys, each associated with a particular record in the data structure, using indirect links between data records in the data structure that reference buckets included in hash table. Each bucket includes pointers to one or more records in the skip list.
-
公开(公告)号:US20200320083A1
公开(公告)日:2020-10-08
申请号:US16908097
申请日:2020-06-22
Applicant: salesforce.com, inc.
Inventor: Patrick James Helland , James E. Mace , Thomas Fanghaenel
IPC: G06F16/2455
Abstract: This disclosure provides various techniques that may allow for accessing values stored in a data structure that stores multiple values corresponding to database transactions using a skip list. A key may be used to traverse the skip list to access data associated with the key. The skip list maintains on ordering of multiple keys, each associated with a particular record in the data structure, using indirect links between data records in the data structure that reference buckets included in hash table. Each bucket includes pointers to one or more records in the skip list.
-
公开(公告)号:US10769128B2
公开(公告)日:2020-09-08
申请号:US15420255
申请日:2017-01-31
Applicant: salesforce.com, inc.
Inventor: James E. Mace , Jameison Bear Martin
Abstract: This disclosure provides various techniques that may allow for key-level lock requests in a database to be managed by code that manages a memory buffer for the database. The transaction-level locks and other higher level locks may be managed by a separate lock manager. In an embodiment, the code inserts key-level lock requests in the record chain even if there is a conflict, and the key-level lock requests remain in the chain after the locks are subsequently granted. Preemption may also be supported in the record chain, in some embodiments.
-
18.
公开(公告)号:US10740320B2
公开(公告)日:2020-08-11
申请号:US16135242
申请日:2018-09-19
Applicant: salesforce.com, inc.
Inventor: James E. Mace , Atish Agrawal
Abstract: Systems and methods are provided for a shared memory between a database system and a storage catalog server, which stores system catalog overrides and locks for at least a first workflow. The current system catalog overrides include at least a portion of the system catalog overrides and locks that are retrieved by the shared memory from the storage catalog server at a predetermined point in time. The database system performs a check of at least one of index validity and tenant validity for a second workflow or other database operation by checking a state of the corresponding tenant or index in the current system catalog overrides. The system catalog overrides suppress visibility of the respective system catalog changes when the database system determines that at least one of the index and the tenant is invalid based on the current system catalog overrides for the first workflow.
-
公开(公告)号:US20190278762A1
公开(公告)日:2019-09-12
申请号:US16426052
申请日:2019-05-30
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.
-
公开(公告)号:US20180218023A1
公开(公告)日:2018-08-02
申请号:US15420377
申请日:2017-01-31
Applicant: salesforce.com, inc.
Inventor: Thomas Fanghaenel , Patrick James Helland , James E. Mace
IPC: G06F17/30
Abstract: Techniques are disclosed relating to efficiently processing of concurrent database transactions. In one embodiment, a database system receives a first key-value pair for a database transaction and stores the key-value pair in a data structure for active database transactions. The storing may include indexing into a hash table of the data structure with a key of the key-value pair to identify a hash bucket of the hash table corresponding to the key, acquiring a latch associated with the identified hash bucket, and, based on a state of the acquired latch, appending, to the hash bucket, a record specifying the key-value pair. The database system may cause the key-value pair from the data structure to be committed to persistent storage in response to the database transaction being committed.
-
-
-
-
-
-
-
-
-