Paper Details

Communicating Process Architectures (CPA)
 Title: Concurrent Composition of I/O Redundancy Behaviors in Go
 Conference: Communicating Process Architectures 2017
 Authors: Klaus Birkelund Jensen, Brian Vinter
Niels Bohr Institute, University of Copenhagen
 Abstract: The Go programming language defines simple I/O interfaces that any type may implement. In this paper we introduce a Go package that allows arbitrary implementations of these interfaces to be composed into RAID-like redundant (and/or) high-performance striped arrays. The package also allows spares to be added for fail-over functionality. The package is focused on providing a highly available write setting that tolerates multiple failures but can always receive data as long as a single redundant path exists. This is achieved by allowing reads to be unavailable in the presence of failures. The package is highly concurrent and parallelised and exploits the Go programming languageā€™s built-in light-weight concurrency features. 

BibTeX Entry

Full paper