HyFlow

 

Download and try our prototypes

Multiple software systems developed in the project are available as open-source/GPL. They are divided into three categories: those integrated in our Hyflow distributed transactional memory framework; those integrated in Infinispan, the open-source distributed in-memory key/value data grid and cache by Red Hat; and those implemented from the ground up.



Hyflow, our distributed transactional memory framework


HyFlow is a Distributed Transactional Memory (DTM) framework that provides pluggable support for concurrency control protocols and supporting mechanisms (e.g., directory lookup, message ordering). HyFlow exports a simple distributed programming model that excludes locks and relies on just atomic sections. Inside an atomic section, reads and writes to shared, local and remote objects appear to take effect instantaneously.

>> Hyflow2 (Scala)

Hyflow2 is the next iteration of our DTM library. It was redesigned and completely rewritten. Hyflow2 provides more features, new APIs that do not need byte-code rewriting, and better performance. Hyflow2 is written in the Scala language for the JVM, but provides a Java compatibility API. The Scala API is based on the excellent Scala STM API, considered for inclusion in Scala's standard library. The implementation uses actors and the Akka library.

Source code is available as a Mercurial repository. Instructions for downloading, compiling, and running benchmarks are available here.

>> Hyflow1 (Java)

Hyflow1 is the JAVA implementation of the Hyflow framework. It uses Java 5 annotations for declaring atomic sections. No changes are needed to the underlying virtual machine or compiler. HyFlow supports the dataflow model and it ensures (distributed) transactional properties including atomicity, consistency, and isolation using a distributed version of the Transactional Locking II (TL2) STM algorithm, called Transactional Forwarding Algorithm (TFA).

Source code is available as a Mercurial repository. Instructions for downloading, compiling, and running benchmarks are available here.

>> Hyflow-go: geo-replicated data store

hyflow-go is our geo-replicated, main-memory, highly consistent datastore. We employ multi-master replication schemes to keep latency down while increasing transaction throughput. More details, as well as source code are available on the hyflow-go project page.


Any comment or feedback? Please do not hesitate to contact us.

 

This work is supported in part by US National Science Foundation under grants CNS 0915895, CNS 1116190, CNS 1130180, and CNS 1217385, and AFOSR under grants FA9550-14-1-0163 and FA9550-14-1-0143. Any opinions, findings, and conclusions or recommendations expressed in this site are those of the author(s) and do not necessarily reflect the views of the National Science Foundation or AFOSR.