Patents by Inventor Terry Chong

Terry Chong 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: 11841967
    Abstract: System and methods of the disclosed subject matter provide segregating, at a memory storage coupled to a multitenant database system, first tenant data of a first tenant from at least second tenant data of a second tenant, based on a first tenant identifier. A first encryption key associated with the first tenant may be retrieved from a key cache memory based on the first tenant identifier, to encrypt one or more fragments of the first tenant data. The fragments of the first tenant data may be encrypted based on the retrieved encryption key. Non-encrypted header information may be generated for each of the encrypted fragments of the first tenant data, where the header information may have metadata including the first tenant identifier. The encrypted fragments of the first tenant data and the corresponding non-encrypted header information may be stored in the immutable storage.
    Type: Grant
    Filed: December 27, 2021
    Date of Patent: December 12, 2023
    Assignee: Salesforce, Inc.
    Inventors: Terry Chong, Jameison Bear Martin, Thomas Fanghaenel, Andrew Tucker, Nathaniel Wyatt, Raghavendran Hanumantharau, Assaf Ben Gur, William Charles Mortimore, Jr.
  • Patent number: 11797498
    Abstract: Systems and methods are provided for migrating a tenant of a database system from a source database instance to a destination database instance. The systems and methods include quiescing the tenant data of the tenant to be migrated from the source database instance to the destination database instance so that no new data is written to the storage of the database system associated with the tenant identifier at the source database instance, transmitting metadata of the tenant to be migrated from the source database instance to the destination database instance, and modifying, at the destination database instance, the metadata of the tenant so that the destination database instance has information to point to groupings of data in the storage for the destination database to access the tenant data.
    Type: Grant
    Filed: November 17, 2020
    Date of Patent: October 24, 2023
    Assignee: Salesforce, Inc.
    Inventors: Jameison Bear Martin, Nathaniel Wyatt, Gary J. Baker, Thomas Fanghaenel, Terry Chong
  • Patent number: 11775524
    Abstract: Techniques are disclosed relating to maintaining a cache usable to locate data stored in a data structure. A computer system, in various embodiments, maintains a data structure having a plurality of levels that store files for a database. The files may include one or more records that each have a key and corresponding data. The computer system may also maintain a cache for the database whose entries store, for a key, an indication of a location of a corresponding record in a file of the data structure. In some embodiments, the computer system receives a request to access a particular record stored in the data structure where the request specifies a key usable to locate the particular record. The computer system may retrieve, from the cache via the key, a particular indication of a location of the particular record and may use the particular indication to access the particular record.
    Type: Grant
    Filed: March 7, 2022
    Date of Patent: October 3, 2023
    Assignee: Salesforce, Inc.
    Inventors: Thomas Fanghaenel, Jameison Bear Martin, Nathaniel Wyatt, Diego Ongaro, Terry Chong
  • Patent number: 11709814
    Abstract: Techniques are disclosed relating to building an in-memory multi-level data structure useable to determine presence or absence of key ranges in files consisting of database records. In various embodiments, a computer system operates a database, including maintaining a set of records having a set of corresponding keys that are accessible in key-sorted order and generates a multi-level data structure that facilitates key range lookups against the set of records. The generating may include accessing ones of the set of keys in key-sorted order and determining, for a particular accessed key that includes a set of characters, an intermediate level within the multi-level data structure and a subset of the characters of the particular accessed key for insertion. The computer system may insert, starting at the intermediate level, information that identifies the subset of characters, with the inserting being performed without traversing any levels before the intermediate level.
    Type: Grant
    Filed: October 23, 2020
    Date of Patent: July 25, 2023
    Assignee: Salesforce, Inc.
    Inventors: Rohit Agrawal, Aditya Shetty, Kaushal Mittal, Terry Chong, Thomas Fanghaenel, Vaibhav Arora
  • Publication number: 20230141205
    Abstract: Techniques are disclosed relating to merge operations for multi-level data structures, such as log-structured merge-trees (LSM trees). A computer system may store, in a database, a plurality of files as part of an LSM tree and a plurality of database key structures. A given one of the plurality of database key structures may indicate, for a corresponding one of the plurality of files, a set of key ranges derived from database records that are included in the corresponding file. The computer system may determine, using ones of the plurality of database key structures, a key range overlap that is indicative of an extent of overlap of key ranges from a set of the plurality of files with respect to a particular key range. Based on the determined key range overlap, the computer system may assign a priority level to a merge operation that involves the set of files.
    Type: Application
    Filed: December 22, 2022
    Publication date: May 11, 2023
    Inventors: Rohit Agrawal, Aditya Shetty, Kaushal Mittal, Terry Chong, Thomas Fanghaenel, Vaibhav Arora
  • Publication number: 20230060733
    Abstract: Techniques are disclosed relating to truncating a tenant's data from a table. A database node may maintain a multi-tenant table having records for tenants. Maintaining the table may include writing a record for a tenant into an in-memory cache and performing a flush operation to flush the record to a shared storage. The database node may write a truncate record into the in-memory cache that truncates a tenant from the table such that records of the tenant having a timestamp indicating a time before the truncate record cannot be accessed as part of a record query. While the truncate record remains in the in-memory cache, the database node may receive a request to perform a record query for a key of the tenant, make a determination on whether a record was committed for the key after the truncate record was committed, and return a response based on the determination.
    Type: Application
    Filed: August 27, 2021
    Publication date: March 2, 2023
    Inventors: Vaibhav Arora, Terry Chong, Thomas Fanghaenel
  • Patent number: 11537569
    Abstract: Techniques are disclosed relating to merge operations for multi-level data structures, such as log-structured merge-trees (LSM trees). A computer system may store, in a database, a plurality of files as part of an LSM tree and a plurality of database key structures. A given one of the plurality of database key structures may indicate, for a corresponding one of the plurality of files, a set of key ranges derived from database records that are included in the corresponding file. The computer system may determine, using ones of the plurality of database key structures, a key range overlap that is indicative of an extent of overlap of key ranges from a set of the plurality of files with respect to a particular key range. Based on the determined key range overlap, the computer system may assign a priority level to a merge operation that involves the set of files.
    Type: Grant
    Filed: September 1, 2020
    Date of Patent: December 27, 2022
    Assignee: salesforce.com, inc.
    Inventors: Rohit Agrawal, Aditya Shetty, Kaushal Mittal, Terry Chong, Thomas Fanghaenel, Vaibhav Arora
  • Patent number: 11483150
    Abstract: Disclosed techniques relate to storing a key cache within a secure enclave. In some embodiments, a computing system receives, from an application, a request to access a database, where the request is associated with a particular account. The computing system then accesses, using an identifier associated with the particular account, a key cache stored in a secure enclave of a memory of the computing system to determine at least one private key associated with the request, where the key cache stores private keys of a key management system (KMS) for a plurality of accounts. The computing system performs a cryptographic operation for accessing the database within the secure enclave using the at least one private key. In various embodiments, disclosed techniques may improve the security of cryptographic private keys cached for a plurality of tenants.
    Type: Grant
    Filed: June 1, 2020
    Date of Patent: October 25, 2022
    Assignee: salesforce.com, inc.
    Inventors: Dhanashree Kashid, Raghavendran Hanumantharau, Terry Chong, Andrew Stewart Tucker, Vadiraj Govardhan Hosur
  • Publication number: 20220245113
    Abstract: Techniques are disclosed relating to index metadata that is usable for accessing multi-level data structures. A computer system may operate a database, including maintaining a set of records having a set of corresponding keys. The computer system may create multi-level data structures that facilitate key range lookups against those records. A given multi-level data structure may store key information indicative of a subset of the corresponding keys. The computer system may create separate index metadata that is usable for accessing the multi-level data structures. The index metadata may specify indications of key information that is stored in the multi-level data structures and locations of the multi-level data structures. The computer system may perform a key range lookup that includes using the index metadata to determine a particular set of the multi-level data structures whose key information corresponds to a key range of the key range lookup.
    Type: Application
    Filed: January 29, 2021
    Publication date: August 4, 2022
    Inventors: Rohit Agrawal, Aditya Shetty, Kaushal Mittal, Terry Chong, Thomas Fanghaenel, Vaibhav Arora
  • Patent number: 11374748
    Abstract: Disclosed techniques relate to caching tenant encryption keys for a multi-tenant database. In some embodiments, a computing system encrypts data for a database in a multi-tenant database system using encryption keys assigned to respective tenants that are using the database. The computing system may store the encryption keys in a cache and, in response to a key rotation request for a first tenant, invalidate an entry in the cache for the first encryption key of the first tenant. The computing system may block writes for the first tenant until a new key is cached (e.g., based on retrieval from a key management system). In various embodiments, disclosed techniques may reduce encryption latency.
    Type: Grant
    Filed: April 15, 2020
    Date of Patent: June 28, 2022
    Assignee: salesforce.com, inc.
    Inventors: Vadiraj Govardhan Hosur, Andrew Tucker, Terry Chong, Raghavendran Hanumantharau, Dhanashree Kashid, Scott Daniel Wisniewski, Prithviraj Vasanth, Pranesh Radhakrishnan
  • Publication number: 20220188317
    Abstract: Techniques are disclosed relating to maintaining a cache usable to locate data stored in a data structure. A computer system, in various embodiments, maintains a data structure having a plurality of levels that store files for a database. The files may include one or more records that each have a key and corresponding data. The computer system may also maintain a cache for the database whose entries store, for a key, an indication of a location of a corresponding record in a file of the data structure. In some embodiments, the computer system receives a request to access a particular record stored in the data structure where the request specifies a key usable to locate the particular record. The computer system may retrieve, from the cache via the key, a particular indication of a location of the particular record and may use the particular indication to access the particular record.
    Type: Application
    Filed: March 7, 2022
    Publication date: June 16, 2022
    Inventors: Thomas Fanghaenel, Jameison Bear Martin, Nathaniel Wyatt, Diego Ongaro, Terry Chong
  • Publication number: 20220129433
    Abstract: Techniques are disclosed relating to building an in-memory multi-level data structure useable to determine presence or absence of key ranges in files consisting of database records. In various embodiments, a computer system operates a database, including maintaining a set of records having a set of corresponding keys that are accessible in key-sorted order and generates a multi-level data structure that facilitates key range lookups against the set of records. The generating may include accessing ones of the set of keys in key-sorted order and determining, for a particular accessed key that includes a set of characters, an intermediate level within the multi-level data structure and a subset of the characters of the particular accessed key for insertion. The computer system may insert, starting at the intermediate level, information that identifies the subset of characters, with the inserting being performed without traversing any levels before the intermediate level.
    Type: Application
    Filed: October 23, 2020
    Publication date: April 28, 2022
    Inventors: Rohit Agrawal, Aditya Shetty, Kaushal Mittal, Terry Chong, Thomas Fanghaenel, Vaibhav Arora
  • Publication number: 20220121766
    Abstract: System and methods of the disclosed subject matter provide segregating, at a memory storage coupled to a multitenant database system, first tenant data of a first tenant from at least second tenant data of a second tenant, based on a first tenant identifier. A first encryption key associated with the first tenant may be retrieved from a key cache memory based on the first tenant identifier, to encrypt one or more fragments of the first tenant data. The fragments of the first tenant data may be encrypted based on the retrieved encryption key. Non-encrypted header information may be generated for each of the encrypted fragments of the first tenant data, where the header information may have metadata including the first tenant identifier. The encrypted fragments of the first tenant data and the corresponding non-encrypted header information may be stored in the immutable storage.
    Type: Application
    Filed: December 27, 2021
    Publication date: April 21, 2022
    Inventors: Terry Chong, Jameison Bear Martin, Thomas Fanghaenel, Andrew Tucker, Nathaniel Wyatt, Raghavendran Hanumantharau, Assaf Ben Gur, William Charles Mortimore, JR.
  • Patent number: 11269885
    Abstract: Techniques are disclosed relating to maintaining a cache usable to locate data stored in a data structure. A computer system, in various embodiments, maintains a data structure having a plurality of levels that store files for a database. The files may include one or more records that each have a key and corresponding data. The computer system may also maintain a cache for the database whose entries store, for a key, an indication of a location of a corresponding record in a file of the data structure. In some embodiments, the computer system receives a request to access a particular record stored in the data structure where the request specifies a key usable to locate the particular record. The computer system may retrieve, from the cache via the key, a particular indication of a location of the particular record and may use the particular indication to access the particular record.
    Type: Grant
    Filed: June 22, 2020
    Date of Patent: March 8, 2022
    Assignee: salesforce.com, inc.
    Inventors: Thomas Fanghaenel, Jameison Bear Martin, Nathaniel Wyatt, Diego Ongaro, Terry Chong
  • Publication number: 20220067004
    Abstract: Techniques are disclosed relating to merge operations for multi-level data structures, such as log-structured merge-trees (LSM trees). A computer system may store, in a database, a plurality of files as part of an LSM tree and a plurality of database key structures. A given one of the plurality of database key structures may indicate, for a corresponding one of the plurality of files, a set of key ranges derived from database records that are included in the corresponding file. The computer system may determine, using ones of the plurality of database key structures, a key range overlap that is indicative of an extent of overlap of key ranges from a set of the plurality of files with respect to a particular key range. Based on the determined key range overlap, the computer system may assign a priority level to a merge operation that involves the set of files.
    Type: Application
    Filed: September 1, 2020
    Publication date: March 3, 2022
    Inventors: Rohit Agrawal, Aditya Shetty, Kaushal Mittal, Terry Chong, Thomas Fanghaenel, Vaibhav Arora
  • Patent number: 11238174
    Abstract: System and methods of the disclosed subject matter provide segregating, at a memory storage coupled to a multitenant database system, first tenant data of a first tenant from at least second tenant data of a second tenant, based on a first tenant identifier. A first encryption key associated with the first tenant may be retrieved from a key cache memory based on the first tenant identifier, to encrypt one or more fragments of the first tenant data. The fragments of the first tenant data may be encrypted based on the retrieved encryption key. Non-encrypted header information may be generated for each of the encrypted fragments of the first tenant data, where the header information may have metadata including the first tenant identifier. The encrypted fragments of the first tenant data and the corresponding non-encrypted header information may be stored in the immutable storage.
    Type: Grant
    Filed: January 31, 2019
    Date of Patent: February 1, 2022
    Assignee: salesforce.com, inc.
    Inventors: Terry Chong, Jameison Bear Martin, Thomas Fanghaenel, Andrew Tucker, Nathaniel Wyatt, Raghavendran Hanumantharau, Assaf Ben-Gur, William Charles Mortimore, Jr.
  • Publication number: 20210377020
    Abstract: Disclosed techniques relate to storing a key cache within a secure enclave. In some embodiments, a computing system receives, from an application, a request to access a database, where the request is associated with a particular account. The computing system then accesses, using an identifier associated with the particular account, a key cache stored in a secure enclave of a memory of the computing system to determine at least one private key associated with the request, where the key cache stores private keys of a key management system (KMS) for a plurality of accounts. The computing system performs a cryptographic operation for accessing the database within the secure enclave using the at least one private key. In various embodiments, disclosed techniques may improve the security of cryptographic private keys cached for a plurality of tenants.
    Type: Application
    Filed: June 1, 2020
    Publication date: December 2, 2021
    Inventors: Dhanashree Kashid, Raghavendran Hanumantharau, Terry Chong, Andrew Stewart Tucker, Vadiraj Govardhan Hosur
  • Publication number: 20210328789
    Abstract: Disclosed techniques relate to caching tenant encryption keys for a multi-tenant database. In some embodiments, a computing system encrypts data for a database in a multi-tenant database system using encryption keys assigned to respective tenants that are using the database. The computing system may store the encryption keys in a cache and, in response to a key rotation request for a first tenant, invalidate an entry in the cache for the first encryption key of the first tenant. The computing system may block writes for the first tenant until a new key is cached (e.g., based on retrieval from a key management system). In various embodiments, disclosed techniques may reduce encryption latency.
    Type: Application
    Filed: April 15, 2020
    Publication date: October 21, 2021
    Inventors: Vadiraj Govardhan Hosur, Andrew Tucker, Terry Chong, Raghavendran Hanumantharau, Dhanashree Kashid, Scott Daniel Wisniewski, Prithviraj Vasanth, Pranesh Radhakrishnan
  • Patent number: 11099771
    Abstract: A method of deleting tombstones early includes setting an initial-flag in a first record in the storage system, setting a delete-flag in a second record in the storage system, selecting a set of one or more records in the storage system to be written to an extent of the storage system in a merge operation, each of the one or more records being associated with the first key, and performing the merge operation, wherein the second record is not written to the extent during the merge operation based at least in part on a determination that the first record having the initial-flag set is the oldest record in the set and the second record having the delete-flag set is the newest record in the set.
    Type: Grant
    Filed: September 24, 2018
    Date of Patent: August 24, 2021
    Assignee: salesforce.com, inc.
    Inventors: Thomas Fanghaenel, Terry Chong, Jameison Bear Martin
  • Patent number: 11061889
    Abstract: Systems and methods are provided for receiving, at a database system having a memory and at least one persistent storage device to store records, a query for a least one record, where the query uses a first version of a manifest, and where each version of the records that are stored in the at least one persistent storage device are represented by metadata that is part of the first version of the manifest. A first operation may be performed based on a scan operation. The database system may determine whether a purge of the memory has occurred after the first operation. When it is determined that the memory purge has occurred, the scan operation may be restarted from a last position of the scan operation prior to the memory purge using a second version of the manifest.
    Type: Grant
    Filed: September 24, 2018
    Date of Patent: July 13, 2021
    Assignee: salesforce.com, inc.
    Inventors: Terry Chong, Jameison Bear Martin, Thomas Fanghaenel