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 md...@apache.org on 2016/05/10 15:05:10 UTC
svn commit: r1743209 - in /jackrabbit/oak/trunk/oak-segment-tar/src:
main/java/org/apache/jackrabbit/oak/segment/
test/java/org/apache/jackrabbit/oak/segment/
Author: mduerig
Date: Tue May 10 15:05:10 2016
New Revision: 1743209
URL: http://svn.apache.org/viewvc?rev=1743209&view=rev
Log:
OAK-4289: Remove the gc generation from the segment meta data
Retrieve the gc generation through the segment API and remove it from the segment meta data
Modified:
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentBufferWriter.java
jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentGraph.java
jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/SegmentSizeTest.java
Modified: jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentBufferWriter.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentBufferWriter.java?rev=1743209&r1=1743208&r2=1743209&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentBufferWriter.java (original)
+++ jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentBufferWriter.java Tue May 10 15:05:10 2016
@@ -169,13 +169,9 @@ public class SegmentBufferWriter impleme
roots.clear();
blobrefs.clear();
- // FIXME OAK-4289: Remove the gc generation from the segment meta data
- // Don't write the GC generation into the segment info
- // as it is now available from the segment header. Update the tooling
- // accordingly (SegmentGraph).
- String metaInfo = "{\"wid\":\"" + wid + '"' +
+ String metaInfo =
+ "{\"wid\":\"" + wid + '"' +
",\"sno\":" + tracker.getNextSegmentNo() +
- ",\"gc\":" + generation +
",\"t\":" + currentTimeMillis() + "}";
try {
segment = new Segment(tracker, buffer, metaInfo);
Modified: jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentGraph.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentGraph.java?rev=1743209&r1=1743208&r2=1743209&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentGraph.java (original)
+++ jackrabbit/oak/trunk/oak-segment-tar/src/main/java/org/apache/jackrabbit/oak/segment/SegmentGraph.java Tue May 10 15:05:10 2016
@@ -291,18 +291,12 @@ public final class SegmentGraph {
return parseSegmentGraph(fileStore, roots, Predicates.<UUID>alwaysTrue(), new Function<UUID, String>() {
@Override @Nullable
public String apply(UUID segmentId) {
- Map<String, String> info = getSegmentInfoMap(segmentId, fileStore.getTracker());
- if (info != null) {
- String error = info.get("error");
- if (error != null) {
- return "Error";
- } else {
- return info.get("gc");
- }
- } else if (!isDataSegmentId(segmentId.getLeastSignificantBits())) {
- return "bulk";
+ Map<String, String> info = new SegmentInfo(segmentId, fileStore.getTracker()).getInfoMap();
+ String error = info.get("error");
+ if (error != null) {
+ return "Error";
} else {
- return "null";
+ return info.get("gc");
}
}
});
@@ -451,10 +445,11 @@ public final class SegmentGraph {
}
private static void writeNode(UUID node, PrintWriter writer, boolean inHead, Date epoch, SegmentTracker tracker) {
- Map<String, String> sInfo = getSegmentInfoMap(node, tracker);
- if (!sInfo.containsKey("t")) {
+ SegmentInfo segmentInfo = new SegmentInfo(node, tracker);
+ if (!segmentInfo.isData()) {
writer.write(node + ",b,bulk,b,-1,-1," + inHead + "\n");
} else {
+ Map<String, String> sInfo = segmentInfo.getInfoMap();
String error = sInfo.get("error");
if (error != null) {
writer.write(node +
@@ -494,10 +489,6 @@ public final class SegmentGraph {
return Long.valueOf(string);
}
- private static Map<String, String> getSegmentInfoMap(UUID segment, SegmentTracker tracker) {
- return new SegmentInfo(segment, tracker).getInfoMap();
- }
-
private static String getSegmentInfo(UUID segment, SegmentTracker tracker) {
return new SegmentInfo(segment, tracker).getInfo();
}
@@ -525,10 +516,6 @@ public final class SegmentGraph {
return id;
}
- int getSize() {
- return getSegmentId().getSegment().size();
- }
-
String getInfo() {
if (isData()) {
return getSegmentId().getSegment().getSegmentInfo();
@@ -546,7 +533,9 @@ public final class SegmentGraph {
tokenizer.read('{');
infoMap.putAll(JsonObject.create(tokenizer).getProperties());
}
- infoMap.put("size", valueOf(getSize()));
+ Segment segment = getSegmentId().getSegment();
+ infoMap.put("size", valueOf(segment.size()));
+ infoMap.put("gc", valueOf(segment.getGcGen()));
return infoMap;
} catch (SegmentNotFoundException e) {
return singletonMap("error", getStackTraceAsString(e));
Modified: jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/SegmentSizeTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/SegmentSizeTest.java?rev=1743209&r1=1743208&r2=1743209&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/SegmentSizeTest.java (original)
+++ jackrabbit/oak/trunk/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/SegmentSizeTest.java Tue May 10 15:05:10 2016
@@ -48,7 +48,7 @@ public class SegmentSizeTest {
builder = EMPTY_NODE.builder();
builder.setProperty("foo", "bar");
- expectSize(112, builder);
+ expectSize(96, builder);
expectAmortizedSize(12, builder);
builder = EMPTY_NODE.builder();
@@ -137,7 +137,7 @@ public class SegmentSizeTest {
allow.setProperty("rep:principalName", "administrators");
allow.setProperty(PropertyStates.createProperty(
"rep:privileges", ImmutableList.of("jcr:all"), Type.NAMES));
- expectSize(384, builder);
+ expectSize(368, builder);
expectAmortizedSize(96, builder);
NodeBuilder deny0 = builder.child("deny0");