From 1a33f8ff73b05cf4d21f0cc989471ec68b14b145 Mon Sep 17 00:00:00 2001 From: Tomas Cere Date: Tue, 4 Jun 2019 15:32:20 +0200 Subject: [PATCH] Add buffering to LocalSnapshotStore These improve snapshot save/load load times by around 15-20% on my environment. Change-Id: I67236f7e97f519993031d462c947588004857c33 Signed-off-by: Tomas Cere --- .../controller/cluster/persistence/LocalSnapshotStore.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/opendaylight/md-sal/sal-clustering-commons/src/main/java/org/opendaylight/controller/cluster/persistence/LocalSnapshotStore.java b/opendaylight/md-sal/sal-clustering-commons/src/main/java/org/opendaylight/controller/cluster/persistence/LocalSnapshotStore.java index 62b0cf5bfd..e08fec2e89 100644 --- a/opendaylight/md-sal/sal-clustering-commons/src/main/java/org/opendaylight/controller/cluster/persistence/LocalSnapshotStore.java +++ b/opendaylight/md-sal/sal-clustering-commons/src/main/java/org/opendaylight/controller/cluster/persistence/LocalSnapshotStore.java @@ -20,6 +20,7 @@ import com.google.common.annotations.VisibleForTesting; import com.google.common.io.ByteStreams; import com.typesafe.config.Config; import java.io.BufferedInputStream; +import java.io.BufferedOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; @@ -137,7 +138,7 @@ public class LocalSnapshotStore extends SnapshotStore { private Object deserialize(final File file) throws IOException { return JavaSerializer.currentSystem().withValue((ExtendedActorSystem) context().system(), (Callable) () -> { - try (ObjectInputStream in = new ObjectInputStream(new FileInputStream(file))) { + try (ObjectInputStream in = new ObjectInputStream(new BufferedInputStream(new FileInputStream(file)))) { return in.readObject(); } catch (ClassNotFoundException e) { throw new IOException("Error loading snapshot file " + file, e); @@ -175,7 +176,7 @@ public class LocalSnapshotStore extends SnapshotStore { LOG.debug("Saving to temp file: {}", temp); - try (ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream(temp))) { + try (ObjectOutputStream out = new ObjectOutputStream(new BufferedOutputStream(new FileOutputStream(temp)))) { out.writeObject(snapshot); } catch (IOException e) { LOG.error("Error saving snapshot file {}. Deleting file..", temp, e); -- 2.36.6