Font Size: a A A

Reactive extensions, hope or hype: A case study

Posted on:2017-10-31Degree:M.SType:Thesis
University:University of New HampshireCandidate:Kulik, Michael BFull Text:PDF
GTID:2462390014952067Subject:Computer Science
Abstract/Summary:
One major challenge in multi-threaded programming is the non-deterministic nature of threads. This non-determinism can be the source of tricky bugs that make testing and debugging of multi-threaded programs more difficult in general than similar tasks in single-threaded programs. In a traditional paradigm, where threads are used directly, developers must contend with race conditions, deadlocks, and other typical bugs of this model. Alternative models have been introduced with the intent of simplifying the development of parallel and concurrent programs. A recent framework, called Reactive Extensions (RX), was designed with this goal in mind. RX hides many low-level concurrency details and enables developers to ignore many underlying concurrency issues while writing multi-threaded programs.;In this project, we designed a typical multi-threaded server application with a database backend. We implemented the application in two ways. The first system is a task-based implementation built upon the traditional multi-threaded model and the second system is implemented using the Reactive Extensions framework. We compared both systems under varying workloads (small, medium, and large) using three different database access modes (unlimited threads, limited threads, and single threaded). We observe similar performance and resource consumption when the systems are running in unlimited thread mode. In the other two threading modes, the RX system shows reduced thread usage without paying much of a performance penalty. While the benefits of RX are modest for this type of application, the framework shows potential in environments where threads are limited.
Keywords/Search Tags:Reactive extensions, Threads, Multi-threaded
Related items