Patents by Inventor William Victor Gray

William Victor Gray 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: 11321139
    Abstract: A total number of messages in a set of messages that are processed by a computing node in a virtual computer cluster during a time interval is determined. The virtual computer cluster is deployed with a cloud computing service and includes the computing node and other computing nodes at an end time of the time interval. It is determined whether the total number of messages in the set of messages processed by the computing node is no less than a maximum per-interval message number threshold. In response to determining that the total number of messages is no less than a maximum per-interval message number threshold, the cloud computing service is caused to start an additional computing node in the virtual computer cluster after the time interval, wherein the additional computing node is used to process one or more subsequent messages to be processed after the time interval.
    Type: Grant
    Filed: May 31, 2018
    Date of Patent: May 3, 2022
    Assignee: salesforce.com, inc.
    Inventors: Yogesh Patel, William Victor Gray, William Hackett, Shaahin Mehdinezhad Rushan, Johannes Kienzle, Shreedhar Sundaram, Mahalaxmi Sanathkumar, Rajkumar Pellakuru, Bhaves Patel, Bertha Ching Wai Lam
  • Patent number: 11163801
    Abstract: A learning system is provided to improve the speed of queries in a relational database management system. The learning system may include a query pipeline which utilizes a transform generator and a transform engine to transform uncommitted data corresponding to slow queries, and a query multiplexer to query primary keys of uncommitted data and committed data if the query has been improved by an existing transform.
    Type: Grant
    Filed: March 23, 2020
    Date of Patent: November 2, 2021
    Assignee: salesforce.com, inc.
    Inventors: William Victor Gray, Jan Asita Fernando
  • Patent number: 11126467
    Abstract: A method by a computing system implementing a node within a cluster of nodes to load balance among the cluster of nodes using retroactive refusal. Each of the nodes within the cluster of nodes is capable of processing work items. The method includes accepting a work item to be processed by the node, monitoring a resource utilization of the node, determining whether the resource utilization of the node exceeds a predetermined threshold, and retroactively refusing the work item in response to a determination that the resource utilization of the node exceeds the predetermined threshold, wherein the retroactive refusal causes the work item to be reassigned from the node to another node within the cluster of nodes.
    Type: Grant
    Filed: December 8, 2017
    Date of Patent: September 21, 2021
    Assignee: SALESFORCE.COM, INC.
    Inventors: William Victor Gray, Yogesh Patel, Shreedhar Sundaram, Shaahin Mehdinezhad Rushan, Mahalaxmi Sanathkumar, William Hackett, Rajkumar Pellakuru, Anjani Gupta, Chandra S. Chadalavada
  • Patent number: 10936596
    Abstract: Dynamic selection of data sources for streaming dynamic data is described. A data streaming service receives a dynamic selection of a data source after the data streaming service begins executing, the dynamic selection of the data source including an identifier of a host of a multi-tenant database and an identifier of a tenant of multiple tenants storing data in the multi-tenant database. The data streaming service streams dynamic data from the data source to a data destination.
    Type: Grant
    Filed: November 30, 2017
    Date of Patent: March 2, 2021
    Assignee: salesforce.com, inc.
    Inventors: Mahalaxmi Sanathkumar, Yogesh Patel, Shaahin Mehdinezhad Rushan, William Victor Gray, William Edward Hackett, Shreedhar Sundaram, Rajkumar Pellakuru, Anjani Gupta, Chandra S. Chadalavada
  • Publication number: 20210037073
    Abstract: Embodiments regard transfer of data streaming services to provide continuous data flow. An embodiment of an apparatus includes a processor to process data for streaming to one or more organizations; and a memory to store data for streaming to the one or more organizations, wherein the apparatus is to provide a centralized work distribution service to track status of each of a plurality of data streams to the one or more organizations, and a plurality of nodes, each node being a virtual machine to stream one or more data streams to the one or more organizations, each node including a first daemon service to monitor connectivity of the node to dependency services for the node and, upon detecting a loss of connection to one or more of the dependency services, the node to discontinue ownership of the one or more data streams of the node and a second daemon service to poll the centralized work distribution service for data streams that are not assigned.
    Type: Application
    Filed: October 19, 2020
    Publication date: February 4, 2021
    Inventors: Shreedhar Sundaram, Yogesh Patel, William Victor Gray, Shaahin Mehdinezhad Rushan, Mahalaxmi Sanathkumar, Anjani Gupta, Rajkumar Pellakuru, Bhaves Patel, William Edward Hackett
  • Patent number: 10904303
    Abstract: A cloud computing service is used to deploy a virtual computer cluster. The virtual computer cluster is initialized with a set of one or more streaming nodes for processing first messages of one or more streaming jobs. It is determined whether the virtual computer cluster is to process second messages of a non-streaming job. In response to determining that the virtual computer cluster is to process the second messages of the non-streaming job, for example using control messages, the cloud computing service is caused to start a non-streaming node in the virtual computer cluster. The non-streaming node is tasked to process the second messages of the non-streaming job.
    Type: Grant
    Filed: May 31, 2018
    Date of Patent: January 26, 2021
    Assignee: salesforce.com, inc.
    Inventors: Yogesh Patel, William Victor Gray, William Hackett, Shaahin Mehdinezhad Rushan, Johannes Kienzle, Shreedhar Sundaram, Mahalaxmi Sanathkumar, Rajkumar Pellakuru, Bhaves Patel, Bertha Ching Wai Lam
  • Patent number: 10812544
    Abstract: Embodiments regard transfer of data streaming services to provide continuous data flow. An embodiment of an apparatus includes a processor to process data for streaming to one or more organizations; and a memory to store data for streaming to the one or more organizations, wherein the apparatus is to provide a centralized work distribution service to track status of each of a plurality of data streams to the one or more organizations, and a plurality of nodes, each node being a virtual machine to stream one or more data streams to the one or more organizations, each node including a first daemon service to monitor connectivity of the node to dependency services for the node and, upon detecting a loss of connection to one or more of the dependency services, the node to discontinue ownership of the one or more data streams of the node and a second daemon service to poll the centralized work distribution service for data streams that are not assigned.
    Type: Grant
    Filed: January 26, 2018
    Date of Patent: October 20, 2020
    Assignee: salesforce.com, inc.
    Inventors: Shreedhar Sundaram, Yogesh Patel, William Victor Gray, Shaahin Mehdinezhad Rushan, Mahalaxmi Sanathkumar, Anjani Gupta, Rajkumar Pellakuru, Bhaves Patel, William Edward Hackett
  • Patent number: 10740322
    Abstract: A method is described for collapsing a plurality of detected changes to data in a database into a reduced set of changes. The method includes detecting a plurality of changes to the database; determining that one or more changes in the plurality of changes are superfluous to demonstrating the current state of data in the database to an external system; determining, in response to determining that one or more changes in the plurality of changes are superfluous, a reduced set of changes that demonstrates the current state of data in the database based on the plurality of changes, wherein a number of changes in the plurality of changes is greater than a number of changes in the reduced set of changes; and determining a set of messages to generate based on the reduced set of changes, wherein the set of messages demonstrate the current state of data.
    Type: Grant
    Filed: December 8, 2017
    Date of Patent: August 11, 2020
    Assignee: SALESFORCE.COM, INC.
    Inventors: Anjani Gupta, William Victor Gray, Shaahin Mehdinezhad Rushan, Yogesh Patel, Shreedhar Sundaram, Mahalaxmi Sanathkumar, William Hackett, Rajkumar Pellakuru, Kshama Thacker
  • Publication number: 20200226153
    Abstract: A learning system is provided to improve the speed of queries in a relational database management system. The learning system may include a query pipeline which utilizes a transform generator and a transform engine to transform uncommitted data corresponding to slow queries, and a query multiplexer to query primary keys of uncommitted data and committed data if the query has been improved by an existing transform.
    Type: Application
    Filed: March 23, 2020
    Publication date: July 16, 2020
    Inventors: William Victor Gray, Jan Asita Fernando
  • Patent number: 10708388
    Abstract: Methods, systems, and devices for defining an action node series at a database system are described. In some examples, the workflow may include one or more nodes are associated with an action. When executed, the workflow may produce an outcome based on the occurrence of an event or parameter associated with the one or more nodes. In some examples, the workflow may include one or more branch nodes. A branch node may include logic such that, when the workflow is executed, the logic selects a particular workflow path that includes its own specific nodes. The path may be selected based on the occurrence of an event or a value of one or more parameters. Thus, when a workflow including one or more branch nodes is executed, the outcome of the workflow may be based on the occurrence of the event or the value of the parameter.
    Type: Grant
    Filed: December 21, 2018
    Date of Patent: July 7, 2020
    Assignee: salesforce.com, inc.
    Inventors: Stephen Hsu, Ashwin Kashyap, Cassandra Funk, Laurel Knell, Eric Berg, Martin Edward Long, Avital Arora, Stanley Lemon, William Victor Gray, Philip Alexander Waligora, Reena Parekh, Kyle Coleman Skibble
  • Patent number: 10671975
    Abstract: In accordance with embodiments, there are provided mechanisms and methods for facilitating smart streaming of data between external systems and service providers in an on-demand services environment according to one embodiment. In one embodiment and by way of example, a method comprises splitting, by a streaming server computing device (“streaming device”), a file including messages associated with multiple tenants in a multitenant environment based on growth of the file over a time-period. The method may further include grouping, by the streaming device, the messages into multiple files based on intelligence fields associated with one or more of the messages and the tenants, where each file of the multiple files corresponds to a tenant of the multiple tenants. The method may further include uploading, by the streaming device, the multiple files to a database device associated with a service provider and coupled to the streaming server device.
    Type: Grant
    Filed: January 10, 2018
    Date of Patent: June 2, 2020
    Assignee: salesforce.com, inc.
    Inventors: Anjani Gupta, William Victor Gray, Shaahin Mehdinezhad Rushan, Yogesh Patel, Kshama Thacker, Shreedhar Sundaram, Mahalaxmi Sanathkumar, Rajkumar Pellakuru, William Edward Hackett
  • Patent number: 10621207
    Abstract: A learning system is provided to improve the speed of queries in a relational database management system. The learning system may include a query pipeline which utilizes a transform generator and a transform engine to transform uncommitted data corresponding to slow queries, and a query multiplexer to query primary keys of uncommitted data and committed data if the query has been improved by an existing transform.
    Type: Grant
    Filed: April 26, 2016
    Date of Patent: April 14, 2020
    Assignee: salesforce.com, inc.
    Inventors: William Victor Gray, Jan Asita Fernando
  • Publication number: 20200099771
    Abstract: Methods, systems, and devices for defining an action node series at a database system are described. In some examples, the workflow may include one or more nodes are associated with an action. When executed, the workflow may produce an outcome based on the occurrence of an event or parameter associated with the one or more nodes. In some examples, the workflow may include one or more branch nodes. A branch node may include logic such that, when the workflow is executed, the logic selects a particular workflow path that includes its own specific nodes. The path may be selected based on the occurrence of an event or a value of one or more parameters. Thus, when a workflow including one or more branch nodes is executed, the outcome of the workflow may be based on the occurrence of the event or the value of the parameter.
    Type: Application
    Filed: December 21, 2018
    Publication date: March 26, 2020
    Inventors: Stephen Hsu, Ashwin Kashyap, Cassandra Funk, Laurel Knell, Eric Berg, Martin Edward Long, Avital Arora, Stanley Lemon, William Victor Gray, Philip Alexander Waligora, Reena Parekh, Kyle Coleman Skibble
  • Publication number: 20190370080
    Abstract: A total number of messages in a set of messages that are processed by a computing node in a virtual computer cluster during a time interval is determined. The virtual computer cluster is deployed with a cloud computing service and includes the computing node and other computing nodes at an end time of the time interval. It is determined whether the total number of messages in the set of messages processed by the computing node is no less than a maximum per-interval message number threshold. In response to determining that the total number of messages is no less than a maximum per-interval message number threshold, the cloud computing service is caused to start an additional computing node in the virtual computer cluster after the time interval, wherein the additional computing node is used to process one or more subsequent messages to be processed after the time interval.
    Type: Application
    Filed: May 31, 2018
    Publication date: December 5, 2019
    Inventors: Yogesh Patel, William Victor Gray, William Hackett, Shaahin Mehdinezhad Rushan, Johannes Kienzle, Shreedhar Sundaram, Mahalaxmi Sanathkumar, Rajkumar Pellakuru, Bhaves Patel, Bertha Ching Wai Lam
  • Publication number: 20190373031
    Abstract: A cloud computing service is used to deploy a virtual computer cluster. The virtual computer cluster is initialized with a set of one or more streaming nodes for processing first messages of one or more streaming jobs. It is determined whether the virtual computer cluster is to process second messages of a non-streaming job. In response to determining that the virtual computer cluster is to process the second messages of the non-streaming job, for example using control messages, the cloud computing service is caused to start a non-streaming node in the virtual computer cluster. The non-streaming node is tasked to process the second messages of the non-streaming job.
    Type: Application
    Filed: May 31, 2018
    Publication date: December 5, 2019
    Inventors: Yogesh Patel, William Victor Gray, William Hackett, Shaahin Mehdinezhad Rushan, Johannes Kienzle, Shreedhar Sundaram, Mahalaxmi Sanathkumar, Rajkumar Pellakuru, Bhaves Patel, Bertha Ching Wai Lam
  • Publication number: 20190238605
    Abstract: Techniques are disclosed relating to verifying the sequence of messages sent via data streaming systems. In some embodiments, a streaming server system may receive a plurality of messages associated with events at a data storage system that is accessible to various groups of users. In some embodiments, each of the plurality of messages may include an event identifier for an associated event and a group-specific sequence number. The streaming server system may detect, based on group-specific sequence numbers included in a set of messages, that a particular message for a particular group has not been received. The streaming server system may send, to the data storage system, a request for the particular message and, in response to the request, may receive the particular message from the data storage system.
    Type: Application
    Filed: January 31, 2018
    Publication date: August 1, 2019
    Inventors: Yogesh Patel, Mahalaxmi Sanathkumar, Shaahin Mehdinezhad Rushan, William Victor Gray, Bhaves Patel, Shreedhar Sundaram, Rajkumar Pellakuru, William Edward Hackett, Avital Arora
  • Publication number: 20190238604
    Abstract: Embodiments regard transfer of data streaming services to provide continuous data flow. An embodiment of an apparatus includes a processor to process data for streaming to one or more organizations; and a memory to store data for streaming to the one or more organizations, wherein the apparatus is to provide a centralized work distribution service to track status of each of a plurality of data streams to the one or more organizations, and a plurality of nodes, each node being a virtual machine to stream one or more data streams to the one or more organizations, each node including a first daemon service to monitor connectivity of the node to dependency services for the node and, upon detecting a loss of connection to one or more of the dependency services, the node to discontinue ownership of the one or more data streams of the node and a second daemon service to poll the centralized work distribution service for data streams that are not assigned.
    Type: Application
    Filed: January 26, 2018
    Publication date: August 1, 2019
    Inventors: Shreedhar Sundaram, Yogesh Patel, William Victor Gray, Shaahin Mehdinezhad Rushan, Mahalaxmi Sanathkumar, Anjani Gupta, Rajkumar Pellakuru, Bhaves Patel, William Edward Hackett
  • Publication number: 20190213552
    Abstract: In accordance with embodiments, there are provided mechanisms and methods for facilitating smart streaming of data between external systems and service providers in an on-demand services environment according to one embodiment. In one embodiment and by way of example, a method comprises splitting, by a streaming server computing device (“streaming device”), a file including messages associated with multiple tenants in a multitenant environment based on growth of the file over a time-period. The method may further include grouping, by the streaming device, the messages into multiple files based on intelligence fields associated with one or more of the messages and the tenants, where each file of the multiple files corresponds to a tenant of the multiple tenants. The method may further include uploading, by the streaming device, the multiple files to a database device associated with a service provider and coupled to the streaming server device.
    Type: Application
    Filed: January 10, 2018
    Publication date: July 11, 2019
    Inventors: ANJANI GUPTA, WILLIAM VICTOR GRAY, SHAAHIN MEHDINEZHAD RUSHAN, YOGESH PATEL, KSHAMA THACKER, SHREEDHAR SUNDARAM, MAHALAXMI SANATHKUMAR, RAJKUMAR PELLAKURU, WILLIAM EDWARD HACKETT
  • Publication number: 20190179673
    Abstract: A method by a computing system implementing a node within a cluster of nodes to load balance among the cluster of nodes using retroactive refusal. Each of the nodes within the cluster of nodes is capable of processing work items. The method includes accepting a work item to be processed by the node, monitoring a resource utilization of the node, determining whether the resource utilization of the node exceeds a predetermined threshold, and retroactively refusing the work item in response to a determination that the resource utilization of the node exceeds the predetermined threshold, wherein the retroactive refusal causes the work item to be reassigned from the node to another node within the cluster of nodes.
    Type: Application
    Filed: December 8, 2017
    Publication date: June 13, 2019
    Inventors: William Victor GRAY, Yogesh PATEL, Shreedhar SUNDARAM, Shaahin Mehdinezhad RUSHAN, Mahalaxmi SANATHKUMAR, William HACKETT, Rajkumar PELLAKURU, Anjani GUPTA, Chandra S. CHADALAVADA
  • Publication number: 20190179931
    Abstract: A method is described for collapsing a plurality of detected changes to data in a database into a reduced set of changes. The method includes detecting a plurality of changes to the database; determining that one or more changes in the plurality of changes are superfluous to demonstrating the current state of data in the database to an external system; determining, in response to determining that one or more changes in the plurality of changes are superfluous, a reduced set of changes that demonstrates the current state of data in the database based on the plurality of changes, wherein a number of changes in the plurality of changes is greater than a number of changes in the reduced set of changes; and determining a set of messages to generate based on the reduced set of changes, wherein the set of messages demonstrate the current state of data.
    Type: Application
    Filed: December 8, 2017
    Publication date: June 13, 2019
    Inventors: Anjani GUPTA, William Victor GRAY, Shaahin Mehdinezhad RUSHAN, Yogesh PATEL, Shreedhar SUNDARAM, Mahalaxmi SANATHKUMAR, William HACKETT, Rajkumar PELLAKURU, Kshama THACKER