Executing Code in the Past: Efficient In-Memory Object Graph Versioning

被引:1
|
作者
Pluquet, Frederic [1 ]
Langerman, Stefan [1 ]
Wuyts, Roel [2 ,3 ]
机构
[1] Univ Libre Bruxelles Belgium, Dept Comp Sci, Fac Sci, Brussels, Belgium
[2] IMEC, Louvain, Belgium
[3] Katholieke Univ Leuven Belgium, Louvain, Belgium
关键词
Algorithms; Design; Experimentation; Languages; Performance; Object Versioning; Object-oriented Programming; Language Design;
D O I
10.1145/1639949.1640118
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Object versioning refers to how an application can have access to previous states of its objects. Implementing this mechanism is hard because it needs to be efficient in space and time, and well integrated with the programming language. This paper presents HistOOry, an object versioning system that uses an efficient data structure to store and retrieve past states. It needs only three primitives, and existing code does not need to be modified to be versioned. It provides fine-grained control over what parts of objects are versioned and when. It stores all states, past and present, in memory. Code can be executed in the past of the system and will see the complete system at that point in time. We have implemented our model in Smalltalk and used it for three applications that need versioning: checked postconditions, stateful execution tracing and a planar point location implementation. Benchmarks are provided to asses the practical complexity of our implementation.
引用
下载
收藏
页码:391 / 407
页数:17
相关论文
共 50 条
  • [11] Efficient Memory Occupancy Models for In-Memory Databases
    Molka, Karsten
    Casale, Giuliano
    2016 IEEE 24TH INTERNATIONAL SYMPOSIUM ON MODELING, ANALYSIS AND SIMULATION OF COMPUTER AND TELECOMMUNICATION SYSTEMS (MASCOTS), 2016, : 430 - 432
  • [12] SparseMEM: Energy-efficient Design for In-memory Sparse-based Graph Processing
    Zahedi, Mahdi
    Custers, Geert
    Shahroodi, Taha
    Gaydadjiev, Georgi
    Wong, Stephan
    Hamdioui, Said
    2023 DESIGN, AUTOMATION & TEST IN EUROPE CONFERENCE & EXHIBITION, DATE, 2023,
  • [13] In-Memory Fuzzing for Binary Code Similarity Analysis
    Wang, Shuai
    Wu, Dinghao
    PROCEEDINGS OF THE 2017 32ND IEEE/ACM INTERNATIONAL CONFERENCE ON AUTOMATED SOFTWARE ENGINEERING (ASE'17), 2017, : 319 - 330
  • [14] In-Memory Big Graph: A Future Research Agenda
    Jain, Deepali
    Patgiri, Ripon
    Nayak, Sabuzima
    BUSINESS INFORMATION SYSTEMS, PT I, 2019, 353 : 18 - 29
  • [15] A1: A Distributed In-Memory Graph Database
    Buragohain, Chiranjeeb
    Risvik, Knut Magne
    Brett, Paul
    Castro, Miguel
    Cho, Wonhee
    Cowhig, Joshua
    Gloy, Nikolas
    Kalyanaraman, Karthik
    Khanna, Richendra
    Pao, John
    Renzelmann, Matthew
    Shamis, Alex
    Tan, Timothy
    Zheng, Shuheng
    SIGMOD'20: PROCEEDINGS OF THE 2020 ACM SIGMOD INTERNATIONAL CONFERENCE ON MANAGEMENT OF DATA, 2020, : 329 - 344
  • [16] ThunderRW: An In-Memory Graph Random Walk Engine
    Sun, Shixuan
    Chen, Yuhang
    Lu, Shengliang
    He, Bingsheng
    Li, Yuchen
    PROCEEDINGS OF THE VLDB ENDOWMENT, 2021, 14 (11): : 1992 - 2005
  • [17] Rearchitecting In-Memory Object Stores for Low Latency
    Zhuo, Danyang
    Zhang, Kaiyuan
    Li, Zhuohan
    Zhuang, Siyuan
    Wang, Stephanie
    Chen, Ang
    Stoica, Ion
    PROCEEDINGS OF THE VLDB ENDOWMENT, 2021, 15 (03): : 555 - 568
  • [18] Efficient in-memory extensible inverted file
    Luk, Robert W. P.
    Lam, Wai
    INFORMATION SYSTEMS, 2007, 32 (05) : 733 - 754
  • [19] Efficient In-Memory Processing Using Spintronics
    Chowdhury, Zamshed
    Harms, Jonathan D.
    Khatamifard, S. Karen
    Zabihi, Masoud
    Lv, Yang
    Lyle, Andrew P.
    Sapatnekar, Sachin S.
    Karpuzcu, Ulya R.
    Wang, Jian-Ping
    IEEE COMPUTER ARCHITECTURE LETTERS, 2018, 17 (01) : 42 - 46
  • [20] Efficient In-memory Data Management: An Analysis
    Zhang, Hao
    Tudor, Bogdan Marius
    Chen, Gang
    Ooi, Beng Chin
    PROCEEDINGS OF THE VLDB ENDOWMENT, 2014, 7 (10): : 833 - 836