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 条
  • [1] Executing Code in the Past: Efficient In-Memory Object Graph Versioning
    Pluquet, Frederic
    Langerman, Stefan
    Wuyts, Roel
    [J]. OOPSLA 2009, CONFERENCE PROCEEDINGS, 2009, : 391 - 407
  • [2] In-Memory Versioning (IMV)
    Roberts, David Andrew
    Ye, Haojie
    Brewer, Tony
    Eilert, Sean
    [J]. IEEE COMPUTER ARCHITECTURE LETTERS, 2023, 22 (01) : 65 - 68
  • [3] SilverChunk: An Efficient In-Memory Parallel Graph Processing System
    Zheng, Tianqi
    Zhang, Zhibin
    Cheng, Xueqi
    [J]. DATABASE AND EXPERT SYSTEMS APPLICATIONS, PT II, 2019, 11707 : 222 - 236
  • [4] An Energy-Efficient In-Memory Accelerator for Graph Construction and Updating
    Chen, Mingkai
    Liu, Cheng
    Liang, Shengwen
    He, Lei
    Wang, Ying
    Zhang, Lei
    Li, Huawei
    Li, Xiaowei
    [J]. IEEE TRANSACTIONS ON COMPUTER-AIDED DESIGN OF INTEGRATED CIRCUITS AND SYSTEMS, 2024, 43 (06) : 1781 - 1793
  • [5] Efficient In-Memory Evaluation of Reachability Graph Pattern Queries on Data Graphs
    Wu, Xiaoying
    Theodoratos, Dimitri
    Skoutas, Dimitrios
    Lan, Michael
    [J]. DATABASE SYSTEMS FOR ADVANCED APPLICATIONS, DASFAA 2022, PT I, 2022, : 55 - 71
  • [6] IMGA: Efficient In-Memory Graph Convolution Network Aggregation With Data Flow Optimizations
    Wei, Yuntao
    Wang, Xueyan
    Zhang, Shangtong
    Yang, Jianlei
    Jia, Xiaotao
    Wang, Zhaohao
    Qu, Gang
    Zhao, Weisheng
    [J]. IEEE TRANSACTIONS ON COMPUTER-AIDED DESIGN OF INTEGRATED CIRCUITS AND SYSTEMS, 2023, 42 (12) : 4695 - 4705
  • [7] Efficient Pipelined Execution of CNNs Based on In-Memory Computing and Graph Homomorphism Verification
    Dazzi, Martino
    Sebastian, Abu
    Parnell, Thomas
    Francese, Pier Andrea
    Benini, Luca
    Eleftheriou, Evangelos
    [J]. IEEE TRANSACTIONS ON COMPUTERS, 2021, 70 (06) : 922 - 935
  • [8] imGraph: A distributed in-memory graph database
    Jouili, Salim
    Reynaga, Aldemar
    [J]. 2013 ASE/IEEE INTERNATIONAL CONFERENCE ON SOCIAL COMPUTING (SOCIALCOM), 2013, : 732 - 737
  • [9] The OKS persistent in-memory object manager
    Jones, R
    Mapelli, L
    Ryabov, Y
    Soloviev, I
    [J]. IEEE TRANSACTIONS ON NUCLEAR SCIENCE, 1998, 45 (04) : 1958 - 1964
  • [10] Techniques for efficient in-memory checkpointing
    20160401852997
    [J]. (1) Network Institute, VU University Amsterdam, Netherlands, 1600, Brazilian Computer Society (SBC) (Association for Computing Machinery, 2 Penn Plaza, Suite 701, New York, NY 10121-0701, United States):