Remove NormalizedNodePruner.SimpleStack 34/81234/2
authorRobert Varga <robert.varga@pantheon.tech>
Wed, 27 Mar 2019 22:51:57 +0000 (23:51 +0100)
committerRobert Varga <robert.varga@pantheon.tech>
Wed, 27 Mar 2019 23:02:06 +0000 (00:02 +0100)
commit8e3fb7b97f23fe0aba388b295fbe45d67d21e91c
treefc278110c35fcc90ee75da4dbc23cce575bf1a38
parentf7d34eae1aa1938b98a05e8cf4b107b9933a5be5
Remove NormalizedNodePruner.SimpleStack

This custom implementation is highly inefficient, because:
1) peek/pop operations perform get(int) and remove(int) operations
   on ArrayList, which are highly inefficient O(N)
2) it allocates an object for each entry

Replace this class with a stock Deque, which takes care of the first
problem, as push/pop/peek are amortized O(1).

For implementation use an ArrayDeque, which takes care of the second
problem, as stack entries are reused.

Change-Id: Ie59e2fb47f841e4e5fc08c3ab7e164ad0cb368ad
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
opendaylight/md-sal/sal-clustering-commons/src/main/java/org/opendaylight/controller/cluster/datastore/node/utils/transformer/NormalizedNodePruner.java