JDap: Supporting in-memory data persistence in javascript using Intel's PMDK

Litong You, Hao Xu, Qipeng Zhang, Tianyou Li, Chen Li, Yuting Chen*, Linpeng Huang

*Corresponding author for this work

Research output: Contribution to journalJournal articleResearchpeer-review

3 Citations (Scopus)

Abstract

Data persistence is a feature that the data needs to live longer than its creator. The state-of-the-art is in-memory data persistence, requiring data in the memory to be persistent even when the application crashes. So far in-memory data persistence has been supported in many programming languages such as C, C++, and Java. However, it has not yet been well supported in JavaScript, a popular scripting language for software development. To solve this problem, we introduce JDap, an extension to JavaScript's runtime and execution engine, to support in-memory data persistence in JavaScript using Intel's Persistent Memory Development Kit (PMDK). JDap consists of (1) a JavaScript persistent object pool that serves as a heap in which persistent objects can be created, managed, and accessed safely and consistently. In particular, this pool supports shared memory parallelism, allowing persistent data to be accessed in parallel; (2) a set of JavaScript APIs that provides programmers with supports in managing and accessing persistent data in an easy-to-use and safe manner. We have implemented JDap and evaluated it against two database-supported data persistence styles (MongoDB's object store and indexedDB's binary store) on micro-benchmarks and real-world applications. Our evaluation shows that JDap outperforms object store by 1.6 × and outperforms binary store by 24.6 × . We have also evaluated JDap against Extended Memory Semantics (EMS) on data-intensive tasks. The results show that JDap outperforms EMS by 2 ×.

Original languageEnglish
Article number101662
JournalJournal of Systems Architecture
Volume101
ISSN1383-7621
DOIs
Publication statusPublished - Dec 2019

Keywords

  • Application programming interface
  • In-Memory data persistence
  • Javascript
  • Object pool
  • Persistent memory development kit

Fingerprint

Dive into the research topics of 'JDap: Supporting in-memory data persistence in javascript using Intel's PMDK'. Together they form a unique fingerprint.

Cite this