Open Transactional Actions: Interacting with non-transactional resources in S...
summary
Open Transactional Actions (OTAs) extend STM Haskell to run IO inside transactions while registering runOT/liftIO/register commit and abort handlers, and they guarantee an OTA once started executes to registration even across retries. Implementation patches a modified g8c runtime and example libraries live on GitHub. Evaluation runs 30 trials including one million ID requests and shows transactional boosting speeds: a boosted set is up to ~15× faster (read-heavy) and >20× faster (write-heavy) than pure STM; file-IO and boosted linked-list examples also work.
AI-written summary · about
chapters (13)
- 0:00Start
- 0:15Introduction
- 2:03The Problem
- 9:31Example: File Access
- 10:08File Access Library
- 10:29Opening a File
- 11:46Writing a Line into a file
- 13:08Transactional Boosting
- 14:17Unique ID Generator
- 19:31Linked List
- 21:04Experiments
- 24:28Linked-list
- 26:36Future Work
related talks
01h 33mWhy You Should Use Software Transactional Memory
01h 00mWhat did C++ do for Transactional Memory?
36mATOMICALLY { DELETE YOUR ACTORS }
12mOptimistic Concurrency Control for Real-world Go Programs
01h 13mTransactional memory
01h 03m“Transactional Memory in Practice"
53mVariables in Haskell
30mImplementing and Verifying Release-Acquire Transactional Memory in C11
