https://github.com/dcs-chalmers/haren
Scheduling framework for stream processing systems
https://github.com/dcs-chalmers/haren
scheduling stream-processing
Last synced: 5 months ago
JSON representation
Scheduling framework for stream processing systems
- Host: GitHub
- URL: https://github.com/dcs-chalmers/haren
- Owner: dcs-chalmers
- License: apache-2.0
- Created: 2019-11-25T10:50:10.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2024-02-05T22:12:10.000Z (over 2 years ago)
- Last Synced: 2025-08-07T08:18:36.503Z (10 months ago)
- Topics: scheduling, stream-processing
- Language: Java
- Homepage:
- Size: 656 KB
- Stars: 1
- Watchers: 5
- Forks: 0
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Haren

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`:
```xml
io.palyvos
haren
0.1
```
### 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.
