PyReload: Dynamic Updating of Python Programs by Reloading

Wei Tang, Min Zhang

Research output: Chapter in Book/Report/Conference proceedingConference contributionpeer-review

2 Scopus citations

Abstract

Dynamic Software Updating (DSU) is a promising technique for updating running software systems without incurring downtime. It is particularly useful to those systems which need to provide 24x7 services. Many efforts have been made to dynamic updating of the programs developed in mainstreaming languages such as C and Java. With the popularity of Python, many software servers are developed using Python and therefore they are desired to be dynamically updatable. However, there are few studies on dynamic updating of Python. To our knowledge, there exists only one updating approach for Python programs. The approach requires a dedicated Python interpreter in order to manipulate threads for updating, and consequently, it cannot be directly applied to mainstreaming Python interpreters. In this paper, we propose a novel dynamic updating approach to Python based on the built-in reloading mechanism that is supported by most of Python interpreters. Our approach is generic in that it is applicable to ordinary Python interpreters without any change to them. We implement a prototype called PyReload based on the proposed approach. PyReload is compatible with several mainstreaming Python interpreters such as CPython, Pypy and Jython. A case study is conducted to show the usage of PyReload. For performance, experimental results show that PyReload needs a shorter time for updating than the existing approach does.

Original languageEnglish
Title of host publicationProceedings - 25th Asia-Pacific Software Engineering Conference, APSEC 2018
PublisherIEEE Computer Society
Pages229-238
Number of pages10
ISBN (Electronic)9781728119700
DOIs
StatePublished - 2 Jul 2018
Event25th Asia-Pacific Software Engineering Conference, APSEC 2018 - Nara, Japan
Duration: 4 Dec 20187 Dec 2018

Publication series

NameProceedings - Asia-Pacific Software Engineering Conference, APSEC
Volume2018-December
ISSN (Print)1530-1362

Conference

Conference25th Asia-Pacific Software Engineering Conference, APSEC 2018
Country/TerritoryJapan
CityNara
Period4/12/187/12/18

Keywords

  • Dynamic software updating
  • Python
  • reloading mechanism

Fingerprint

Dive into the research topics of 'PyReload: Dynamic Updating of Python Programs by Reloading'. Together they form a unique fingerprint.

Cite this