Skip to content

dcs-chalmers/haren

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Haren

Haren outline

Haren is a scheduling framework for stream processing systems. It executes streaming operators using a group of Processing Threads (PTs) and allows the developer to easily implement and enforce scheduling policies. It abstracts the state of streaming components as abritrary features, that are used by user-defined scheduling functions to define intra- and inter-thread scheduling rules.

For detailed information, please refer to the ACM DEBS'19 publication introducing the framework:

Dimitris Palyvos-Giannas, Vincenzo Gulisano, and Marina Papatriantafilou. 2019. Haren: A Framework for Ad-Hoc Thread Scheduling Policies for Data Streaming Applications. In Proceedings of the 13th ACM International Conference on Distributed and Event-based Systems (DEBS ‘19). ACM, New York, NY, USA, 19-30. DOI: https://doi.org/10.1145/3328905.3329505

Usage

Project Setup

Include the following in your pom.xml:

<dependencies>
    <dependency>
      <groupId>io.palyvos</groupId>
      <artifactId>haren</artifactId>
      <version>0.1</version>
    </dependency>
    <!-- ... -->
</dependencies>

Main Classes

Haren can be coupled with an SPE using the Task and HarenScheduler entities, where a Task is a unit of execution (e.g., an operator) that will be scheduled by HarenScheduler. The scheduling behavior is controlled by defining an appropriate InterThreadSchedulingFunction, which controls the assignment of a Task to processing threads and an IntraThreadSchedulingFunction, which controls the prioritization of tasks in each thread.

Scheduling Phases

The figure below shows a high-level overview of the different scheduling stages of Haren.

haren overview

About

Scheduling framework for stream processing systems

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages