This paper shows how functional languages can be adapted for transaction processing, and discusses the implementation of a parallel runtime system for such functional transaction processing languages. We extend functional languages with current state variables and result state variables to allow the definition of transactions that can update, create and delete bindings in a state. Our runtime system features of a graph reducer, a transaction manager and a persistence module. Our graph reducer adapts template instantiation with anonymous templates, allowing lazy execution of ad-hoc transactions that can dynamically create and remove of bindings in the state. Additionally, we have developed a scheduler for graph reduction that guarantees low latency execution of transactions, where load balancing is performed by randomising the reduction order of threads. We have evaluated our prototype implementation via some practical experiments.
|Place of Publication||Enschede|
|Publisher||Centre for Telematics and Information Technology (CTIT)|
|Number of pages||16|
|Publication status||Published - 2013|
|Name||CTIT Technical Report Series|
|Publisher||University of Twente, Centre for Telematica and Information Technology (CTIT)|
Wevers, L., Huisman, M., & de Keijzer, A. (2013). Parallel transaction processing in functional languages, towards practical functional databases. (CTIT Technical Report Series; No. TR-CTIT-13-06). Enschede: Centre for Telematics and Information Technology (CTIT).