The management of changing types in an object-oriented database
OOPLSA '86 Conference proceedings on Object-oriented programming systems, languages and applications
Semantics and implementation of schema evolution in object-oriented databases
SIGMOD '87 Proceedings of the 1987 ACM SIGMOD international conference on Management of data
Class modification in the GemStone object-oriented DBMS
OOPSLA '87 Conference proceedings on Object-oriented programming systems, languages and applications
The Gem–Stone data management system
Object-oriented concepts, databases, and applications
POPL '88 Proceedings of the 15th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Beyond schema evolution to database reorganization
OOPSLA/ECOOP '90 Proceedings of the European conference on object-oriented programming on Object-oriented programming systems, languages, and applications
Design patterns: elements of reusable object-oriented software
Design patterns: elements of reusable object-oriented software
A status report on the OO7 OODBMS benchmarking effort
OOPSLA '94 Proceedings of the ninth annual conference on Object-oriented programming systems, language, and applications
Subtypes vs. where clauses: constraining parametric polymorphism
Proceedings of the tenth annual conference on Object-oriented programming systems, languages, and applications
Efficient optimistic concurrency control using loosely synchronized clocks
SIGMOD '95 Proceedings of the 1995 ACM SIGMOD international conference on Management of data
Proceedings of the 24th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Adding type parameterization to the Java language
Proceedings of the 12th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
HAC: hybrid adaptive caching for distributed storage systems
Proceedings of the sixteenth ACM symposium on Operating systems principles
Ownership types for flexible alias protection
Proceedings of the 13th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Making the future safe for the past: adding genericity to the Java programming language
Proceedings of the 13th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Parametric polymorphism in Java: an approach to translation based on reflective features
OOPSLA '00 Proceedings of the 15th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Communications of the ACM
Proceedings of the ACM SIGPLAN 2001 conference on Programming language design and implementation
A parameterized type system for race-free Java programs
OOPSLA '01 Proceedings of the 16th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Using data groups to specify and check side effects
PLDI '02 Proceedings of the ACM SIGPLAN 2002 Conference on Programming language design and implementation
Object Database Standard: ODMG-93
Object Database Standard: ODMG-93
Ownership types for safe programming: preventing data races and deadlocks
OOPSLA '02 Proceedings of the 17th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Ownership, encapsulation and the disjointness of type and effect
OOPSLA '02 Proceedings of the 17th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Alias annotations for program understanding
OOPSLA '02 Proceedings of the 17th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Ownership types for object encapsulation
POPL '03 Proceedings of the 30th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
IEEE Transactions on Knowledge and Data Engineering
Consistent Schema Version Removal: An Optimization Technique for Object-Oriented Views
IEEE Transactions on Knowledge and Data Engineering
A Framework for Schema Updates In An Object-Oriented Database System
Proceedings of the Seventh International Conference on Data Engineering
Schema and Database Evolution in the O2 Object Database System
VLDB '95 Proceedings of the 21th International Conference on Very Large Data Bases
The Design of an Integrity Consistency Checker (ICC) for an Object-Oriented Database System
ECOOP '91 Proceedings of the European Conference on Object-Oriented Programming
Fickle: Dynamic Object Re-classification
ECOOP '01 Proceedings of the 15th European Conference on Object-Oriented Programming
Scalable and Recoverable Implementation of Object Evolution for the PJama1 Platform
POS-9 Revised Papers from the 9th International Workshop on Persistent Object Systems
Ownership types for safe region-based memory management in real-time Java
PLDI '03 Proceedings of the ACM SIGPLAN 2003 conference on Programming language design and implementation
Type Evolution and Instance Adaptation
Type Evolution and Instance Adaptation
Safe Class and Data Evolution in Large and Long-Lived Java[tm] Applications
Safe Class and Data Evolution in Large and Long-Lived Java[tm] Applications
Object ownership and containment
Object ownership and containment
Dynamic C++ classes: a lightweight mechanism to update code in a running program
ATEC '98 Proceedings of the annual conference on USENIX Annual Technical Conference
Ownership types for safe region-based memory management in real-time Java
PLDI '03 Proceedings of the ACM SIGPLAN 2003 conference on Programming language design and implementation
Mutatis mutandis: safe and predictable dynamic software updating
Proceedings of the 32nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
ACM Transactions on Programming Languages and Systems (TOPLAS)
Journal of Functional Programming
Improving dynamic update for operating systems
Proceedings of the twentieth ACM symposium on Operating systems principles
Exploiting distributed version concurrency in a transactional memory cluster
Proceedings of the eleventh ACM SIGPLAN symposium on Principles and practice of parallel programming
Practical dynamic software updating for C
Proceedings of the 2006 ACM SIGPLAN conference on Programming language design and implementation
Storing a persistent transactional object heap on flash memory
Proceedings of the 2006 ACM SIGPLAN/SIGBED conference on Language, compilers, and tool support for embedded systems
Providing dynamic update in an operating system
ATEC '05 Proceedings of the annual conference on USENIX Annual Technical Conference
POLUS: A POwerful Live Updating System
ICSE '07 Proceedings of the 29th international conference on Software Engineering
Understanding and dealing with operator mistakes in internet services
OSDI'04 Proceedings of the 6th conference on Symposium on Opearting Systems Design & Implementation - Volume 6
A type system for preventing data races and deadlocks in the java virtual machine language: 1
Proceedings of the 2007 ACM SIGPLAN/SIGBED conference on Languages, compilers, and tools for embedded systems
Mutatis Mutandis: Safe and predictable dynamic software updating
ACM Transactions on Programming Languages and Systems (TOPLAS)
Contextual effects for version-consistent dynamic software updating and safe concurrent programming
Proceedings of the 35th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Reboots are for hardware: challenges and solutions to updating an operating system on the fly
ATC'07 2007 USENIX Annual Technical Conference on Proceedings of the USENIX Annual Technical Conference
Dynamic rebinding for marshalling and update, via redex-time and destruct-time reduction
Journal of Functional Programming
UpgradeJ: Incremental Typechecking for Class Upgrades
ECOOP '08 Proceedings of the 22nd European conference on Object-Oriented Programming
Efficient software model checking of soundness of type systems
Proceedings of the 23rd ACM SIGPLAN conference on Object-oriented programming systems languages and applications
Dynamic software updates: a VM-centric approach
Proceedings of the 2009 ACM SIGPLAN conference on Programming language design and implementation
Dependable, online upgrades in enterprise systems
Proceedings of the 24th ACM SIGPLAN conference companion on Object oriented programming systems languages and applications
Dependable, online upgrades in enterprise systems
Proceedings of the 24th ACM SIGPLAN conference companion on Object oriented programming systems languages and applications
Migrating protocols in multi-threaded message-passing systems
Proceedings of the 2nd International Workshop on Hot Topics in Software Upgrades
Proceedings of the 10th ACM/IFIP/USENIX International Conference on Middleware
Dynamic Classes: Modular Asynchronous Evolution of Distributed Concurrent Objects
FM '09 Proceedings of the 2nd World Congress on Formal Methods
Middleware'09 Proceedings of the ACM/IFIP/USENIX 10th international conference on Middleware
Proceedings of the ACM international conference on Object oriented programming systems languages and applications
Run-time phenomena in dynamic software updating: causes and effects
Proceedings of the 12th International Workshop on Principles of Software Evolution and the 7th annual ERCIM Workshop on Software Evolution
A dynamic class construct for asynchronous concurrent objects
FMOODS'05 Proceedings of the 7th IFIP WG 6.1 international conference on Formal Methods for Open Object-Based Distributed Systems
Mappings make data processing go 'round
GTTSE'05 Proceedings of the 2005 international conference on Generative and Transformational Techniques in Software Engineering
Using first-class contexts to realize dynamic software updates
Proceedings of the International Workshop on Smalltalk Technologies
Modular software upgrades for distributed systems
ECOOP'06 Proceedings of the 20th European conference on Object-Oriented Programming
Type-Safe runtime class upgrades in creol
FMOODS'06 Proceedings of the 8th IFIP WG 6.1 international conference on Formal Methods for Open Object-Based Distributed Systems
Incremental dynamic updates with first-class contexts
TOOLS'12 Proceedings of the 50th international conference on Objects, Models, Components, Patterns
Multiple aggregate entry points for ownership types
ECOOP'12 Proceedings of the 26th European conference on Object-Oriented Programming
Safe and automatic live update for operating systems
Proceedings of the eighteenth international conference on Architectural support for programming languages and operating systems
Aliasing in Object-Oriented Programming
Hi-index | 0.00 |
Persistent object stores require a way to automatically upgrade persistent objects, to change their code and storage representation. Automatic upgrades are a challenge for such systems. Upgrades must be performed in a way that is efficient both in space and time, and that does not stop application access to the store. In addition, however, the approach must be modular: it must allow programmers to reason locally about the correctness of their upgrades similar to the way they would reason about regular code. This paper provides solutions to both problems.The paper first defines upgrade modularity conditions that any upgrade system must satisfy to support local reasoning about upgrades. The paper then describes a new approach for executing upgrades efficiently while satisfying the upgrade modularity conditions. The approach exploits object encapsulation properties in a novel way. The paper also describes a prototype implementation and shows that our upgrade system imposes only a small overhead on application performance.