Patents by Inventor Benjamin BUSJAEGER

Benjamin BUSJAEGER 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: 20220391523
    Abstract: A multi-tenant computer system authenticates access to a shared datastore by a shared service running on the multi-tenant computer system. The shared service is operable to access the shared datastore to execute requests from a plurality of multi-tenant cloud computing services. The requests include an indication of a particular tenant and a particular tenant grouping indicator. Requests are authenticated by cryptographically verifying the request and verifying that the particular tenant is associated with the particular tenant grouping indicator. In response to authenticating a request, the shared service accesses the shared datastore to execute the first request.
    Type: Application
    Filed: June 3, 2021
    Publication date: December 8, 2022
    Inventors: Helen Kwong, Benjamin Busjaeger
  • Patent number: 11456971
    Abstract: Techniques are disclosed relating to handling queues. A server-based platform, in some embodiments, accesses queue information that includes performance attributes for a plurality of queues storing one or more messages corresponding to one or more applications. In some embodiments, the platform assigns, based on the performance attributes, a corresponding set of the plurality of queues to each of a plurality of processing nodes of the platform. In some embodiments, the assigning of a corresponding set of queues to a given one of the plurality of processing nodes causes instantiation of: a first set of one or more dequeuing threads and a second set of one or more processing threads. The dequeuing threads may be executable to dequeue one or more messages stored in the corresponding set of queues. The processing threads may be executable to perform one or more tasks specified in the dequeued one or more messages.
    Type: Grant
    Filed: January 29, 2021
    Date of Patent: September 27, 2022
    Assignee: salesforce.com, inc.
    Inventors: Helen Kwong, Benjamin Busjaeger
  • Patent number: 11216444
    Abstract: Systems, methods, and computer-readable media for event sourcing datastores are provided. Events are sent to an event sourcing datastore (ESDS) from an external service, and the events are appended to an event log. The ESDS maintains the event log in one table and the events are automatically aggregated via streaming. The ESDS is linearly scalable, and enforces uniqueness, consistency, and user-defined constraints when appending events to the event log. The aggregate state is computed asynchronously and transparently cached, which provides increased read throughput and reduced latency. Other embodiments may be described and/or claimed.
    Type: Grant
    Filed: January 31, 2019
    Date of Patent: January 4, 2022
    Assignee: SALESFORCE.COM, INC.
    Inventors: Benjamin Busjaeger, Michael Sgroi, Sanjay Acharya, Robert Libby, Christopher Lish, Jeremiah David Brazeau
  • Publication number: 20210390105
    Abstract: Techniques are disclosed relating to caching techniques for processing a database change stream. A computer system may receive change records from a change stream that includes a plurality of records indicating changes to a database table. The change stream may include change records for multiple shards and be accessible by providing one or more position indicators for one or more of the multiple shards to request one or more change records and an updated position indicator. The system may store, for changes to a set of one or more shards, one or more cache entries that include respective groups of change records. The system may request a portion of the change stream by providing a received position indicator. The system may provide one or more cached change records from a cache entry that matches the provided position indicator.
    Type: Application
    Filed: August 27, 2021
    Publication date: December 16, 2021
    Inventors: Benjamin Busjaeger, Michael Sgroi
  • Patent number: 11157466
    Abstract: In various embodiments, a computer system implements a service that stores a plurality of database templates that define data types supported for a non-relational database accessible to a plurality of applications. The service receives, from a developer of an application, a selection of one of the plurality of database templates to be used by the application. In response to the selection, the service issues a set of data definition language (DDL) instructions to provision the non-relational database with a schema that implements a particular data type defined by the selected template. Requests from the application to manipulate a value of the particular data type stored in the non-relational database system are serviced. In some embodiments, the servicing includes identifying a set of data manipulation language (DML) instructions to be executed and issuing the set of DML, instructions to the non-relational database.
    Type: Grant
    Filed: September 4, 2018
    Date of Patent: October 26, 2021
    Assignee: salesforce.com, inc.
    Inventors: Benjamin Busjaeger, Michael Sgroi, Scott D. Hansma
  • Patent number: 11126625
    Abstract: Techniques are disclosed relating to caching techniques for processing a database change stream. A caching module of a computer system may receive change records from a change stream that includes a plurality of records indicating changes to a database table. The change stream may include change records for multiple shards and is accessible by providing one or more position indicators for one or more of the multiple shards to request one or more change records and an updated position indicator. The caching module may store, for changes to a set of one or more shards for which the caching module is configured, one or more cache entries that each include a group of change records up to a threshold group size. A change processor module of the computer system may request a portion of the change stream by providing a received position indicator. The change processor module may receive, from the caching module, one or more cached change records from a cache entry that matches the provided position indicator.
    Type: Grant
    Filed: May 31, 2019
    Date of Patent: September 21, 2021
    Assignee: salesforce.com, inc.
    Inventors: Benjamin Busjaeger, Michael Sgroi
  • Publication number: 20210226903
    Abstract: Techniques are disclosed relating to handling queues. A server-based platform, in some embodiments, accesses queue information that includes performance attributes for a plurality of queues storing one or more messages corresponding to one or more applications. In some embodiments, the platform assigns, based on the performance attributes, a corresponding set of the plurality of queues to each of a plurality of processing nodes of the platform. In some embodiments, the assigning of a corresponding set of queues to a given one of the plurality of processing nodes causes instantiation of: a first set of one or more dequeuing threads and a second set of one or more processing threads. The dequeuing threads may be executable to dequeue one or more messages stored in the corresponding set of queues. The processing threads may be executable to perform one or more tasks specified in the dequeued one or more messages.
    Type: Application
    Filed: January 29, 2021
    Publication date: July 22, 2021
    Inventors: Helen Kwong, Benjamin Busjaeger
  • Publication number: 20210099301
    Abstract: A multi-tenant computer system implements a platform for providing data protection scopes to shared infrastructure services according to a nested tenant model that permits a hierarchy having a plurality of levels. The multi-tenant computer system provisions data protection scopes for cloud products, service products, cloud product tenants, service products operating in the context of cloud products, service products operating in the context of cloud product tenants, and combinations of the foregoing.
    Type: Application
    Filed: September 30, 2019
    Publication date: April 1, 2021
    Inventors: Benjamin Busjaeger, Koson Thambundit, Jeremy Horwitz, Michael Sgroi, Jeffrey M. Bergan, Benjamin James Fry, Brian Robert McNamara
  • Patent number: 10924438
    Abstract: Techniques are disclosed relating to handling queues. A server-based platform, in some embodiments, accesses queue information that includes performance attributes for a plurality of queues storing one or more messages corresponding to one or more applications. In some embodiments, the platform assigns, based on the performance attributes, a corresponding set of the plurality of queues to each of a plurality of processing nodes of the platform. In some embodiments, the assigning of a corresponding set of queues to a given one of the plurality of processing nodes causes instantiation of: a first set of one or more dequeuing threads and a second set of one or more processing threads. The dequeuing threads may be executable to dequeue one or more messages stored in the corresponding set of queues. The processing threads may be executable to perform one or more tasks specified in the dequeued one or more messages.
    Type: Grant
    Filed: March 30, 2020
    Date of Patent: February 16, 2021
    Assignee: salesforce.com, inc.
    Inventors: Helen Kwong, Benjamin Busjaeger
  • Publication number: 20200380000
    Abstract: Techniques are disclosed relating to caching techniques for processing a database change stream. A caching module of a computer system may receive change records from a change stream that includes a plurality of records indicating changes to a database table. The change stream may include change records for multiple shards and is accessible by providing one or more position indicators for one or more of the multiple shards to request one or more change records and an updated position indicator. The caching module may store, for changes to a set of one or more shards for which the caching module is configured, one or more cache entries that each include a group of change records up to a threshold group size. A change processor module of the computer system may request a portion of the change stream by providing a received position indicator. The change processor module may receive, from the caching module, one or more cached change records from a cache entry that matches the provided position indicator.
    Type: Application
    Filed: May 31, 2019
    Publication date: December 3, 2020
    Inventors: Benjamin Busjaeger, Michael Sgroi
  • Patent number: 10832309
    Abstract: A method is implemented by a computing device to identify available ones of a plurality of items of an inventory, where each of the plurality of items has a hold status identifying the item as being currently available or already on hold. The method includes selecting available ones of the plurality of items based on a first bitset and a plurality of second bitsets and asynchronously updating the first bitset and the plurality of second bitsets to reflect a synchronously updated version of the hold status of the plurality of items resulting from one or more of the plurality of items being successfully placed on hold and/or released from being placed on hold.
    Type: Grant
    Filed: April 18, 2018
    Date of Patent: November 10, 2020
    Assignee: salesforce.com, inc.
    Inventors: Benjamin Busjaeger, Michael Sgroi
  • Publication number: 20200322288
    Abstract: Techniques are disclosed relating to handling queues. A server-based platform, in some embodiments, accesses queue information that includes performance attributes for a plurality of queues storing one or more messages corresponding to one or more applications. In some embodiments, the platform assigns, based on the performance attributes, a corresponding set of the plurality of queues to each of a plurality of processing nodes of the platform. In some embodiments, the assigning of a corresponding set of queues to a given one of the plurality of processing nodes causes instantiation of: a first set of one or more dequeuing threads and a second set of one or more processing threads. The dequeuing threads may be executable to dequeue one or more messages stored in the corresponding set of queues. The processing threads may be executable to perform one or more tasks specified in the dequeued one or more messages.
    Type: Application
    Filed: March 30, 2020
    Publication date: October 8, 2020
    Inventors: Helen Kwong, Benjamin Busjaeger
  • Publication number: 20200250172
    Abstract: Systems, methods, and computer-readable media for event sourcing datastores are provided. Events are sent to an event sourcing datastore (ESDS) from an external service, and the events are appended to an event log. The ESDS maintains the event log in one table and the events are automatically aggregated via streaming. The ESDS is linearly scalable, and enforces uniqueness, consistency, and user-defined constraints when appending events to the event log. The aggregate state is computed asynchronously and transparently cached, which provides increased read throughput and reduced latency. Other embodiments may be described and/or claimed.
    Type: Application
    Filed: January 31, 2019
    Publication date: August 6, 2020
    Applicant: salesforce.com, inc.
    Inventors: Benjamin BUSJAEGER, Michael SGROI, Sanjay ACHARYA, Robert LIBBY, Christopher LISH, Jeremiah David BRAZEAU
  • Publication number: 20200250210
    Abstract: Systems, methods, and computer-readable media for temporary reservation schemes, are provided. In embodiments, temporary reservations are inserted into non-relational datastore, and update records indicating changes to the non-relational datastore are streamed to processing nodes. The processing nodes store the update records in local expiration windows. The expiration windows are periodically polled for expired temporary reservations, which are then removed from the non-relational datastore. Other embodiments may be described and/or claimed.
    Type: Application
    Filed: January 31, 2019
    Publication date: August 6, 2020
    Applicant: salesforce.com, inc.
    Inventors: Benjamin BUSJAEGER, Michael Sgroi, Jeremy Horwitz
  • Patent number: 10719533
    Abstract: A system may store data in a shared table of a distributed database based on generating a tenant-specific partition key. The system may receive a message from a first tenant that indicates certain data to be written to or retrieved from a shared table (e.g., shared between multiple tenants). The system may then identify a data key, a tenant identifier, and a data type identifier associated with the data and generate a partition key that includes the data key, tenant identifier, and data type identifier. The system may then transmit the partition key to the shared table, and data may be written to or retrieved from the table based on the tenant-specific partition key.
    Type: Grant
    Filed: January 3, 2018
    Date of Patent: July 21, 2020
    Assignee: salesforce.com, inc.
    Inventors: Benjamin Busjaeger, Scott Hansma, Pallav Kothari, Michael Sgroi
  • Patent number: 10608961
    Abstract: Techniques are disclosed relating to handling queues. A server-based platform, in some embodiments, accesses queue information that includes performance attributes for a plurality of queues storing one or more messages corresponding to one or more applications. In some embodiments, the platform assigns, based on the performance attributes, a corresponding set of the plurality of queues to each of a plurality of processing nodes of the platform. In some embodiments, the assigning of a corresponding set of queues to a given one of the plurality of processing nodes causes instantiation of: a first set of one or more dequeuing threads and a second set of one or more processing threads. The dequeuing threads may be executable to dequeue one or more messages stored in the corresponding set of queues. The processing threads may be executable to perform one or more tasks specified in the dequeued one or more messages.
    Type: Grant
    Filed: May 8, 2018
    Date of Patent: March 31, 2020
    Assignee: salesforce.com, inc.
    Inventors: Helen Kwong, Benjamin Busjaeger
  • Publication number: 20200097893
    Abstract: A method of inventory data aggregation and delivery over a distributed network comprises generating inventory data with respect to plural disparate sources, and publishing that data over a distributed network to an event processor. The method further includes receiving the published inventory data through subscription to the event processor and distributing it to a plurality of requesting devices, e.g., client devices, over the distributed network. This can include aggregating and filtering by locale or product-type the inventory data in response to requests received from those devices. This can further include reducing the aggregated, filtered data to accommodate inventory reserves, e.g., of retail outlets.
    Type: Application
    Filed: September 24, 2018
    Publication date: March 26, 2020
    Inventors: Sanjay Acharya, Robert Libby, Christopher Lish, Benjamin Busjaeger, Balachandar Mariappan, Amanda Hatker
  • Publication number: 20200073972
    Abstract: Techniques are disclosed relating to non-relational databases. In various embodiments, a computer system implements a service that stores a plurality of database templates that define data types supported for a non-relational database accessible to a plurality of applications. The service receives, from a developer of an application, a selection of one of the plurality of database templates to be used by the application. In response to the selection, the service issues a set of data definition language (DDL) instructions to provision the non-relational database with a schema that implements a particular data type defined by the selected template. Requests from the application to manipulate a value of the particular data type stored in the non-relational database system are serviced. In some embodiments, the servicing includes identifying a set of data manipulation language (DML) instructions to be executed and issuing the set of DML instructions to the non-relational database.
    Type: Application
    Filed: September 4, 2018
    Publication date: March 5, 2020
    Inventors: Benjamin Busjaeger, Michael Sgroi, Scott D. Hansma
  • Publication number: 20190349319
    Abstract: Techniques are disclosed relating to handling queues. A server-based platform, in some embodiments, accesses queue information that includes performance attributes for a plurality of queues storing one or more messages corresponding to one or more applications. In some embodiments, the platform assigns, based on the performance attributes, a corresponding set of the plurality of queues to each of a plurality of processing nodes of the platform. In some embodiments, the assigning of a corresponding set of queues to a given one of the plurality of processing nodes causes instantiation of: a first set of one or more dequeuing threads and a second set of one or more processing threads. The dequeuing threads may be executable to dequeue one or more messages stored in the corresponding set of queues. The processing threads may be executable to perform one or more tasks specified in the dequeued one or more messages.
    Type: Application
    Filed: May 8, 2018
    Publication date: November 14, 2019
    Inventors: Helen Kwong, Benjamin Busjaeger
  • Patent number: 10474562
    Abstract: An online system ranks test cases run in connection with check-in of sets of software files in a software repository. The online system ranks the test cases higher if they are more likely to fail as a result of defects in the set of files being checked in. Accordingly, the online system informs software developers of potential defects in the files being checked in early without having to run the complete suite of test cases. The online system determines a vector representation of the files and test cases based on a neural network. The online system determines an aggregate vector representation of the set of files. The online system determines a measure of similarity between the test cases and the aggregate vector representation of the set of files. The online system ranks the test cases based on the measures of similarity of the test cases.
    Type: Grant
    Filed: September 20, 2017
    Date of Patent: November 12, 2019
    Assignee: salesforce.com
    Inventors: J. Justin Donaldson, Benjamin Busjaeger, Siddharth Rajaram, Berk Coker, Hormoz Tarevern