Patents by Inventor Patrick James Helland
Patrick James Helland 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).
-
Publication number: 20250245273Abstract: Techniques are disclosed that relate to skip lists. A computer system maintains a skip list having towers of varying depths and entries storing pointers to other towers. A first tower includes an entry at a particular depth storing a pointer to access an entry of a second tower. The pointer includes first similarity information indicating an amount of similarity between a key of the first tower and a key of the second tower. The computer system performs a traversal of the skip list for a search key. The computer system generates second similarity information indicating an amount of similarity between the first tower's key and the search key. Based on a comparison involving the first and second similarity information and without accessing the second tower to obtain information about its key, the computer system determines whether to traverse to the second tower using the pointer or descend the first tower.Type: ApplicationFiled: January 26, 2024Publication date: July 31, 2025Inventor: Patrick James Helland
-
Patent number: 12282470Abstract: Techniques are disclosed relating to backing up skip list data structures to facilitate a subsequent recovery. In various embodiments, a computing system creates a checkpoint of a skip list including a plurality of key-value records that include pointers to others of the plurality of key-value records. Creating the checkpoint includes scanning the skip list to identify ones of the plurality of key-value records that are relevant to the checkpoint and storing the identified key-value records in a storage such that the identified key-value records include pointers modified to exclude ones of the plurality of key-value records that are not relevant to the checkpoint. The computing system can then recover the skip list based on the created checkpoint.Type: GrantFiled: October 5, 2022Date of Patent: April 22, 2025Assignee: Salesforce, Inc.Inventors: Patrick James Helland, James E. Mace
-
Publication number: 20250061133Abstract: Techniques are disclosed pertaining to layered filtering. A computer system may store records in a hierarchy of levels. The computer system may receive a request to perform a key range search to locate records that fall within a key range and satisfy selection criteria. The computer system may perform the key range search. As part of processing a particular level, the computer system may receive a first set of records associated with another level and select a second set of records from the particular level that fall within the key range and satisfy the selection criteria. The computer system may merge the first and second sets of records into a third set of records, which may include not inserting, into the third set, any record of the first set of records for which there is a newer version in the particular level that does not satisfy the selection criteria.Type: ApplicationFiled: November 7, 2024Publication date: February 20, 2025Inventors: Patrick James Helland, David Edward DeHaan
-
Publication number: 20250036654Abstract: Techniques are disclosed relating to a database system. The database system includes multiple coordinator nodes storing replicas of a partition. Each partition describes the state of locks and transactions for keys covered by that partition of keys. Each partition is, in turn, replicated. The multiple coordinator nodes receive, from multiple worker nodes, requests to grant a lock for a key to permit a worker node to write a record for the key as part of executing a transaction. A given coordinator node of the multiple coordinator nodes sends an approval response for the lock to at most one of the worker nodes. A single worker node acquires the lock in response to receiving approval responses from a majority of the multiple coordinator nodes, and none of the multiple worker nodes acquire the lock in response to none of them receiving approval responses from a majority of the multiple coordinator nodes.Type: ApplicationFiled: July 22, 2024Publication date: January 30, 2025Inventor: Patrick James Helland
-
Patent number: 12189417Abstract: Techniques are disclosed relating to a database system includes worker nodes operable to perform transactions and director nodes operable to ensure transactional consistency for the transactions. A worker node may receive a request to perform a transaction involving writing a record. The worker node may then issue, to director nodes of the database system, a request for information that facilitates performance of an operation for the transaction. A director node may determine whether to approve the request based on whether the operation could cause transactional inconsistency in the database system. The worker node may proceed to perform the operation for the transaction in response to receiving approval responses from a majority of the director nodes, with none of the received responses indicating a disapproval of the transaction.Type: GrantFiled: June 8, 2021Date of Patent: January 7, 2025Assignee: Salesforce, Inc.Inventor: Patrick James Helland
-
Patent number: 12164494Abstract: Techniques are disclosed relating to the distribution of database key permissions. A database system may distribute first permission information to a plurality of database nodes that identifies a distribution of key range permissions to ones of the plurality of database nodes. A given key range permission being distributed to a given database node may permit that database node to write records whose keys fall within a key range associated with the given key range permission. The database system may receive, from a first database node, a request for a first key range permission provisioned to a second database node. The database system may modify the first permission information to derive second permission information that provisions the first key range permission to the first database node instead of the second database node. The database system may distribute the second permission information to ones of the plurality of database nodes.Type: GrantFiled: December 11, 2023Date of Patent: December 10, 2024Assignee: Salesforce, Inc.Inventor: Patrick James Helland
-
Patent number: 12153603Abstract: Techniques are disclosed pertaining to layered filtering. A computer system may store records in a hierarchy of levels. The computer system may receive a request to perform a key range search to locate records that fall within a key range and satisfy selection criteria. The computer system may perform the key range search. As part of processing a particular level, the computer system may receive a first set of records associated with another level and select a second set of records from the particular level that fall within the key range and satisfy the selection criteria. The computer system may merge the first and second sets of records into a third set of records, which may include not inserting, into the third set, any record of the first set of records for which there is a newer version in the particular level that does not satisfy the selection criteria.Type: GrantFiled: December 9, 2022Date of Patent: November 26, 2024Assignee: Salesforce, Inc.Inventors: Patrick James Helland, David Edward DeHaan
-
Patent number: 12153563Abstract: Techniques are disclosed relating to a database system includes worker nodes operable to perform transactions and director nodes operable to ensure transactional consistency for the transactions. A worker node may receive a request to perform a transaction involving writing a record. The worker node may then issue, to director nodes of the database system, a request for information that facilitates performance of an operation for the transaction. A director node may determine whether to approve the request based on whether the operation could cause transactional inconsistency in the database system. The worker node may proceed to perform the operation for the transaction in response to receiving approval responses from a majority of the director nodes, with none of the received responses indicating a disapproval of the transaction.Type: GrantFiled: June 8, 2021Date of Patent: November 26, 2024Assignee: Salesforce, Inc.Inventor: Patrick James Helland
-
Patent number: 12061526Abstract: Techniques are disclosed relating to a database system includes worker nodes operable to perform transactions and director nodes operable to ensure transactional consistency for the transactions. A worker node may receive a request to perform a transaction involving writing a record. The worker node may then issue, to director nodes of the database system, a request for information that facilitates performance of an operation for the transaction. A director node may determine whether to approve the request based on whether the operation could cause transactional inconsistency in the database system. The worker node may proceed to perform the operation for the transaction in response to receiving approval responses from a majority of the director nodes, with none of the received responses indicating a disapproval of the transaction.Type: GrantFiled: June 8, 2021Date of Patent: August 13, 2024Inventor: Patrick James Helland
-
Patent number: 12013860Abstract: 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.Type: GrantFiled: January 3, 2023Date of Patent: June 18, 2024Assignee: Salesforce, Inc.Inventors: Patrick James Helland, James E. Mace, Thomas Fanghaenel
-
Publication number: 20240193186Abstract: Techniques are disclosed pertaining to layered filtering. A computer system may store records in a hierarchy of levels. The computer system may receive a request to perform a key range search to locate records that fall within a key range and satisfy selection criteria. The computer system may perform the key range search. As part of processing a particular level, the computer system may receive a first set of records associated with another level and select a second set of records from the particular level that fall within the key range and satisfy the selection criteria. The computer system may merge the first and second sets of records into a third set of records, which may include not inserting, into the third set, any record of the first set of records for which there is a newer version in the particular level that does not satisfy the selection criteria.Type: ApplicationFiled: December 9, 2022Publication date: June 13, 2024Inventors: Patrick James Helland, David Edward DeHaan
-
Patent number: 11989051Abstract: Techniques are disclosed relating to a database system includes worker nodes operable to perform transactions and director nodes operable to ensure transactional consistency for the transactions. A worker node may receive a request to perform a transaction involving writing a record. The worker node may then issue, to director nodes of the database system, a request for information that facilitates performance of an operation for the transaction. A director node may determine whether to approve the request based on whether the operation could cause transactional inconsistency in the database system. The worker node may proceed to perform the operation for the transaction in response to receiving approval responses from a majority of the director nodes, with none of the received responses indicating a disapproval of the transaction.Type: GrantFiled: June 8, 2021Date of Patent: May 21, 2024Assignee: Salesforce, Inc.Inventor: Patrick James Helland
-
Publication number: 20240111746Abstract: Techniques are disclosed relating to the distribution of database key permissions. A database system may distribute first permission information to a plurality of database nodes that identifies a distribution of key range permissions to ones of the plurality of database nodes. A given key range permission being distributed to a given database node may permit that database node to write records whose keys fall within a key range associated with the given key range permission. The database system may receive, from a first database node, a request for a first key range permission provisioned to a second database node. The database system may modify the first permission information to derive second permission information that provisions the first key range permission to the first database node instead of the second database node. The database system may distribute the second permission information to ones of the plurality of database nodes.Type: ApplicationFiled: December 11, 2023Publication date: April 4, 2024Inventor: Patrick James Helland
-
Patent number: 11847107Abstract: Techniques are disclosed relating to the distribution of database key permissions. A database system may distribute first permission information to a plurality of database nodes that identifies a distribution of key range permissions to ones of the plurality of database nodes. A given key range permission being distributed to a given database node may permit that database node to write records whose keys fall within a key range associated with the given key range permission. The database system may receive, from a first database node, a request for a first key range permission provisioned to a second database node. The database system may modify the first permission information to derive second permission information that provisions the first key range permission to the first database node instead of the second database node. The database system may distribute the second permission information to ones of the plurality of database nodes.Type: GrantFiled: November 7, 2022Date of Patent: December 19, 2023Assignee: Salesforce, Inc.Inventor: Patrick James Helland
-
Patent number: 11822535Abstract: Techniques are disclosed relating to a database system includes worker nodes operable to perform transactions and director nodes operable to ensure transactional consistency for the transactions. A worker node may receive a request to perform a transaction involving writing a record. The worker node may then issue, to director nodes of the database system, a request for information that facilitates performance of an operation for the transaction. A director node may determine whether to approve the request based on whether the operation could cause transactional inconsistency in the database system. The worker node may proceed to perform the operation for the transaction in response to receiving approval responses from a majority of the director nodes, with none of the received responses indicating a disapproval of the transaction.Type: GrantFiled: June 8, 2021Date of Patent: November 21, 2023Assignee: Salesforce, Inc.Inventor: Patrick James Helland
-
Patent number: 11741050Abstract: Techniques are disclosed relating to managing distributed storage of data for various entities according to classifications for these entities. A database node of a distributed storage system may receive, from a first entity of a plurality of entities, a request to store a set of data. The database node may further obtain metadata associated with the first entity, wherein the metadata specifies one of a plurality of classifications for the entities. The database node may provide the set of data to one or more of a plurality of caches for storage. The caches may be located in two or more availability zones and are configured to store the set of data based on the classification for the first entity identified in the metadata associated with the first entity. The database node may also store the set of data in a shared object storage coupled to the database node.Type: GrantFiled: January 29, 2021Date of Patent: August 29, 2023Assignee: Salesforce, Inc.Inventors: Venkateswararao Jujjuri, Nathaniel Wyatt, Jameison Bear Martin, Patrick James Helland
-
Publication number: 20230244649Abstract: Techniques are disclosed relating to backing up skip list data structures to facilitate a subsequent recovery. In various embodiments, a computing system creates a checkpoint of a skip list including a plurality of key-value records that include pointers to others of the plurality of key-value records. Creating the checkpoint includes scanning the skip list to identify ones of the plurality of key-value records that are relevant to the checkpoint and storing the identified key-value records in a storage such that the identified key-value records include pointers modified to exclude ones of the plurality of key-value records that are not relevant to the checkpoint. The computing system can then recover the skip list based on the created checkpoint.Type: ApplicationFiled: October 5, 2022Publication date: August 3, 2023Inventors: Patrick James Helland, James E. Mace
-
Publication number: 20230237035Abstract: Techniques are disclosed relating to efficiently managing skip list data structures. In various embodiments, a computing system stores a skip list including a plurality of key-value records that include one or more pointers to others of the plurality of key-value records. The computing system scans the skip list for a location associated with a particular key. The scanning includes using a prefix of the particular key to identify a particular portion of the skip list, where the particular portion includes key-value records having keys with the same prefix. The scanning also further includes initiating a scan for the location within the identified portion. In some embodiments, the computing system inserts a key-value record into the skip list at the location associated with the particular key in response to the scan identifying the location.Type: ApplicationFiled: October 5, 2022Publication date: July 27, 2023Inventors: Patrick James Helland, James E. Mace
-
Patent number: 11681705Abstract: Techniques are disclosed relating to tree data structures capable of storing information indicative of database keys. A computer system may operate a database. The computer system may store a multi-level tree data structure usable to perform key lookups for the database. In various cases, the multi-level tree data structure may be stored in system memory as a plurality of subtree data structures each comprising a set of linked nodes. A given one of the plurality of subtree data structures may be stored as a respective continuous block of information in system memory. The computer system may access the respective continuous block for a first particular subtree data structure encompassing a particular range of levels in the multi-level tree data structure. The accessing may be performed without accessing one or more other subtree data structures encompassing one or more levels within the particular range of levels.Type: GrantFiled: July 1, 2020Date of Patent: June 20, 2023Assignee: Salesforce, Inc.Inventor: Patrick James Helland
-
Publication number: 20230143075Abstract: Techniques are disclosed relating to the distribution of database key permissions. A database system may distribute first permission information to a plurality of database nodes that identifies a distribution of key range permissions to ones of the plurality of database nodes. A given key range permission being distributed to a given database node may permit that database node to write records whose keys fall within a key range associated with the given key range permission. The database system may receive, from a first database node, a request for a first key range permission provisioned to a second database node. The database system may modify the first permission information to derive second permission information that provisions the first key range permission to the first database node instead of the second database node. The database system may distribute the second permission information to ones of the plurality of database nodes.Type: ApplicationFiled: November 7, 2022Publication date: May 11, 2023Inventor: Patrick James Helland