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) {