From 24d7644bb126bc3d798b49208d74a22e86d13f49 Mon Sep 17 00:00:00 2001
From: Fabio Pistolesi <fabio.pistolesi@forgerock.com>
Date: Fri, 04 Sep 2015 09:38:21 +0000
Subject: [PATCH] OPENDJ-2234 Change number indexer lags behind under load

---
 opendj-server-legacy/src/main/java/org/opends/server/replication/server/changelog/file/LogFile.java |   20 ++++++--------------
 1 files changed, 6 insertions(+), 14 deletions(-)

diff --git a/opendj-server-legacy/src/main/java/org/opends/server/replication/server/changelog/file/LogFile.java b/opendj-server-legacy/src/main/java/org/opends/server/replication/server/changelog/file/LogFile.java
index 996eacd..2dcbff4 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/replication/server/changelog/file/LogFile.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/replication/server/changelog/file/LogFile.java
@@ -80,6 +80,8 @@
   /** Indicates if log is enabled for write. */
   private final boolean isWriteEnabled;
 
+  private Record<K, V> newestRecord;
+
   /**
    * Creates a new log file.
    *
@@ -243,6 +245,7 @@
   {
     checkLogIsEnabledForWrite();
     writer.write(record);
+    newestRecord = record;
   }
 
   /**
@@ -366,22 +369,11 @@
    */
   Record<K, V> getNewestRecord() throws ChangelogException
   {
-    // TODO : need a more efficient way to retrieve it
-    DBCursor<Record<K, V>> cursor = null;
-    try
+    if (newestRecord == null)
     {
-      cursor = getCursor();
-      Record<K, V> record = null;
-      while (cursor.next())
-      {
-        record = cursor.getRecord();
-      }
-      return record;
+      newestRecord = getReader().getNewestRecord();
     }
-    finally
-    {
-      StaticUtils.close(cursor);
-    }
+    return newestRecord;
   }
 
   /**

--
Gitblit v1.10.0