Deconstructing yield Operator to Enhance Streams Processing

Diogo Poeira, Fernando Miguel Carvalho

2021

Abstract

Customizing streams pipelines with new user-defined operations is a well-known pattern regarding streams processing. However, programming languages face two challenges when considering streams extensibility: 1) provide a compact and readable way to express new operations, and 2) keep streams’ laziness behavior. From here, we may find a consensus around the adoption of the generator operator, i.e. yield, as a means to fulfil both requirements, since most state-of-the-art programming languages provide this feature. Yet, what is the performance overhead of interleaving a yield-based operation in streams processing? In this work we present a benchmark based on realistic use cases of two different web APIs, namely: Last.fm and world weather online, where custom yield-based operations may degrade the streams performance in twofold. We also propose a purely functional and minimalistic design, named tinyield, that can be easily adopted in any programming language and provides a concise way of chaining extension operations fluently, with low overhead in the evaluated benchmarks. The tinyield proposal was deployed in three different libraries, namely for Java (jayield), JavaScript (tinyield4ts) and .Net (tinyield4net).

Download


Paper Citation


in Harvard Style

Poeira D. and Miguel Carvalho F. (2021). Deconstructing yield Operator to Enhance Streams Processing. In Proceedings of the 16th International Conference on Software Technologies - Volume 1: ICSOFT, ISBN 978-989-758-523-4, pages 143-150. DOI: 10.5220/0010541001430150


in Bibtex Style

@conference{icsoft21,
author={Diogo Poeira and Fernando Miguel Carvalho},
title={Deconstructing yield Operator to Enhance Streams Processing},
booktitle={Proceedings of the 16th International Conference on Software Technologies - Volume 1: ICSOFT,},
year={2021},
pages={143-150},
publisher={SciTePress},
organization={INSTICC},
doi={10.5220/0010541001430150},
isbn={978-989-758-523-4},
}


in EndNote Style

TY - CONF

JO - Proceedings of the 16th International Conference on Software Technologies - Volume 1: ICSOFT,
TI - Deconstructing yield Operator to Enhance Streams Processing
SN - 978-989-758-523-4
AU - Poeira D.
AU - Miguel Carvalho F.
PY - 2021
SP - 143
EP - 150
DO - 10.5220/0010541001430150