...
Note that the abstraction of this base implementation does not specify where the deserialization is performed. Because the RecordEmitter is driven by the main mailbox thread of the task, ideally the deserialization should be done in the split reader so it is more scalable. It is also possible to introduce a deserialization thread pool to do that. However, the detail implementation of deserialization is not the focus of this FLIP and will be covered by followup FLIPs.
The interfaces used by the base implementation is covered in the section of interface for base implementation.
Failover
The state of the SplitEnumerator includes the following:
...
Code Block | ||||||
---|---|---|---|---|---|---|
| ||||||
public class StreamExecutionEnvironment { ... public <T> DataStream<T> continuousSource(Source<T, ?, ?> source) {...} public <T> DataStream<T> continuousSource(Source<T, ?, ?> source, TypeInformation<T> type) {...} public <T> DataStream<T> boundedSource(Source<T, ?, ?> source) {...} public <T> DataStream<T> boundedSource(Source<T, ?, ?> source, TypeInformation<T> type) {...} ... } |
Anchor | ||||
---|---|---|---|---|
|
The following interfaces are high level interfaces that are introduced by the base implementation of Source.
...