[
https://issues.apache.org/jira/browse/BEAM-609?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Thomas Groh resolved BEAM-609.
------------------------------
Resolution: Invalid
Fix Version/s: Not applicable
This actually isn't really a thing that exists within the DirectRunner anymore.
It instead uses synthetic PCollections as inputs, and does not perform
speculative execution, which ensures elements are provided to only one
evaluator at a time.
> Add Interface around Evaluator Caching
> --------------------------------------
>
> Key: BEAM-609
> URL: https://issues.apache.org/jira/browse/BEAM-609
> Project: Beam
> Issue Type: Improvement
> Components: runner-direct
> Reporter: Thomas Groh
> Assignee: Thomas Groh
> Priority: Minor
> Fix For: Not applicable
>
>
> The "acquire-use-release" pattern is relatively common throughout the
> TransformEvaluators ((Un)BoundedRead, TestStream), and as a result there's
> some code duplication.
> Refactoring to use a common interface (among the lines of:
> public static class ConcurrentSingleUseInstanceCache<K, V> {
> public ConcurrentSingleUseInstanceCache(Function<K, V> createInstance) {
> ... }
> public @Nullable V tryAcquire(K key) { ... };
> public void release(K key, V value) { ... }
> }
> )
> would improve this abstraction boundary and get rid of some duplicate logic.
> We can also test the cache-and-hold implementations more easily.
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)