摘要:
In a computer system having a kernel supporting an interface definition language, a file system composed of an object framework. The object framework includes a set of proxy vnodes, a set of memcache vnodes, and a set of storage vnodes. The set of proxy vnodes and the set of memcache vnodes are linked to the set of storage vnodes through the use of the interface definition language, and the set of proxy vnodes are linked to the set of memcache vnodes through the use of a set of pointers. Each proxy vnode of said set of proxy vnodes is typed so as to differentiate between a set of file system objects such as files, directories and devices. The set of memcache vnodes forms an interface to a virtual memory system while the set of storage vnodes forms an interface to an underlying file system. The file system also uses a set of file paging interfaces that support extensions to the file system while providing full coherence of data.
摘要:
A packet filter can be programmed by a remote controller to detect packets meeting a particular criterion and to report detection of these packets to the controller. The reports from the packet filter are collected and analyzed by the remote controller. A streams module that incorporates the packet filter is used within a Solaris operating system environment that has been enhanced to support an object framework. The streams module exports a programming interface to the packet filter defined in an interface definition language (IDL). The streams module can be pushed onto a network device in a similar fashion to other streams modules. The streams module responds to requests from one remote controller or to requests from more than one remote controller. These remote controller requests arrive as remote procedure call (RPC) requests on the IDL object references exported by the module. The packet filter within the streams module is fully programmable, and it collects and returns information to the controller through a call back object on the controller. The particular traces collected can be configured dynamically by the controller, by issuing RPC requests to the packet filters through the IDL interfaces. Alternately, a standard Solaris environment can be used. In such a case, a standard (i.e., non-object oriented) RPC approach is employed. Furthermore, the above approach will work with other UNIX systems that support stream modules. Moreover, because other operating systems have streams-like input/output capabilities, the approach can be extended to non-UNIX systems such as DOS, Windows NT, OS/2 Warp or the Macintosh operating system.
摘要:
A bit map is maintained by a provider object of a name server to keep track of names cached by a cache object of the client. The bit map is indexed by performing a hash of the name. When a name is looked up by the server on behalf of a client, the server hashes the name, and sets the bit in the bit map indexed by the result of the hash modulo the size of the bit map. The result of the hash is returned to the client and is stored with the entry in the cache. A bit "set" in the bit map indicates that the client caches at least one name that hashes into the bit. When the server invalidates a name, a hash of the name to be invalidated is used to find the corresponding bit in the bit mask. If the bit is set, the server sends an invalidation request to the client. The invalidation request includes the result of the hash, and the size of the provider's bit map. The client invalidates all entries that hash into the specified bit in the bitmap on the server. Alternatively, the invalidation request also includes the name to be invalidated and the client invalidates only the entry that matches the name.
摘要:
Transparent routing within the cluster is achieved (without changing the networking code on each node of the cluster) by using a pair of modules interposed appropriately on the networking stack. In a "clustered" system built out of several computers, using the present invention, the networking subsystem appears to applications as if the applications are running on a single computer. In addition, no modifications to the networking code is needed. The present invention is extensible to a variety of networking protocols, not just TCP/IP as the packet filter allows the routing within the cluster to be done dynamically. No modifications to the applications is needed (same binaries will work). A packet filter and remote communication between the modules through IDL enable the modules to do their job. A name server that maintains the port name space is used.
摘要:
One embodiment of the present invention provides a method and an apparatus that facilitates transparent failovers from a primary copy of an object on a first server to a secondary copy of the object on a second server when the first server fails, or otherwise becomes unresponsive. The method includes detecting the failure of the first server; selecting the second server; and reconfiguring the second server to act as a new primary server for the object. Additionally, the method includes transparently retrying uncompleted invocations to the object to the second server, without requiring explicit retry commands from a client application program. A variation on this embodiment further includes winding up active invocations to the object before reconfiguring the second server to act as the new primary server. This winding up process may include causing invocations to unresponsive nodes to unblock and complete. Another variation includes blocking new invocations to the object after detecting the failure of the first server, and unblocking these new invocations after reconfiguring the second server to act as the new primary server. Hence, the present invention can greatly simplify programming of client application programs for highly available systems. It also makes it possible to use a client application program written for a nonhighly available system in a highly available system.
摘要:
A method is disclosed for partitioning a managed state for a Java based application. The application developer is allowed to associate individual entity beans with a particular state management type. Then, during execution, a plurality of state objects are provided, where each state object stores a state of a corresponding entity bean object within the memory address space of a Java server process. Further, each state object is associated with the state management type of the corresponding entity bean object. In this manner, state management is provided for each entity bean object based on the associated state management type using a corresponding state object. The state management type can be a memory replicated state management type, a disk replicated state management type, a non-replicated state manage type.
摘要:
An invention is disclosed for performing failure recovery in a Java platform. An application is executed that includes a service module and a control module. The control module includes application-specific polices for the application. When an error is detected in a system component, the detected error is reported to a runtime executive, and the system component is isolated. The control module is then notified of the system component failure.
摘要:
In order to prevent data corruption and inconsistency caused by incorrect assumption regarding a presumably failed node and/or program, a fail-fast timer mechanism enforces deadlines, i.e. enforces timeliness in programs. For example, given a program which needs to ensure a given code segment is executed within a specified deadline, the program arms a fail-fast timer before executing the code segment. After completing the execution of the code segment, the program disarms the fail-fast timer. If the program executes too slowly and the fail-fast timer expires before the fail-fast timer has been disarmed, the entire node is forced to stop very quickly (i.e. the node fails fast). The fail-fast timer of the present invention also triggers if the program exits before disarming a previously armed timeout.
摘要:
An invention is disclosed for performing online upgrades using a control module, executed as part of an application, that includes application-specific strategies for the application, yet can be coded using the JAVA programming language. An application is executed that includes an original service module and an original control module. The original control module includes application-specific policies for the application. To upgrade the application, an upgraded control module is generated. Then, the upgraded control module is used to create an upgraded service module. Both the upgraded control module and the upgraded service module can be generated using class files for the original modules, which are loaded from a system repository. In this manner, the original control module and the original service module are upgraded.
摘要:
An invention is disclosed for performing online upgrades of applications, including the managed application state, without disrupting the functionality of the application during the upgrade process. A Java module is executed on a server, where the Java module includes at least one original entity bean and at least one original state object in communication with the original entity bean. The original state object stores a state of the original entity bean. Then, an upgraded state object is generated and the state stored in the original state object is transferred to the upgraded state object. In this manner, state management for the original entity bean can be provided using the upgraded state object.