ARTEMIS-1728 Reclaim memory when page cursor complete
Free hash set used to hold page position for acks and removed refs. The two set is cleared, but they still hold a big array. It is safe to replace the old one with empty set.
This commit is contained in:
parent
79ad9cb254
commit
7f606a4690
|
@ -334,7 +334,9 @@ final class PageSubscriptionImpl implements PageSubscription {
|
|||
}
|
||||
|
||||
infoPG.acks.clear();
|
||||
infoPG.acks = Collections.synchronizedSet(new LinkedHashSet<PagePosition>());
|
||||
infoPG.removedReferences.clear();
|
||||
infoPG.removedReferences = new ConcurrentHashSet<>();
|
||||
}
|
||||
|
||||
tx.addOperation(new TransactionOperationAbstract() {
|
||||
|
@ -901,11 +903,11 @@ final class PageSubscriptionImpl implements PageSubscription {
|
|||
private final long pageId;
|
||||
|
||||
// Confirmed ACKs on this page
|
||||
private final Set<PagePosition> acks = Collections.synchronizedSet(new LinkedHashSet<PagePosition>());
|
||||
private Set<PagePosition> acks = Collections.synchronizedSet(new LinkedHashSet<PagePosition>());
|
||||
|
||||
private WeakReference<PageCache> cache;
|
||||
|
||||
private final Set<PagePosition> removedReferences = new ConcurrentHashSet<>();
|
||||
private Set<PagePosition> removedReferences = new ConcurrentHashSet<>();
|
||||
|
||||
// The page was live at the time of the creation
|
||||
private final boolean wasLive;
|
||||
|
|
Loading…
Reference in New Issue