microsoft / Trill

Trill is a single-node query processor for temporal or streaming data.
MIT License
1.25k stars 133 forks source link

First-class support for enumerables #12

Open cybertyche opened 5 years ago

cybertyche commented 5 years ago

All ingress methods into Trill currently rely on IObservable and thus rely on push semantics. If one wants to ingress data from an IEnumerable, one must first use an external framework or custom code to convert the IEnumerable to an IObservable. For multi-input queries, doing so caused potential threading issues.

We would like to add first-class support for IEnumerable ingress. Doing so will likely require implementation of back pressure mechanisms in binary operators, where data is drawn from one side or the other to maintain optimal data flow (instead of relying on the ingress operators to handle control flow).

MedAnd commented 5 years ago

Any plans to support System.Threading.Channels & IAsyncEnumerable?

cybertyche commented 5 years ago

Hi @MedAnd! We have plans for these, but they fall kind of in-between this work item and another work item for adding features for newer language/framework features. If you'd like to track this separately, please feel free to file a separate issue for this so you can be updated when we get to it.

MedAnd commented 5 years ago

Have created #49