Tackling consistency issues for runtime updating distributed systems

F. Banno, Daniele Marletta, Giuseppe Pappalardo, Emiliano Tramontana · 2010

Dynamic update capabilities allow a system to change some of its components without stopping execution, so as to cater for versioning and self-optimisation. In this paper, we propose FREJA to support transparent dynamic updates of classes of a distributed Java system. In doing so, FREJA purports to (i) ensure the consistency of the execution flow, and (ii) avoid that faults typical of a distributed environment interfere with the updating operations. FREJA's operations are transparent with respect to the system to be updated, thanks to appropriate selective bytecode rewriting of classes, performed at load-time. Consistency of the execution flow, for any state of the system to be updated and even in the face of network faults, is ensured by an ad-hoc protocol which checks the validity of changes and, should a fault manifest itself, falls back to a previous configuration. Dynamic updates, executed while safeguarding consistency, foster systems properties such as availability, maintainability and fault-tolerance, since by changing some parts of a running system bugs fixes and fault recovery can be performed. Hence, the proposed solution provides developers with valuable mechanisms which are paramount to obtain dependable systems.

Read the paper · More papers on PaperTik