| G. Hjalmtysson and R. Gray. Dynamic C++ Classes: A lightweight mechanism to update code in a running program. Proc. of USENIX Annual Technical Conference, 1998. |
....Work A number of techniques for dynamic evolution of software applications exist at present. In the following discussion, we loosely classify them according to the semantics of changing code and the programming interface. 7.6. 1 Dynamic Class Versioning In in the work by Hjalmtysson and Gray [HG98] dynamic classes for C are described. A dynamic class is a class, written in accordance with the special rules, whose implementation can be changed dynamically during program execution. However, its external interface may not change. Furthermore, the link between an existing object and its ....
G. Hjalmtysson and R. Gray. Dynamic C++ Classes: a Lightweight Mechanism to Update Code in a Running Program. In Proceedings of the USENIX Annual Technical Conference, June 1998.
....approach to upgrading takes advantage of the fact that long lived systems are robust : they tolerate node failures, and they allow nodes to recover and rejoin the system. Nodes are prepared for failures and know how to recover to a consistent state. This means that we Dynamic updating systems [18, 19, 21, 24, 25, 32] can reduce the time required to upgrade a node, but they still require time to install new code and to transform a node s state. can model a node upgrade as a soft restart. But even with this assumption, there are several challenges that a general approach for upgrading distributed systems must ....
....one domain of the system to another, e.g. a system may transform a monetary value from one currency to another as it is transferred between di#erent countries. Elements of our techniques for handling mixed mode systems may also apply to federated systems. 9. 5 Dynamic Updating Dynamic updating [18,19,21,24,25,32] enables nodes to upgrade with minimal service interruption. This is complementary to our approach and can reduce downtime during upgrades. 10 Thesis Schedule In her keynote address at SOSP 2001, Prof. Liskov outlined our techniques for supporting upgrades in distributed systems [31] In Summer ....
G. Hjalmtysson and R. Gray. Dynamic C++ classes - A lightweight mechanism to update code in a running program. In USENIX Annual Technical Conf., 1998.
....well to the realm of OSes due to their increased constraints on timing and resources. Identifying and implementing an online reconfiguration mechanism that works well within an OS is one of the major contributions of this work. Hjalmtysson and Gray describe a mechanism for dynamic C objects [31]. These objects can be hotswapped, and they do so without creating a quiescent state. To achieve this, they provide two options. First, old objects continue to exist and service requests, while all new requests go to the new object. This requires some form of coordination of state between the two ....
G. Hjalmtysson and R. Gray. Dynamic C++ classes: a lightweight mechanism to update code in a running program. Annual USENIX Technical Conference, pages 65--76. USENIX Association, 1998.
....The work on schema or class versioning (e.g. 26, 49, 22] considers multiple co existing versions of a schema or class. The work on object instance evolution (e.g. 8, 31] considers selective transformation of some but not all objects in a class. The work on hot swapping of modules (e.g. [36, 32, 37]) is concerned with updating a class while there is executing code that is using objects of the class; this work considers issues of type safe access to the same object via multiple potentially incompatible interfaces but does not enforce the upgrade modularity conditions that allow programmers to ....
G. Hjalmtysson and R. Gray. Dynamic C++ classes - a lightweight mechanism to update code in running program. In USENIX Annual Technical Conference, June 1998.
....does not allow the code of an existing library to be replaced with new code. Although there are many problems with hot swapping, the problem we are particularly concerned with is ensuring type safety when the data representations exported by a module are changed by updates. Hjalmtysson and Gray [35] identify several models for updating values in the program when a library (including data representations) is changed: 1. Version barrier: With this approach, a library (and its type definitions) cannot be changed while there are values of its type in the program. In object oriented parlance, a ....
.... an adapted garbage collector algorithms to scavenge the heap and thread stacks for old version values [25, 44] Another approach is to require that all values of updateable library types be proxy objects, and a library update then causes all proxy objects to update their implementation pointers [35]. This has the advantage of being possible to provide in libraries, and the disadvantage of having poor performance due to indirection through proxy objects. Although matters are greatly simplified once the global update is done, there are obvious challenges with accomplishing this. For example ....
[Article contains additional citation context not shown here]
Gisli Hjalmtysson and Robert Gray. Dynamic C++ classes: A lightweight mechanism to update code in a running program. In USENIX Technical Conference, June 1998. 22
....an instance of a new component implementation is created. On the Java front, the class loader system can be extended to support dynamically loadable classes also. A more lightweight dynamic C object system has been proposed, implementing dynamically loadable C objects that support versioning [13]. These facilities solve the problem of updating future object instances, but they are incapable of allowing already instantiated, long running system objects to change their implementations dynamically, hence limiting their ability to perform live swapping of such objects. The Synthetix work ....
G. Hj'almtysson and R. Gray Dynamic C++ Classes: A lightweight mechanism to update code in a running program. In Proc. USENIX Annual Technical Conference, 1998
.... On the other hand, Remote Evaluation (REV) sends the procedure code as part of every invocation [SG90] Dynamic classes, which are an objectoriented variation of stored procedures and REV, allow a new subclass of a pre known superclass to be dynamically inserted into an executing C program [HG98] In this case, the client sends an insertion instruction to the remote C program; the instruction includes the location from which the program can download a shared library containing the subclass implementation. The drawback of all these approaches is that it is often dicult (or impossible) ....
Gisli Hjalmtysson and Robert S. Gray. Dynamic C++ classes: A lightweight mechanism to update code in a running program. In Proceedings of the 1998 USENIX Technical Conference, 1998.
No context found.
G. Hjalmtysson and R. Gray. Dynamic C++ Classes: A lightweight mechanism to update code in a running program. Proc. of USENIX Annual Technical Conference, 1998.
No context found.
Gilsi Hjalmtysson and Robert Gray. Dynamic C++ classes---A lightweight mechanism to update code in a running program. In USENIX Annual Technical Conf., pages 65--76, June 1998.
No context found.
G. Hjalmtysson and R. Gray. Dynamic C++ classes - a lightweight mechanism to update code in running program. In USENIX Annual Technical Conference, June 1998.
No context found.
Gilsi Hjalmtysson and Robert Gray. Dynamic C++ classes - A lightweight mechanism to update code in a running program. In USENIX Annual Technical Conf., 1998.
No context found.
G. Hjalmtysson and R. Gray. Dynamic C++ classes - a lightweight mechanism to update code in running program. In USENIX Annual Technical Conference, June 1998.
No context found.
Gilsi Hjalmtysson and Rober Gray. Dynamic C++ classes---A lightweight mechanism to update code in a running program. In USENIX Annual Technical Conference, June 1998.
No context found.
G. Hjalmtysson and R. Gray. Dynamic C++ classes: A lightweight mechanism to update code in a running program. In Proc. of the USENIX Annual Technical Conference (NO 98), New Orleans, LA, June 1998.
No context found.
G. Hjalmtysson and R. Gray. Dynamic C++ classes: a lightweight mechanism to update code in a running program. Annual USENIX Technical Conference, pages 65--76. USENIX Association, 1998.
Online articles have much greater impact More about CiteSeer.IST Add search form to your site Submit documents Feedback
CiteSeer.IST - Copyright Penn State and NEC