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: 20250245273
    Abstract: 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: Application
    Filed: January 26, 2024
    Publication date: July 31, 2025
    Inventor: Patrick James Helland
  • Patent number: 12282470
    Abstract: 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: Grant
    Filed: October 5, 2022
    Date of Patent: April 22, 2025
    Assignee: Salesforce, Inc.
    Inventors: Patrick James Helland, James E. Mace
  • Publication number: 20250061133
    Abstract: 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: Application
    Filed: November 7, 2024
    Publication date: February 20, 2025
    Inventors: Patrick James Helland, David Edward DeHaan
  • Publication number: 20250036654
    Abstract: 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: Application
    Filed: July 22, 2024
    Publication date: January 30, 2025
    Inventor: Patrick James Helland
  • Patent number: 12189417
    Abstract: 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: Grant
    Filed: June 8, 2021
    Date of Patent: January 7, 2025
    Assignee: Salesforce, Inc.
    Inventor: Patrick James Helland
  • Patent number: 12164494
    Abstract: 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: Grant
    Filed: December 11, 2023
    Date of Patent: December 10, 2024
    Assignee: Salesforce, Inc.
    Inventor: Patrick James Helland
  • Patent number: 12153603
    Abstract: 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: Grant
    Filed: December 9, 2022
    Date of Patent: November 26, 2024
    Assignee: Salesforce, Inc.
    Inventors: Patrick James Helland, David Edward DeHaan
  • Patent number: 12153563
    Abstract: 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: Grant
    Filed: June 8, 2021
    Date of Patent: November 26, 2024
    Assignee: Salesforce, Inc.
    Inventor: Patrick James Helland
  • Patent number: 12061526
    Abstract: 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: Grant
    Filed: June 8, 2021
    Date of Patent: August 13, 2024
    Inventor: Patrick James Helland
  • Patent number: 12013860
    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.
    Type: Grant
    Filed: January 3, 2023
    Date of Patent: June 18, 2024
    Assignee: Salesforce, Inc.
    Inventors: Patrick James Helland, James E. Mace, Thomas Fanghaenel
  • Publication number: 20240193186
    Abstract: 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: Application
    Filed: December 9, 2022
    Publication date: June 13, 2024
    Inventors: Patrick James Helland, David Edward DeHaan
  • Patent number: 11989051
    Abstract: 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: Grant
    Filed: June 8, 2021
    Date of Patent: May 21, 2024
    Assignee: Salesforce, Inc.
    Inventor: Patrick James Helland
  • Publication number: 20240111746
    Abstract: 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: Application
    Filed: December 11, 2023
    Publication date: April 4, 2024
    Inventor: Patrick James Helland
  • Patent number: 11847107
    Abstract: 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: Grant
    Filed: November 7, 2022
    Date of Patent: December 19, 2023
    Assignee: Salesforce, Inc.
    Inventor: Patrick James Helland
  • Patent number: 11822535
    Abstract: 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: Grant
    Filed: June 8, 2021
    Date of Patent: November 21, 2023
    Assignee: Salesforce, Inc.
    Inventor: Patrick James Helland
  • Patent number: 11741050
    Abstract: 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: Grant
    Filed: January 29, 2021
    Date of Patent: August 29, 2023
    Assignee: Salesforce, Inc.
    Inventors: Venkateswararao Jujjuri, Nathaniel Wyatt, Jameison Bear Martin, Patrick James Helland
  • Publication number: 20230244649
    Abstract: 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: Application
    Filed: October 5, 2022
    Publication date: August 3, 2023
    Inventors: Patrick James Helland, James E. Mace
  • Publication number: 20230237035
    Abstract: 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: Application
    Filed: October 5, 2022
    Publication date: July 27, 2023
    Inventors: Patrick James Helland, James E. Mace
  • Patent number: 11681705
    Abstract: 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: Grant
    Filed: July 1, 2020
    Date of Patent: June 20, 2023
    Assignee: Salesforce, Inc.
    Inventor: Patrick James Helland
  • Publication number: 20230143075
    Abstract: 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: Application
    Filed: November 7, 2022
    Publication date: May 11, 2023
    Inventor: Patrick James Helland