[CONTROLLER-1908] Deduplicate NodeIdentifierWithPredicate/LeafNode values from incoming streams Created: 26/Aug/19  Updated: 20/Nov/19  Resolved: 05/Nov/19

Status: Resolved
Project: controller
Component/s: clustering
Affects Version/s: None
Fix Version/s: Magnesium, Sodium SR1, Neon SR3

Type: Improvement Priority: High
Reporter: Robert Varga Assignee: Robert Varga
Resolution: Done Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Issue Links:
Blocks
blocks CONTROLLER-1909 Deduplicate NodeIdentifierWithPredica... Resolved

 Description   

Heap dump analysis of an OFP-centric datastore snapshot shows we are have duplicate strings retained from MapNodes - one String is retained from NodeIdentifierWithPredicates, the other one is retained from the corresponding leaf. The same is probably true for LeafSetNodes and their NodeWithValue keys.

While these duplicates are small in each instance (40-100 bytes each), there are 1.4M MapEntry nodes in the dump and strings are accounting for 18% of the allocated heap - thus we should attempt to de-duplicate them while restoring the data stream.



 Comments   
Comment by Robert Varga [ 27/Aug/19 ]

This reduces memory footprint from 895MiB to 853MiB (-42MiB, 4.7%) by eliminating ~646K retained objects.

Generated at Wed Feb 07 19:56:45 UTC 2024 using Jira 8.20.10#820010-sha1:ace47f9899e9ee25d7157d59aa17ab06aee30d3d.