Patents by Inventor Thomas Fanghaenel

Thomas Fanghaenel 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: 20200250325
    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: January 31, 2019
    Publication date: August 6, 2020
    Inventors: Terry Chong, Jameison Bear Martin, Thomas Fanghaenel, Andrew Tucker, Nathaniel Wyatt, Raghavendran Hanumantharau, Assaf Ben-Gur, William Charles Mortimore, JR.
  • Publication number: 20200201745
    Abstract: Systems and methods are provided for creating a sandbox for an original tenant at a point in time, the original tenant having original tenant data stored in an immutable storage associated with an original tenant identifier, the original tenant data as of the sandbox creation point in time being a virtual snapshot of the original tenant data accessible by a sandbox tenant, where the sandbox tenant data can be changed without changing the original tenant data, and the original tenant data can be changed without changing the sandbox tenant data. A sandbox tenant is created by associating a sandbox tenant identifier with the virtual snapshot of the original tenant data and with sandbox tenant data created by the sandbox tenant subsequent to the sandbox creation point in time. In some implementations, the original tenant is an original sandbox tenant, and the sandbox tenant is at least one new sandbox tenant.
    Type: Application
    Filed: March 2, 2020
    Publication date: June 25, 2020
    Inventors: Jameison Bear Martin, Subho Sanjay Chatterjee, Patrick James Helland, Nathaniel Wyatt, Thomas Fanghaenel, Terry Chong, Robert Frankus, Simon Wong
  • Patent number: 10691696
    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 31, 2017
    Date of Patent: June 23, 2020
    Assignee: salesforce.com, inc.
    Inventors: Patrick James Helland, James E. Mace, Thomas Fanghaenel
  • Patent number: 10691693
    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: January 30, 2018
    Date of Patent: June 23, 2020
    Assignee: salesforce.com, inc.
    Inventors: Thomas Fanghaenel, Jameison Bear Martin, Nathaniel Wyatt, Diego Ongaro, Terry Chong
  • Publication number: 20200159628
    Abstract: Systems and methods are provided for performing a point-in-time restore of data of a first tenant of a multitenanted database system. Metadata can be located to identify an archival version of first data of the first tenant stored in immutable storage of the database system. The archival version includes a most recently committed version of each datum prior to a first point in time. By using the metadata, a restore reference set is mapped into a target database instance of the database system. The mapping can be performed when all existing data for a tenant is to be the archival version, and where versions of data and records committed after the point in time are not available to the target database instance.
    Type: Application
    Filed: January 28, 2020
    Publication date: May 21, 2020
    Inventors: Jameison Bear Martin, Nathaniel Wyatt, Patrick James Helland, Thomas Fanghaenel, Terry Chong, Subho Sanjay Chatterjee
  • Patent number: 10621071
    Abstract: Systems and methods are provided for creating a sandbox for an original tenant at a point in time, the original tenant having original tenant data stored in an immutable storage associated with an original tenant identifier, the original tenant data as of the sandbox creation point in time being a virtual snapshot of the original tenant data accessible by a sandbox tenant, where the sandbox tenant data can be changed without changing the original tenant data, and the original tenant data can be changed without changing the sandbox tenant data. A sandbox tenant is created by associating a sandbox tenant identifier with the virtual snapshot of the original tenant data and with sandbox tenant data created by the sandbox tenant subsequent to the sandbox creation point in time. In some implementations, the original tenant is an original sandbox tenant, and the sandbox tenant is at least one new sandbox tenant.
    Type: Grant
    Filed: September 17, 2018
    Date of Patent: April 14, 2020
    Assignee: salesforce.com, inc.
    Inventors: Jameison Bear Martin, Subho Sanjay Chatterjee, Patrick James Helland, Nathaniel Wyatt, Thomas Fanghaenel, Terry Chong, Robert Frankus, Simon Wong
  • Publication number: 20200097581
    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: Application
    Filed: September 24, 2018
    Publication date: March 26, 2020
    Inventors: Terry Chong, Jameison Bear Martin, Thomas Fanghaenel
  • Publication number: 20200097573
    Abstract: Systems, devices, and techniques are disclosed for identification of records for post-cloning tenant identifier translation. Records may be received from a database system executing a database executor at a computing device executing a database application. The database application may identify, from among the records, records that include a record header that includes a bit indicating that an encoded value of a tenant identifier is stored in the record in a column of the record that is not a tenant identifier column. The database application may generate an index based on the records identified by the database application. The database application may access the records using the index and replace the encoded value of the tenant identifier stored in columns of the records with an encoded new value of a tenant identifier.
    Type: Application
    Filed: September 24, 2018
    Publication date: March 26, 2020
    Inventors: Thomas Fanghaenel, Stephane Geneix
  • Publication number: 20200097583
    Abstract: Systems, devices, and techniques are disclosed for translation of tenant identifiers. A record may be received. A value of a tenant identifier for the record may be determined from a key for the record or a scan descriptor. The value of the tenant identifier in the key for the record may be replaced with a new value for the tenant identifier. A bitmap stored in a record header of the record may be used to identify columns of the record that stored an encoded value of the tenant identifier. An encoded new value of the tenant identifier may be stored in columns identified by the bitmap stored in the record header that include an attribute indicating that tenant identifier translation is enabled.
    Type: Application
    Filed: September 24, 2018
    Publication date: March 26, 2020
    Inventor: Thomas Fanghaenel
  • Publication number: 20200097205
    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: Application
    Filed: September 24, 2018
    Publication date: March 26, 2020
    Inventors: Thomas Fanghaenel, Terry Chong, Jameison Bear Martin
  • Publication number: 20200097558
    Abstract: A method of deleting a plurality of records in a log-structured merge (LSM) tree based storage system during a merge operation that writes data from a memory storage to an extent, includes receiving a command to delete a plurality of records, inserting a range tombstone into the memory storage component of the storage system, the range tombstone indicating the plurality of records to be deleted, selecting one or more delayed deletion processes based at least in part on whether the plurality of records is contiguous beyond a predetermined threshold amount, modifying a manifest of the storage system based on the selected delayed deletion process, and performing the merge operation, wherein the plurality of records is not written to the extent during the flush operation based at least in part on the delayed deletion process.
    Type: Application
    Filed: September 24, 2018
    Publication date: March 26, 2020
    Inventor: Thomas Fanghaenel
  • Patent number: 10592353
    Abstract: Systems and methods are provided for performing a point-in-time restore of data of a first tenant of a multitenanted database system. Metadata can be located to identify an archival version of first data of the first tenant stored in immutable storage of the database system. The archival version includes a most recently committed version of each datum prior to a first point in time. By using the metadata, a restore reference set is mapped into a target database instance of the database system. The mapping can be performed when all existing data for a tenant is to be the archival version, and where versions of data and records committed after the point in time are not available to the target database instance.
    Type: Grant
    Filed: June 27, 2017
    Date of Patent: March 17, 2020
    Assignee: salesforce.com, inc.
    Inventors: Jameison Bear Martin, Nathaniel Wyatt, Patrick James Helland, Thomas Fanghaenel, Terry Chong, Subho Sanjay Chatterjee
  • Publication number: 20190236156
    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: January 30, 2018
    Publication date: August 1, 2019
    Inventors: Thomas Fanghaenel, Jameison Bear Martin, Nathaniel Wyatt, Diego Ongaro, Terry Chong
  • Publication number: 20190163613
    Abstract: Systems and methods are provided for creating a sandbox for an original tenant at a point in time, the original tenant having original tenant data stored in an immutable storage associated with an original tenant identifier, the original tenant data as of the sandbox creation point in time being a virtual snapshot of the original tenant data accessible by a sandbox tenant, where the sandbox tenant data can be changed without changing the original tenant data, and the original tenant data can be changed without changing the sandbox tenant data. A sandbox tenant is created by associating a sandbox tenant identifier with the virtual snapshot of the original tenant data and with sandbox tenant data created by the sandbox tenant subsequent to the sandbox creation point in time. Original tenant data is subsequently created and associated with the original tenant identifier, and is not accessible to the sandbox tenant.
    Type: Application
    Filed: January 31, 2019
    Publication date: May 30, 2019
    Inventors: Jameison Bear Martin, Subho Sanjay Chatterjee, Patrick James Helland, Nathaniel Wyatt, Thomas Fanghaenel, Terry Chong
  • Patent number: 10241896
    Abstract: Systems and methods are provided for creating a sandbox for an original tenant at a point in time, the original tenant having original tenant data stored in an immutable storage associated with an original tenant identifier, the original tenant data as of the sandbox creation point in time being a virtual snapshot of the original tenant data accessible by a sandbox tenant, where the sandbox tenant data can be changed without changing the original tenant data, and the original tenant data can be changed without changing the sandbox tenant data. A sandbox tenant is created by associating a sandbox tenant identifier with the virtual snapshot of the original tenant data and with sandbox tenant data created by the sandbox tenant subsequent to the sandbox creation point in time. Original tenant data is subsequently created and associated with the original tenant identifier, and is not accessible to the sandbox tenant.
    Type: Grant
    Filed: November 8, 2016
    Date of Patent: March 26, 2019
    Assignee: SALESFORCE, INC.
    Inventors: Jameison Bear Martin, Subho Sanjay Chatterjee, Patrick James Helland, Nathaniel Wyatt, Thomas Fanghaenel, Terry Chong
  • Publication number: 20190034321
    Abstract: Systems and methods are provided for creating a sandbox for an original tenant at a point in time, the original tenant having original tenant data stored in an immutable storage associated with an original tenant identifier, the original tenant data as of the sandbox creation point in time being a virtual snapshot of the original tenant data accessible by a sandbox tenant, where the sandbox tenant data can be changed without changing the original tenant data, and the original tenant data can be changed without changing the sandbox tenant data. A sandbox tenant is created by associating a sandbox tenant identifier with the virtual snapshot of the original tenant data and with sandbox tenant data created by the sandbox tenant subsequent to the sandbox creation point in time. In some implementations, the original tenant is an original sandbox tenant, and the sandbox tenant is at least one new sandbox tenant.
    Type: Application
    Filed: September 17, 2018
    Publication date: January 31, 2019
    Inventors: Jameison Bear Martin, Subho Sanjay Chatterjee, Patrick James Helland, Nathaniel Wyatt, Thomas Fanghaenel, Terry Chong, Robert Frankus, Simon Wong
  • Publication number: 20180373604
    Abstract: Systems and methods are provided for performing a point-in-time restore of data of a first tenant of a multitenanted database system. Metadata can be located to identify an archival version of first data of the first tenant stored in immutable storage of the database system. The archival version includes a most recently committed version of each datum prior to a first point in time. By using the metadata, a restore reference set is mapped into a target database instance of the database system. The mapping can be performed when all existing data for a tenant is to be the archival version, and where versions of data and records committed after the point in time are not available to the target database instance.
    Type: Application
    Filed: June 27, 2017
    Publication date: December 27, 2018
    Inventors: Jameison Bear Martin, Nathaniel Wyatt, Patrick James Helland, Thomas Fanghaenel, Terry Chong, Subho Sanjay Chatterjee
  • Publication number: 20180373708
    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: Application
    Filed: June 27, 2017
    Publication date: December 27, 2018
    Inventors: Jameison Bear Martin, Nathaniel Wyatt, Gary J. Baker, Thomas Fanghaenel, Terry Chong
  • Publication number: 20180218023
    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.
    Type: Application
    Filed: January 31, 2017
    Publication date: August 2, 2018
    Inventors: Thomas Fanghaenel, Patrick James Helland, James E. Mace
  • Publication number: 20180217987
    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: Application
    Filed: January 31, 2017
    Publication date: August 2, 2018
    Inventors: Patrick James Helland, James E. Mace, Thomas Fanghaenel