Patents by Inventor Michael Sgroi
Michael Sgroi 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: 11940963Abstract: Techniques are disclosed relating to database schemas. A computer system may receive a metadata document that describes an updated schema for a database that stores a plurality of records. The computer system may instantiate a set of processes to perform an upgrade routine to upgrade ones of the plurality of records to comply with the updated schema. While the set of processes are upgrading the records, the computer system may receive a request to perform an operation on one of the plurality of records. The computer system may detect that the record corresponds to an earlier schema version than a version of the updated schema of the metadata document and may upgrade the record to comply with that updated schema. After upgrading the record, the computer system may perform the requested operation on the record.Type: GrantFiled: December 1, 2021Date of Patent: March 26, 2024Assignee: Salesforce, Inc.Inventors: Michael Sgroi, Helen Kwong, Benjamin Busjaeger, Igor Fedorenko
-
Patent number: 11695559Abstract: 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: GrantFiled: September 30, 2019Date of Patent: July 4, 2023Assignee: Salesforce, Inc.Inventors: Benjamin Busjaeger, Koson Thambundit, Jeremy Horwitz, Michael Sgroi, Jeffrey M. Bergan, Benjamin James Fry, Brian Robert McNamara
-
Publication number: 20230169049Abstract: Techniques are disclosed relating to database schemas. A computer system may receive a metadata document that describes an updated schema for a database that stores a plurality of records. The computer system may instantiate a set of processes to perform an upgrade routine to upgrade ones of the plurality of records to comply with the updated schema. While the set of processes are upgrading the records, the computer system may receive a request to perform an operation on one of the plurality of records. The computer system may detect that the record corresponds to an earlier schema version than a version of the updated schema of the metadata document and may upgrade the record to comply with that updated schema. After upgrading the record, the computer system may perform the requested operation on the record.Type: ApplicationFiled: December 1, 2021Publication date: June 1, 2023Inventors: Michael Sgroi, Helen Kwong, Benjamin Busjaeger, Igor Fedorenko
-
Patent number: 11650985Abstract: 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: GrantFiled: August 27, 2021Date of Patent: May 16, 2023Assignee: Salesforce, Inc.Inventors: Benjamin Busjaeger, Michael Sgroi
-
Publication number: 20230060046Abstract: 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: ApplicationFiled: October 27, 2022Publication date: February 23, 2023Applicant: Salesforce, Inc.Inventors: Benjamin Busjaeger, Michael Sgroi, Jeremy Horwitz
-
Patent number: 11526539Abstract: 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: GrantFiled: January 31, 2019Date of Patent: December 13, 2022Assignee: SALESFORCE, INC.Inventors: Benjamin Busjaeger, Michael Sgroi, Jeremy Horwitz
-
Patent number: 11216444Abstract: 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: GrantFiled: January 31, 2019Date of Patent: January 4, 2022Assignee: SALESFORCE.COM, INC.Inventors: Benjamin Busjaeger, Michael Sgroi, Sanjay Acharya, Robert Libby, Christopher Lish, Jeremiah David Brazeau
-
Publication number: 20210390105Abstract: 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: ApplicationFiled: August 27, 2021Publication date: December 16, 2021Inventors: Benjamin Busjaeger, Michael Sgroi
-
Patent number: 11157466Abstract: 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: GrantFiled: September 4, 2018Date of Patent: October 26, 2021Assignee: salesforce.com, inc.Inventors: Benjamin Busjaeger, Michael Sgroi, Scott D. Hansma
-
Patent number: 11126625Abstract: 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: GrantFiled: May 31, 2019Date of Patent: September 21, 2021Assignee: salesforce.com, inc.Inventors: Benjamin Busjaeger, Michael Sgroi
-
Publication number: 20210099301Abstract: 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: ApplicationFiled: September 30, 2019Publication date: April 1, 2021Inventors: Benjamin Busjaeger, Koson Thambundit, Jeremy Horwitz, Michael Sgroi, Jeffrey M. Bergan, Benjamin James Fry, Brian Robert McNamara
-
Publication number: 20200380000Abstract: 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: ApplicationFiled: May 31, 2019Publication date: December 3, 2020Inventors: Benjamin Busjaeger, Michael Sgroi
-
Patent number: 10832309Abstract: 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: GrantFiled: April 18, 2018Date of Patent: November 10, 2020Assignee: salesforce.com, inc.Inventors: Benjamin Busjaeger, Michael Sgroi
-
Publication number: 20200250210Abstract: 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: ApplicationFiled: January 31, 2019Publication date: August 6, 2020Applicant: salesforce.com, inc.Inventors: Benjamin BUSJAEGER, Michael Sgroi, Jeremy Horwitz
-
Publication number: 20200250172Abstract: 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: ApplicationFiled: January 31, 2019Publication date: August 6, 2020Applicant: salesforce.com, inc.Inventors: Benjamin BUSJAEGER, Michael SGROI, Sanjay ACHARYA, Robert LIBBY, Christopher LISH, Jeremiah David BRAZEAU
-
Patent number: 10719533Abstract: 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: GrantFiled: January 3, 2018Date of Patent: July 21, 2020Assignee: salesforce.com, inc.Inventors: Benjamin Busjaeger, Scott Hansma, Pallav Kothari, Michael Sgroi
-
Publication number: 20200073972Abstract: 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: ApplicationFiled: September 4, 2018Publication date: March 5, 2020Inventors: Benjamin Busjaeger, Michael Sgroi, Scott D. Hansma
-
Publication number: 20190220917Abstract: 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: ApplicationFiled: April 18, 2018Publication date: July 18, 2019Inventors: Benjamin BUSJAEGER, Michael SGROI
-
Publication number: 20190205459Abstract: 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: ApplicationFiled: January 3, 2018Publication date: July 4, 2019Inventors: Benjamin Busjaeger, Scott Hansma, Pallav Kothari, Michael Sgroi