instance migration in dynamic sofuware update
play

Instance Migration in Dynamic Sofuware Update P. Tesone 1,2 G. - PowerPoint PPT Presentation

Instance Migration in Dynamic Sofuware Update P. Tesone 1,2 G. Polito 1 L. Fabresse 2 N. Bouraqadi 2 S. Ducasse 1 (1) INRIA LilleNord Europe, France (2) Mines Douai, IA, Univ. Lille, France What is Dynamic Sofuware Update? U p d


  1. Instance Migration in Dynamic Sofuware Update P. Tesone 1,2 – G. Polito 1 – L. Fabresse 2 N. Bouraqadi 2 – S. Ducasse 1 (1) INRIA Lille–Nord Europe, France (2) Mines Douai, IA, Univ. Lille, France

  2. What is Dynamic Sofuware Update? ● U p d a t i n g a r u n n i n g a p p l i c a t i o n . W i t h o u t n e e d i n g t o reinitialize the application. ● Guaranteeing the correct continuity of the execution. ● Evolving from one version to another (Code + State) ● Without losing state. ● Minimizing the downtime. META ‘16 – Instance Migration in Dynamic Software Update

  3. Two Use Cases ● Applications that can not be stopped (ex: global web applications, robotics, etc). ● Live Development Environments (ex: modifying data structures, complex refactors, self modifjcation). ● Similar requirements: – Migration of state. – Atomicity in the changes. – Validation of the changes. ● But with some differences – Size of the changes. – Downtime. – Concurrence. META ‘16 – Instance Migration in Dynamic Software Update

  4. Generic Update Process Architecture. Patch Description DSU Operations & Abstractions DSU Implementation Platform Meta Virtual Machine Level Operations Primitives META ‘16 – Instance Migration in Dynamic Software Update

  5. Some challenges of Dynamic Sofuware Update ● How to calculate the changes needed from one version to another. ● When to perform the changes. ● What to do with the running threads. ● How to migrate the data from one version to another. ● How to validate the changes. ● Rollback of the changes. META ‘16 – Instance Migration in Dynamic Software Update

  6. Instance Migration ● In a OO Environment the state of the application is represented in instances inside the environment. ● The current state has to be preserved between versions. ● Any change in the structure or the usage of the objects has to be updated. META ‘16 – Instance Migration in Dynamic Software Update

  7. Possible Changes ● Creating Instance Variables ● Removing Instance Variables ● Renaming Instance variables. ● Change in the value / usage of an instance variable. ● All this changes can be applied to a hierarchy, needing to be propagated. META ‘16 – Instance Migration in Dynamic Software Update

  8. Instance Migration Requirements ● Atomicity ● Eager / Lazy ● Support of Application dependent migrations. ● Support of System and Application Validations ● Coherence ● Composability ● Support of both use cases. ● Handling global state. META ‘16 – Instance Migration in Dynamic Software Update

  9. Proposed Solution 1. The patch declares all the changes to perform. 2. The update process copy the namespace. 3. The update process performs all the changes in the new namespace. 4. The update process migrates all the instances to its new format (if needed). 5. The new namespace can be validated 6. If everything is correct all the old objects are replaced with the new objects, replacing the existent namespace with the new one (Bulk Replace). META ‘16 – Instance Migration in Dynamic Software Update

  10. Proposed Interface to Express the Changes. DSUOperations addClass(classDef) changeSuperclass(subclass, superclass) removeClass(class) addInstanceV ariable(class, variableDef, initialV alue: MigrationPolicy) removeInstanceV ariable(class, variableName) renameInstanceV ariable(class, oldV ariableName, newV ariableName) migrateInstances(class, migrator: MigrationPolicy) addV alidation(validation:V alidation) beginT ransaction() commit() rollback() Required Validation MigrationPolicy MOP META ‘16 – Instance Migration in Dynamic Software Update

  11. Required Operations RequiredMOP readClassDef nition(Class):ClassDef createClass(classDef):Class readInstanceV ariable(instance, variableName): value writeInstanceV ariable(instance, variableName, value) allInstances(Class):List cloneNamespace(namespaceName):Namespace replaceNamespace(namespaceName,newNamespace:Namespace) swapObjects(oldObjects:List, newObjects:List) META ‘16 – Instance Migration in Dynamic Software Update

  12. Detected Abstractions ● Migration Policies MigrationPoliciy – General migration policies migrate ( oldObject, newObject, oldNamespace, newNamespace):void – Application Dependent ● Validations – System consistence Validation validations execute (oldNamespace, newNamespace) : Boolean – Application’s Validations System System Application Application ... ... Validation 1 Validation N Validation 1 Validation M META ‘16 – Instance Migration in Dynamic Software Update

  13. Implementation Details ● Implemented as a Prototype in Pharo. ● Supporting the update in the two use cases. ● Implemented as Image side component, no VM modifjcation needed. ● The full lifecycle of the update process is implemented. ● Allows research in different alternatives to the different aspects. ● Simple solutions for some aspects: – Patch creation – Quiescent point detection – Stack manipulation META ‘16 – Instance Migration in Dynamic Software Update

  14. Future work ● Studying the differences when using lazy migration. ● Restricting the number of objects to copy. ● Minimize the downtime (or maximize the operations that can be done without stopping the application) ● Improving the detection of changes and providing more automatic generated migration policies. ● Smarter detection of Quiescent points. META ‘16 – Instance Migration in Dynamic Software Update

  15. Tiank you so much!

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend