摘要:
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.
摘要:
Techniques are disclosed for load balancing in networks such as those networks handling telephony applications. By way of example, such techniques direct requests associated with calls to servers in a system comprised of a network routing calls between a plurality of callers and at least one receiver wherein a load balancer sends requests associated with calls to a plurality of servers as follows. A request associated with a call, a caller, or a receiver is received, depending on the particular load balancing technique. 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 the call, the caller, or the receiver, depending on the particular load balancing technique. The subsequent request is sent to the server based on determining that the subsequent request is associated with the call, the caller, or the receiver, again depending on the particular load balancing technique.
摘要:
Automated techniques are disclosed for coordinating request or transaction processing in a data processing system. For example, a technique for handling compound requests, in a system comprising multiple nodes for executing requests in which an individual request is associated with a particular node, comprises the following steps. A compound request comprising at least two individual requests associated with a same node is received. It is determined if both of the at least two individual requests are executable. The compound request is executed if it is determined that all individual requests of the compound request can execute.
摘要:
Techniques are provided for dynamically scheduling requests in data processing systems in accordance with differentiated service levels. In a first aspect of the invention, a technique for processing a request to at least one server comprises the following steps. A request is received. Then, submission of the request to the at least one server is scheduled based on: (i) a quality-of-service (QoS) class assigned to a client from which the request originated; (ii) a response target associated with the QoS class; and (iii) an estimated response time associated with the at least one server. The technique may further comprise the step of withholding the request from submission to the at least one server when the request originated from a client assigned to a first QoS class to allow a request that originated from a client assigned to a second QoS class to meet a response target associated therewith.
摘要:
Systems, methods, apparatus and articles of manufacture are disclosed for tracking, propagation and matching of messages pertaining to the interest in and availability of services across autonomous service domains. In one embodiment of the invention, a system of distributed, federated service domains in a service-oriented environment is provided wherein each service domain comprises: a plurality of locally provided services; a plurality of service requesters; and a service registry comprising descriptions of: one or more locally provided services; and one or more requested services, each of the requested services being one of: a fulfilled reference to a foreign service; and an unfulfilled reference to a foreign service.
摘要:
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 the 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 the 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.
摘要:
In a system having a plurality of caches, a method for maintaining cached objects includes storing an object in a plurality of caches. In response to a request to update the object, a future invalidation time is determined when the object should be invalidated in caches currently storing the object. Updating of the object is delayed until the invalidation time has passed.