Author: frm
Date: Mon Aug 28 12:06:33 2017
New Revision: 1806436
URL: http://svn.apache.org/viewvc?rev=1806436&view=rev
Log:
OAK-6570 - Represent referenced segments as a Set in TarFiles#getGraph
Modified:
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/explorer/ExplorerBackend.java
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/explorer/NodeStoreTree.java
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/explorer/SegmentTarExplorerBackend.java
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/ReadOnlyFileStore.java
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/tar/TarFiles.java
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/tool/DebugTars.java
jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/file/tar/TarFilesTest.java
Modified:
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/explorer/ExplorerBackend.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/explorer/ExplorerBackend.java?rev=1806436&r1=1806435&r2=1806436&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/explorer/ExplorerBackend.java
(original)
+++
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/explorer/ExplorerBackend.java
Mon Aug 28 12:06:33 2017
@@ -38,7 +38,7 @@ interface ExplorerBackend {
Map<String, Set<UUID>> getTarReaderIndex();
- Map<UUID, List<UUID>> getTarGraph(String file) throws IOException;
+ Map<UUID, Set<UUID>> getTarGraph(String file) throws IOException;
List<String> getTarFiles();
Modified:
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/explorer/NodeStoreTree.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/explorer/NodeStoreTree.java?rev=1806436&r1=1806435&r2=1806436&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/explorer/NodeStoreTree.java
(original)
+++
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/explorer/NodeStoreTree.java
Mon Aug 28 12:06:33 2017
@@ -423,9 +423,9 @@ class NodeStoreTree extends JPanel imple
sb.append(newline);
try {
- Map<UUID, List<UUID>> graph = backend.getTarGraph(file);
+ Map<UUID, Set<UUID>> graph = backend.getTarGraph(file);
sb.append("Tar graph:").append(newline);
- for (Entry<UUID, List<UUID>> entry : graph.entrySet()) {
+ for (Entry<UUID, Set<UUID>> entry : graph.entrySet()) {
sb.append(entry.getKey()).append('=').append(entry.getValue())
.append(newline);
}
Modified:
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/explorer/SegmentTarExplorerBackend.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/explorer/SegmentTarExplorerBackend.java?rev=1806436&r1=1806435&r2=1806436&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/explorer/SegmentTarExplorerBackend.java
(original)
+++
jackrabbit/oak/trunk/oak-run/src/main/java/org/apache/jackrabbit/oak/explorer/SegmentTarExplorerBackend.java
Mon Aug 28 12:06:33 2017
@@ -131,7 +131,7 @@ class SegmentTarExplorerBackend implemen
}
@Override
- public Map<UUID, List<UUID>> getTarGraph(String file) throws IOException {
+ public Map<UUID, Set<UUID>> getTarGraph(String file) throws IOException {
return store.getTarGraph(file);
}
@@ -153,8 +153,8 @@ class SegmentTarExplorerBackend implemen
continue;
}
for (String f : getTarFiles()) {
- Map<UUID, List<UUID>> graph = store.getTarGraph(f);
- for (Entry<UUID, List<UUID>> g : graph.entrySet()) {
+ Map<UUID, Set<UUID>> graph = store.getTarGraph(f);
+ for (Entry<UUID, Set<UUID>> g : graph.entrySet()) {
if (g.getValue() != null && g.getValue().contains(uuid)) {
UUID uuidP = g.getKey();
if (!todos.contains(uuidP)) {
Modified:
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/ReadOnlyFileStore.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/ReadOnlyFileStore.java?rev=1806436&r1=1806435&r2=1806436&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/ReadOnlyFileStore.java
(original)
+++
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/ReadOnlyFileStore.java
Mon Aug 28 12:06:33 2017
@@ -142,7 +142,7 @@ public class ReadOnlyFileStore extends A
return tarFiles.getIndices();
}
- public Map<UUID, List<UUID>> getTarGraph(String fileName) throws
IOException {
+ public Map<UUID, Set<UUID>> getTarGraph(String fileName) throws
IOException {
return tarFiles.getGraph(fileName);
}
Modified:
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/tar/TarFiles.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/tar/TarFiles.java?rev=1806436&r1=1806435&r2=1806436&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/tar/TarFiles.java
(original)
+++
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/file/tar/TarFiles.java
Mon Aug 28 12:06:33 2017
@@ -24,6 +24,7 @@ import static com.google.common.collect.
import static com.google.common.collect.Maps.newHashMap;
import static com.google.common.collect.Sets.newHashSet;
import static java.util.Collections.emptyList;
+import static java.util.Collections.emptySet;
import static org.apache.commons.io.FileUtils.listFiles;
import java.io.Closeable;
@@ -38,6 +39,7 @@ import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
+import java.util.Map.Entry;
import java.util.NoSuchElementException;
import java.util.Set;
import java.util.UUID;
@@ -696,7 +698,7 @@ public class TarFiles implements Closeab
return ids;
}
- public Map<UUID, List<UUID>> getGraph(String fileName) throws IOException {
+ public Map<UUID, Set<UUID>> getGraph(String fileName) throws IOException {
Node head;
lock.readLock().lock();
@@ -717,14 +719,16 @@ public class TarFiles implements Closeab
}
}
- Map<UUID, List<UUID>> result = new HashMap<>();
+ Map<UUID, Set<UUID>> result = new HashMap<>();
if (index != null) {
for (UUID uuid : index) {
- result.put(uuid, emptyList());
+ result.put(uuid, emptySet());
}
}
if (graph != null) {
- result.putAll(graph);
+ for (Entry<UUID, List<UUID>> entry : graph.entrySet()) {
+ result.put(entry.getKey(), new HashSet<>(entry.getValue()));
+ }
}
return result;
}
Modified:
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/tool/DebugTars.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/tool/DebugTars.java?rev=1806436&r1=1806435&r2=1806436&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/tool/DebugTars.java
(original)
+++
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/tool/DebugTars.java
Mon Aug 28 12:06:33 2017
@@ -173,10 +173,10 @@ public class DebugTars implements Runnab
}
try {
- Map<UUID, List<UUID>> graph = store.getTarGraph(t);
+ Map<UUID, Set<UUID>> graph = store.getTarGraph(t);
System.out.println();
System.out.println("Tar graph:");
- for (Map.Entry<UUID, List<UUID>> entry : graph.entrySet()) {
+ for (Map.Entry<UUID, Set<UUID>> entry : graph.entrySet()) {
System.out.println("" + entry.getKey() + '=' +
entry.getValue());
}
} catch (IOException e) {
Modified:
jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/file/tar/TarFilesTest.java
URL:
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/file/tar/TarFilesTest.java?rev=1806436&r1=1806435&r2=1806436&view=diff
==============================================================================
---
jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/file/tar/TarFilesTest.java
(original)
+++
jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/file/tar/TarFilesTest.java
Mon Aug 28 12:06:33 2017
@@ -17,6 +17,7 @@
package org.apache.jackrabbit.oak.segment.file.tar;
+import static com.google.common.collect.Sets.newHashSet;
import static java.util.Arrays.asList;
import static java.util.Collections.addAll;
import static java.util.Collections.emptyList;
@@ -35,8 +36,8 @@ import java.io.File;
import java.io.IOException;
import java.nio.ByteBuffer;
import java.util.Collection;
+import java.util.HashMap;
import java.util.HashSet;
-import java.util.List;
import java.util.Map;
import java.util.Random;
import java.util.Set;
@@ -236,16 +237,15 @@ public class TarFilesTest {
tarFiles.newWriter();
String file = tarFiles.getIndices().keySet().iterator().next();
- Map<UUID, List<UUID>> graph = tarFiles.getGraph(file);
+ Map<UUID, Set<UUID>> graph = tarFiles.getGraph(file);
- Set<UUID> keys = new HashSet<>();
- addAll(keys, a, b, c, d);
- assertEquals(keys, graph.keySet());
-
- assertEquals(emptyList(), graph.get(a));
- assertEquals(graph.get(b), singletonList(a));
- assertEquals(graph.get(c), singletonList(a));
- assertTrue(graph.get(d).containsAll(asList(b, c)));
+ Map<UUID, Set<UUID>> expected = new HashMap<>();
+ expected.put(a, emptySet());
+ expected.put(b, singleton(a));
+ expected.put(c, singleton(a));
+ expected.put(d, newHashSet(b, c));
+
+ assertEquals(expected, graph);
}
@Test