The Evolving Philosophers Problem: Dynamic Change Management
IEEE Transactions on Software Engineering
Space efficient conservative garbage collection
PLDI '93 Proceedings of the ACM SIGPLAN 1993 conference on Programming language design and implementation
On line software version change using state transfer between processes
Software—Practice & Experience
A Formal Framework for On-line Software Version Change
IEEE Transactions on Software Engineering
The performance of μ-kernel-based systems
Proceedings of the sixteenth ACM symposium on Operating systems principles
Dynamically discovering likely program invariants to support program evolution
Proceedings of the 21st international conference on Software engineering
Bounding space usage of conservative garbage collectors
POPL '02 Proceedings of the 29th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Tracking down software bugs using automatic anomaly detection
Proceedings of the 24th International Conference on Software Engineering
Reconsidering custom memory allocation
OOPSLA '02 Proceedings of the 17th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
The Systematic Improvement of Fault Tolerance in the Rio File Cache
FTCS '99 Proceedings of the Twenty-Ninth Annual International Symposium on Fault-Tolerant Computing
LLVM: A Compilation Framework for Lifelong Program Analysis & Transformation
Proceedings of the international symposium on Code generation and optimization: feedback-directed and runtime optimization
Improving the reliability of commodity operating systems
ACM Transactions on Computer Systems (TOCS)
Practical dynamic software updating for C
Proceedings of the 2006 ACM SIGPLAN conference on Programming language design and implementation
Backwards-compatible array bounds checking for C with very low overhead
Proceedings of the 28th international conference on Software engineering
Live updating operating systems using virtualization
Proceedings of the 2nd international conference on Virtual execution environments
Singularity: rethinking the software stack
ACM SIGOPS Operating Systems Review - Systems work at Microsoft Research
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
Scheduling and simulation: how to upgrade distributed systems
HOTOS'03 Proceedings of the 9th conference on Hot Topics in Operating Systems - Volume 9
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
SSYM'03 Proceedings of the 12th conference on USENIX Security Symposium - Volume 12
OPUS: online patches and updates for security
SSYM'05 Proceedings of the 14th conference on USENIX Security Symposium - Volume 14
Shredding your garbage: reducing data lifetime through secure deallocation
SSYM'05 Proceedings of the 14th conference on USENIX Security Symposium - Volume 14
Mutatis Mutandis: Safe and predictable dynamic software updating
ACM Transactions on Programming Languages and Systems (TOPLAS)
The slab allocator: an object-caching kernel memory allocator
USTC'94 Proceedings of the USENIX Summer 1994 Technical Conference on USENIX Summer 1994 Technical Conference - Volume 1
Understanding and validating database system administration
ATEC '06 Proceedings of the annual conference on USENIX '06 Annual Technical Conference
Dynamic and adaptive updates of non-quiescent subsystems in commodity operating system kernels
Proceedings of the 2nd ACM SIGOPS/EuroSys European Conference on Computer Systems 2007
Staged deployment in mirage, an integrated software upgrade testing and distribution system
Proceedings of twenty-first ACM SIGOPS symposium on Operating systems principles
Unified Architectural Support for Soft-Error Protection or Software Bug Detection
PACT '07 Proceedings of the 16th International Conference on Parallel Architecture and Compilation Techniques
Tranquility: A Low Disruptive Alternative to Quiescence for Ensuring Safe Dynamic Updates
IEEE Transactions on Software Engineering
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
Efficient online validation with delta execution
Proceedings of the 14th international conference on Architectural support for programming languages and operating systems
Ksplice: automatic rebootless kernel updates
Proceedings of the 4th ACM European conference on Computer systems
Safe and timely updates to multi-threaded programs
Proceedings of the 2009 ACM SIGPLAN conference on Programming language design and implementation
seL4: formal verification of an OS kernel
Proceedings of the ACM SIGOPS 22nd symposium on Operating systems principles
Cooperative update: a new model for dependable live update
Proceedings of the 2nd International Workshop on Hot Topics in Software Upgrades
Dynamic software updates: the state mapping problem
Proceedings of the 2nd International Workshop on Hot Topics in Software Upgrades
Efficient systematic testing for dynamically updatable software
Proceedings of the 2nd International Workshop on Hot Topics in Software Upgrades
Proceedings of the 10th ACM/IFIP/USENIX International Conference on Middleware
Baggy bounds checking: an efficient and backwards-compatible defense against out-of-bounds errors
SSYM'09 Proceedings of the 18th conference on USENIX security symposium
JustRunIt: experiment-based management of virtualized data centers
USENIX'09 Proceedings of the 2009 conference on USENIX Annual technical conference
Immediate multi-threaded dynamic software updates using stack reconstruction
USENIX'09 Proceedings of the 2009 conference on USENIX Annual technical conference
To upgrade or not to upgrade: impact of online upgrades across multiple administrative domains
Proceedings of the ACM international conference on Object oriented programming systems languages and applications
Finding complex concurrency bugs in large multi-threaded applications
Proceedings of the sixth conference on Computer systems
Address space randomization for mobile devices
Proceedings of the fourth ACM conference on Wireless network security
State transfer for clear and efficient runtime updates
ICDEW '11 Proceedings of the 2011 IEEE 27th International Conference on Data Engineering Workshops
Automated Derivation of Application-Specific Error Detectors Using Dynamic Analysis
IEEE Transactions on Dependable and Secure Computing
Reorganizing UNIX for reliability
ACSAC'06 Proceedings of the 11th Asia-Pacific conference on Advances in Computer Systems Architecture
Modular software upgrades for distributed systems
ECOOP'06 Proceedings of the 20th European conference on Object-Oriented Programming
Specifying and verifying the correctness of dynamic software updates
VSTTE'12 Proceedings of the 4th international conference on Verified Software: theories, tools, experiments
Enhanced operating system security through efficient and fine-grained address space randomization
Security'12 Proceedings of the 21st USENIX conference on Security symposium
TACHYON: tandem execution for efficient live patch testing
Security'12 Proceedings of the 21st USENIX conference on Security symposium
Operating system support for redundant multithreading
Proceedings of the tenth ACM international conference on Embedded software
Kitsune: efficient, general-purpose dynamic software updating for C
Proceedings of the ACM international conference on Object oriented programming systems languages and applications
Evaluating Dynamic Software Update Safety Using Systematic Testing
IEEE Transactions on Software Engineering
Safe and automatic live update for operating systems
Proceedings of the eighteenth international conference on Architectural support for programming languages and operating systems
Safe software updates via multi-version execution
Proceedings of the 2013 International Conference on Software Engineering
Practical automated vulnerability monitoring using program state invariants
DSN '13 Proceedings of the 2013 43rd Annual IEEE/IFIP International Conference on Dependable Systems and Networks (DSN)
Hi-index | 0.00 |
Live update is a promising solution to bridge the need to frequently update a software system with the pressing demand for high availability in mission-critical environments. While many research solutions have been proposed over the years, systems that allow software to be updated on the fly are still far from reaching widespread adoption in the system administration community. We believe this trend is largely motivated by the lack of tools to automate and validate the live update process. A major obstacle, in particular, is represented by state transfer, which existing live update tools largely delegate to the programmer despite the great effort involved. This paper presents time-traveling state transfer, a new automated and fault-tolerant live update technique. Our approach isolates different program versions into independent processes and uses a semantics-preserving state transfer transaction--across multiple past, future, and reversed versions--to validate the program state of the updated version. To automate the process, we complement our live update technique with a generic state transfer framework explicitly designed to minimize the overall programming effort. Our time-traveling technique can seamlessly integrate with existing live update tools and automatically recover from arbitrary run-time and memory errors in any part of the state transfer code, regardless of the particular implementation used. Our evaluation confirms that our update techniques can withstand arbitrary failures within our fault model, at the cost of only modest performance and memory overhead.