240 likes | 370 Views
Supporting Hot-Swappable Components for System Software Kevin Hui, Jonathan Appavoo, Robert Wisniewski, Marc Auslander, David Edelsohn, Ben Gamsa Orran Krieger, Bryan Rosenburg, Michael Stumm HOTOS 2001. Hung, Chin-Chieh ESL, Dept. of CSIE , CCU 8/25/2005. Outline. Introduction
E N D
Supporting Hot-Swappable Components for System SoftwareKevin Hui, Jonathan Appavoo, Robert Wisniewski, Marc Auslander, David Edelsohn, Ben GamsaOrran Krieger, Bryan Rosenburg, Michael StummHOTOS 2001 Hung, Chin-Chieh ESL, Dept. of CSIE , CCU 8/25/2005
Outline • Introduction • Design Overview • Implementation Highlights • Preliminary Results • Conclusion
Outline • Introduction • Design Overview • Implementation Highlights • Preliminary Results • Conclusion
Introduction • A hot-swappable component • Can be replace at running time • Online upgrades • Improve performance • Simplify software
Introduction • The necessary of hot-swappable component • Instantiate a replacement component • Quiescent state • Transfer state • Swap component • Deallocate the old component
Problemsof Hot-Swappable Component • Establish a quiescent state • Safely transfer and swap • Transfer state • The most easy way is not efficient • Swap all of the references held by client • The references now refer to the new one
Design Goals • Zero performance overhead for that will not be swapped • Complete transparency to client component • Minimal code impact on components that wish to be swaped • Zero impact on other components • Good performance and scalability
Outline • Introduction • Design Overview • Implementation Highlights • Preliminary Results • Conclusion
Design Overview • The algorithm is as follows: • Establish a quiescent state • Transfer the component state • Update the references to the component
Establish a quiescent state • Swap the indirection pointer • Point to an interposing object • Track all thread • Could pass the call to original object • Wait for the termination of all calls • Use a efficient means • Blocks all new call
Transfer the component state • Best common format • To make state transfer efficient • Avoid canonical form • A list or array • For example • A hash table to be passed directly through a pointer
Update the references to the component • Changing the indirection pointer • Refer to the new object • Relesaing all the threads blocked in the interposing object • Deallocating the original object and the temporary interposing object
Outline • Introduction • Design Overview • Implementation Highlights • Preliminary Results • Conclusion
Implementation Highlights • The interposing object is called the mediator • Three phases of the swapping operation • Forward • Block • Completed
Forward Phase • Tracks new incoming calls • By identifiers and increments an in-flight call counter • Stores thread identifiers • In a hash table • This phase continues until the swap initiation has the lowest generation number • A generation number in K42
Block Phase • Check the new call • Belong to the in-flight thread(in hash table) • Yes, forward to the original component • No, the thread is suspended • The call counter reached 0 • A quiescent state
Completed Phase • Remove the mediator • Future call be directly handled by the new component • Resume all thread
Outline • Introduction • Design Overview • Implementation Highlights • Preliminary Results • Conclusion
Preliminary Results • Benchmarks • A toy component (simple counter) • A substantial component of the K42 memory management subsystem
Preliminary Results • Counter • Simple:Partitioned/Shared counter
Preliminary Results • File Cache Manager(FCM) • Simple:Partitioned/Shared FCM
Outline • Introduction • Design Overview • Implementation Highlights • Preliminary Results • Conclusion
Conclusion • Describe the hot-swapping mechanism • Totally transparent to the clients • Minimize Impact on performance • The limitation of this mechanism • Threads are relatively short-lived • Many Server-based system are short-lived