Thomas Groh created BEAM-609: -------------------------------- Summary: 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: Davor Bonaci Priority: Minor
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.4#6332)