From f8208948eb67a26207343ca60b5b19286f5e4410 Mon Sep 17 00:00:00 2001 From: Robert Varga Date: Mon, 27 Mar 2023 11:34:52 +0200 Subject: [PATCH] Dump DTCL changes on trace Reduce memory usage by not dumping all changes at once, but rather each of them separately and only when trace is enabled. Change-Id: I954dd4576d2625a862b254532379974c19bc1c60 Signed-off-by: Robert Varga --- .../datastore/DataTreeChangeListenerActor.java | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/DataTreeChangeListenerActor.java b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/DataTreeChangeListenerActor.java index 9384a84e38..6f88d3ea98 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/DataTreeChangeListenerActor.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/DataTreeChangeListenerActor.java @@ -60,9 +60,9 @@ class DataTreeChangeListenerActor extends AbstractUntypedActor { LOG.debug("{}: Notifying onInitialData to listener {}", logContext, listener); try { - this.listener.onInitialData(); + listener.onInitialData(); } catch (Exception e) { - LOG.error("{}: Error notifying listener {}", logContext, this.listener, e); + LOG.error("{}: Error notifying listener {}", logContext, listener, e); } } @@ -75,15 +75,21 @@ class DataTreeChangeListenerActor extends AbstractUntypedActor { return; } - LOG.debug("{}: Sending {} change notification(s) {} to listener {}", logContext, message.getChanges().size(), - message.getChanges(), listener); + final var changes = message.getChanges(); + LOG.debug("{}: Sending {} change notification(s) to listener {}", logContext, changes.size(), listener); + if (LOG.isTraceEnabled() && !changes.isEmpty()) { + LOG.trace("{}: detailed change follow", logContext); + for (int i = 0, size = changes.size(); i < size; ++i) { + LOG.trace("{}: change {}: {}", logContext, i, changes.get(i)); + } + } notificationCount++; try { - this.listener.onDataTreeChanged(message.getChanges()); + listener.onDataTreeChanged(changes); } catch (Exception e) { - LOG.error("{}: Error notifying listener {}", logContext, this.listener, e); + LOG.error("{}: Error notifying listener {}", logContext, listener, e); } // TODO: do we really need this? -- 2.36.6