mirror of https://github.com/apache/druid.git
752475b799
* Fix two concurrency issues with segment fetching. 1) SegmentLocalCacheManager: Fix a concurrency issue where certain directory cleanup happened outside of directoryWriteRemoveLock. This created the possibility that segments would be deleted by one thread, while being actively downloaded by another thread. 2) TaskDataSegmentProcessor (MSQ): Fix a concurrency issue when two stages in the same process both use the same segment. For example: a self-join using distributed sort-merge. Prior to this change, the two stages could delete each others' segments. 3) ReferenceCountingResourceHolder: increment() returns a new ResourceHolder, rather than a Releaser. This allows it to be passed to callers without them having to hold on to both the original ResourceHolder *and* a Releaser. 4) Simplify various interfaces and implementations by using ResourceHolder instead of Pair and instead of split-up fields. * Add test. * Fix style. * Remove Releaser. * Updates from master. * Add some GuardedBys. * Use the correct GuardedBy. * Adjustments. |
||
---|---|---|
.. | ||
src | ||
pom.xml |