PM-GAWK

Persistent Scripting

Persistent scripting brings the benefits of persistent memory programming to high-level interpreted languages. More importantly, it brings the convenience and programmer productivity of scripting to persistent memory programming. We have integrated a novel generic persistent memory allocator into a popular scripting language interpreter, which now exposes a simple and intuitive persistence interface: A flag notifies the interpreter that a script’s variables reside in a persistent heap in a specified file. The interpreter begins script execution with all variables in the persistent heap ready for immediate use. New variables defined by the running script are allocated on the persistent heap and are thus available to subsequent executions. Scripts themselves are unmodified and persistent heaps may be shared freely between unrelated scripts. Experiments show that our persistent gawk prototype offers good performance while simplifying scripts, and we identify opportunities to reduce interpreter overheads.

Publications

2022

  1. NVMW
    Persistent Scripting
    Zi Fan Tan, Jianan Li, Haris Volos, and Terence Kelly
    In NVMW ’22: 13th Annual Non-Volatile Memories Workshop 2022
  2. ACM Queue
    Persistent Memory Allocation: Leverage to move a world of software
    Terence Kelly, Zi Fan Tan, Jianan Li, and Haris Volos
    ACM Queue magazine 2022

Software

Github (ucy-coast/pmgawk)

$ git clone https://github.com/ucy-coast/pmgawk.git

Archive

pmgawk-0.1.0.tar.gz (May 2, 2022)