# Transactional Python for Durable Machine Learning: Vision, Challenges, and Feasibility

arXiv: https://arxiv.org/abs/2305.08770 · HTML: https://mlsanity.com/paper/2305.08770/

## Key facts

- Cited by 1 papers in the map (data through 14 Oct 2026).
- Builds on 8 of its 45 references that are in the map.
- First posted on arXiv 15 May 2023.

## Builds on (most cited first, 8 of 8)

- [PyTorch: An Imperative Style, High-Performance Deep Learning Library](https://mlsanity.com/paper/1912.01703/) (2019)
- [Towards Scalable Dataframe Systems](https://mlsanity.com/paper/2001.00888/) (2020)
- [CRAC: Checkpoint-Restart Architecture for CUDA with Streams and UVM](https://mlsanity.com/paper/2008.10596/) (2020)
- [Checkpoint, Restore, and Live Migration for Science Platforms](https://mlsanity.com/paper/2101.05782/) (2021)
- [A Step Toward Deep Online Aggregation (Extended Version)](https://mlsanity.com/paper/2303.04103/) (2023)
- [S/C: Speeding up Data Materialization with Bounded Memory](https://mlsanity.com/paper/2303.09774/) (2023)
- [Principles of Dataset Versioning: Exploring the Recreation/Storage Tradeoff](https://mlsanity.com/paper/1505.05211/) (2015)
- [Airphant: Cloud-oriented Document Indexing](https://mlsanity.com/paper/2112.13323/) (2021)

## Built on by (most cited first, 1 of 1)

- [Passes Alone, Fails Together: Benchmarking Semantic Coordination in Parallel LLM-Agent Development](https://mlsanity.com/paper/2609.25396/) (2026)

## Abstract (arXiv)

In machine learning (ML), Python serves as a convenient abstraction for working with key libraries such as PyTorch, scikit-learn, and others. Unlike DBMS, however, Python applications may lose important data, such as trained models and extracted features, due to machine failures or human errors, leading to a waste of time and resources. Specifically, they lack four essential properties that could make ML more reliable and user-friendly -- durability, atomicity, replicability, and time-versioning (DART). This paper presents our vision of Transactional Python that provides DART without any code modifications to user programs or the Python kernel, by non-intrusively monitoring application states at the object level and determining a minimal amount of information sufficient to reconstruct a whole application. Our evaluation of a proof-of-concept implementation with public PyTorch and scikit-learn applications shows that DART can be offered with overheads ranging 1.5%--15.6%.
