You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-commits@jackrabbit.apache.org by ju...@apache.org on 2014/07/29 17:25:19 UTC

svn commit: r1614384 - /jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/file/FileStore.java

Author: jukka
Date: Tue Jul 29 15:25:19 2014
New Revision: 1614384

URL: http://svn.apache.org/r1614384
Log:
OAK-2002: TarMK: FileStore constructor loads all entries in the journal.log

Load the journal.log as strings and only instantiate the last RecordIds.

Modified:
    jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/file/FileStore.java

Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/file/FileStore.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/file/FileStore.java?rev=1614384&r1=1614383&r2=1614384&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/file/FileStore.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/segment/file/FileStore.java Tue Jul 29 15:25:19 2014
@@ -192,19 +192,19 @@ public class FileStore implements Segmen
                 String.format(FILE_NAME_FORMAT, writeNumber, "a"));
         this.writer = new TarWriter(writeFile);
 
-        LinkedList<RecordId> heads = newLinkedList();
+        LinkedList<String> heads = newLinkedList();
         String line = journalFile.readLine();
         while (line != null) {
             int space = line.indexOf(' ');
             if (space != -1) {
-                heads.add(RecordId.fromString(tracker, line.substring(0, space)));
+                heads.add(line.substring(0, space));
             }
             line = journalFile.readLine();
         }
 
         RecordId id = null;
         while (id == null && !heads.isEmpty()) {
-            RecordId last = heads.removeLast();
+            RecordId last = RecordId.fromString(tracker, heads.removeLast());
             SegmentId segmentId = last.getSegmentId();
             if (containsSegment(
                     segmentId.getMostSignificantBits(),
@@ -629,6 +629,12 @@ public class FileStore implements Segmen
         compactionThread.trigger();
     }
 
+    public void accept(TarEntryVisitor visitor) throws IOException {
+        for (TarReader reader : readers) {
+            reader.accept(visitor);
+        }
+    }
+
     public Map<String, Set<UUID>> getTarReaderIndex() {
         Map<String, Set<UUID>> index = new HashMap<String, Set<UUID>>();
         for (TarReader reader : readers) {