Automatic scaling of system for providing answers to requests
AssigneeIAC Search & Media, Inc.
InventorAlexander L. Daw
Life of this patent
Estimating the term…
Abstract
The invention provides a computer system including a router receiving a plurality of requests, a broker and a plurality of service workers, each assigned by the broker receive to receive the request and determining an answer based on the request, the router receiving the answers from the service workers, and the router providing an output that is based on at least one of the answers. A language independent platform is provided that can deploy code online while processing requests, execute multiple commands and join their answers, and scale automatically depending on load.
Claims10
A computer-based method of processing data, comprising:
- receiving, by a computing device, a plurality of requests;
- distributing, by the computing device, each request to a plurality of service worker modules;
- determining, by the computing device, a plurality of answers, each answer being determined by the service worker module based on the request;
- receiving, by the computing device, the answers from the service worker module;
- providing, by the computing device, an output that that is based on at least one of the answers;
- collecting, by the computing device, observed cluster resources;
- determining, by the computing device, a load due to the plurality of requests based at least in part on the observed cluster resources;
- calculating, by the computing device, an optimal cluster layout;
- and
- adjusting, by the computing device, a number of service worker module, the number being adjusted based on the optimal cluster layout;
- wherein the determination of the load includes:
- recording, by the computing device, statistics of processing of the requests;
- determining, by the computing device, a distributed node status from a distributed node status store;
- and
- collecting, by the computing device, cluster resources based on the statistics and distributed node status and
- wherein the calculation of the optimal cluster layout includes:
- calculating, by the computing device, an optimal cluster layout based on the cluster resources;
- and
- updating, by the computing device, a distributed configuration store with new instance counts for services based on the optimal cluster layout in, the number of service worker modules being adjusted based on the new instance counts for services.
A computer system comprising:
- a router receiving a plurality of requests;
- a broker module;
- and
- a plurality of service worker modules;
- wherein each service worker module is assigned by the broker module to receive the request and determine an answer based on the request;
- wherein the router receives the answers from the service worker modules and provides an output that is based on at least one of the answers;
- wherein the broker module collects observed cluster resources;
- determines a load due to the plurality of requests at least in part from the observed cluster resources;
- calculates an optimal cluster layout;
- and adjusts a number of service worker modules, the number being adjusted based on the optimal cluster layout;
- wherein the determination of the load includes:
- recording statistics of processing of the requests;
- determining a distributed node status from a distributed node status store;
- and
- collecting cluster resources based on the statistics and distributed node status;
- and
- wherein the calculation of the optimal load includes:
- calculating an optimal cluster layout based on the cluster resources;
- and
- updating a distributed configuration store with new instance counts for services based on the optimal cluster layout, the number of service worker modules being adjusted based on the new instance counts for services.
A computer system comprising:
- a router receiving a plurality of requests;
- a broker module;
- a service pack store;
- a service pack stored in the service pack store;
- a plurality of service worker modules;
- wherein the service pack includes at least one route and at least one service worker module;
- wherein the broker module deploys the service pack by distributing the at least one service worker module to multiple locations to form the plurality of service worker modules, each at a respective one of the locations, and stores the routes within at least one router;
- wherein each service worker module is assigned by the broker module to receive the request and determine an answer based on the request;
- wherein the router receives the answers from the service worker modules and provides an output that is based on at least one of the answers;
- wherein the request is distributed according to a command sequence based on the routes to the service worker modules at the multiple locations;
- wherein the broker module collects observed cluster resources;
- determines a load due to the plurality of requests at least in part from the observed cluster resources;
- calculates an optimal cluster layout;
- and adjusts a number of service worker modules, the number being adjusted based on the optimal cluster layout.
Dependencies are inferred from the claim text.