摘要:
Techniques for coordinating updates to replicated data are disclosed. For example, in a system comprised of a plurality of nodes, a method for maintaining consistent copies of data across said nodes comprises the following steps. A copy of an object o1 is maintained by a plurality of nodes. In response to a request r1 to update a copy of object o1, a message is sent to at least some of said plurality of nodes instructing a node receiving the message to invalidate its copy of object o1. In response to a node n1 receiving an invalidation message arising from r1 wherein n1 is processing another request r2 to update object o1, requests r1 and r2 are coordinated to prevent the requests from causing conflicting updates or invalidations.
摘要:
Techniques are disclosed for load balancing in networks such as those networks handling telephony applications. By way of example, a method for directing requests associated with calls to servers in a system comprised of a network routing calls between a plurality of nodes wherein a node participates in a call as a caller or a receiver and wherein a load balancer sends requests associated with calls to a plurality of servers comprises the following steps. A request associated with a node belonging to a group including a plurality of nodes is received. A server is selected to receive the request. A subsequent request is received. A determination is made whether or not the subsequent request is associated with a node belonging to the group. The subsequent request is sent to the server based on determining that the subsequent request is associated with a node belonging to the group. By way of another example, a method for balancing requests among servers in a client server environment wherein a load balancer sends requests associated with a client to a plurality of servers comprises the following steps. Information is maintained regarding a weighted number of requests assigned to each server. The load balancer receives a request from a client. A server s1 is selected to receive the request by examining the maintained information and identifying a server with a least weighted number of requests assigned thereto. The load balancer sends the request to server s1 and increments a weighted number of requests assigned to server s1 in the maintained information. In response to receiving a notification from server s1 that the request has completed, a weighted number of requests assigned to server s1 is decremented in the maintained information.
摘要:
Methods for serving data include maintaining an incomplete version of an object at a server and at least one fragment at the server. In response to a request for the object from a client, the incomplete version of the object, an identifier for a fragment comprising a portion of the object, and a position for the fragment within the object are sent to the client. After receiving the incomplete version of the object, the identifier, and the position, the client requests the fragment from the server using the identifier. The object is constructed by including the fragment in the incomplete version of the object in a location specified by the position.
摘要:
A method for communicating information from a first computing node to at least one of the following: a storage device and a second computing node. The first computing node is monitored to collect at least one estimate of available resources, and based on this estimate, an amount of data collected is modified. Then, the modified data is sent to at least one of the following: the storage device and the second computing node. This invention also provides for the determination of an optimum batch size for aggregating data wherein, for a number of batch sizes, costs are estimated for sending batched information to persistent storage and for losing batched data. Then, the optimum batch size is selected from the number of different batch sizes based on sums of these costs. This invention also provides for selective compression of data, wherein it is determined which of a number of compression algorithms do not incur an overhead that exceeds available resources. Then, one of the determined algorithms is selected to maximize compression.
摘要:
Improved load balancing techniques are disclosed. For example, in one illustrative aspect of the invention, a method of satisfying requests in a system comprised of a plurality of servers comprises the following steps. At least one load balancer is provided for routing requests to the plurality of servers. At the at least one load balancer, a request sent from a client is obtained. At the at least one load balancer, the request is examined. Costs of satisfying the request by at least two of the plurality of servers are estimated. The estimation is based on at least one of a number and a cost of at least one remote access for satisfying the request. The request is routed to a server of the plurality of servers with a low estimated cost of satisfying the request.
摘要:
A system and method for maintaining consistency in a system where multiple copies of an object may exist is provided for maintaining consistent copies. Consistency is maintained using a plurality of consistency policies in which at least one consistency policy results in different performance than a second consistency policy. A consistency policy is selected from the plurality consistency policies for each object to improve system performance.
摘要:
Methods for serving data include maintaining an incomplete version of an object at a server and at least one fragment at the server. In response to a request for the object from a client, the incomplete version of the object, an identifier for a fragment comprising a portion of the object, and a position for the fragment within the object are sent to the client. After receiving the incomplete version of the object, the identifier, and the position, the client requests the fragment from the server using the identifier. The object is constructed by including the fragment in the incomplete version of the object in a location specified by the position.
摘要:
Systems and methods for publishing objects (e.g., pages and/or fragments) include assigning expiration times to different versions of objects and determining a plurality of objects which should be published atomically, that is, together in a single action. Then, the invention includes computing updated versions of the plurality of objects and atomically publishing the updated versions wherein the updated versions are not available until after expiration times corresponding to previously published versions of at least one of the plurality of objects (e.g., a cached object) have elapsed. Advantageously, clients attempting to access related cached objects over an information network such as the Internet will not be presented with versions of related objects that are inconsistent with one another.
摘要:
An affinity-based router and method for routing and load balancing in an encapsulated cluster of server nodes is disclosed. The system consists of a multi-node server, wherein any of the server nodes can handle a client request, but wherein clients have affinity to one or more of the server nodes that are preferred to handle a client request. Such affinity is due to state at the servers either due to previous routing requests, or data affinity at the server. At the multi-node server, a node may be designated as a TCP router. The address of the TCP router is given out to clients, and client requests are sent thereto. The TCP router selects one of the nodes in the multi-node server to process the client request, and routes the request to this server; in addition, the TCP router maintains affinity tables, containing affinity records, indicating which node a client was routed to. In processing the client request, the server nodes may determine that another node is better suited to handle the client request, and may reset the corresponding TCP router affinity table entry. The server nodes may also create, modify or delete affinity records in the TCP router affinity table. Subsequent requests from this client are routed to server nodes based on any affinity records, possibly combined on other information (such as load).
摘要:
In a computer system in which caching is utilized for improving performance, a method for determining whether an uncached object should be cached, and, if so, which objects, if any, should be removed from a cache to make room for the new uncached object. The method assigns a metric correlated with the desirability of caching an object, considering parameters such as access frequencies, object sizes, object lifetimes and times to calculate and/or to fetch the object. The metric weights more recent accesses more heavily than less recent accesses. The method can be used for improving the performance of an algorithm which utilizes priority queues and can additionally be applied when attempting to predict the expected frequency of an occurrence based upon past occurrences.