Author: adulceanu
Date: Thu May 14 11:11:33 2020
New Revision: 1877733

URL: http://svn.apache.org/viewvc?rev=1877733&view=rev
Log:
OAK-8827 - AWS support for segment-tar
Persist and retrieve AWS Segment entries
Manage gc.log in AWS
Contribution by Ieran Draghiciu

Modified:
    
jackrabbit/oak/trunk/oak-segment-aws/src/main/java/org/apache/jackrabbit/oak/segment/aws/AwsSegmentArchiveWriter.java
    
jackrabbit/oak/trunk/oak-segment-aws/src/main/java/org/apache/jackrabbit/oak/segment/aws/S3Directory.java
    
jackrabbit/oak/trunk/oak-segment-aws/src/main/java/org/apache/jackrabbit/oak/segment/aws/tool/AwsSegmentStoreMigrator.java

Modified: 
jackrabbit/oak/trunk/oak-segment-aws/src/main/java/org/apache/jackrabbit/oak/segment/aws/AwsSegmentArchiveWriter.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-aws/src/main/java/org/apache/jackrabbit/oak/segment/aws/AwsSegmentArchiveWriter.java?rev=1877733&r1=1877732&r2=1877733&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-segment-aws/src/main/java/org/apache/jackrabbit/oak/segment/aws/AwsSegmentArchiveWriter.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-segment-aws/src/main/java/org/apache/jackrabbit/oak/segment/aws/AwsSegmentArchiveWriter.java
 Thu May 14 11:11:33 2020
@@ -91,8 +91,7 @@ public class AwsSegmentArchiveWriter imp
         String fullName = directory.getPath() + segmentName;
         ioMonitor.beforeSegmentWrite(new File(fullName), msb, lsb, size);
         Stopwatch stopwatch = Stopwatch.createStarted();
-        directory.writeObject(segmentName, data, 
AwsBlobMetadata.toSegmentMetadata(indexEntry));
-        writeIndex();
+        directory.writeObject(segmentName, data);
         ioMonitor.afterSegmentWrite(new File(fullName), msb, lsb, size, 
stopwatch.elapsed(TimeUnit.NANOSECONDS));
     }
 
@@ -180,6 +179,7 @@ public class AwsSegmentArchiveWriter imp
     public void flush() throws IOException {
         if (queue.isPresent()) { // required to handle IOException
             queue.get().flush();
+            writeIndex();
         }
     }
 

Modified: 
jackrabbit/oak/trunk/oak-segment-aws/src/main/java/org/apache/jackrabbit/oak/segment/aws/S3Directory.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-aws/src/main/java/org/apache/jackrabbit/oak/segment/aws/S3Directory.java?rev=1877733&r1=1877732&r2=1877733&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-segment-aws/src/main/java/org/apache/jackrabbit/oak/segment/aws/S3Directory.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-segment-aws/src/main/java/org/apache/jackrabbit/oak/segment/aws/S3Directory.java
 Thu May 14 11:11:33 2020
@@ -133,13 +133,8 @@ public final class S3Directory {
     }
 
     public void writeObject(String name, byte[] data) throws IOException {
-        writeObject(name, data, new HashMap<>());
-    }
-
-    public void writeObject(String name, byte[] data, Map<String, String> 
userMetadata) throws IOException {
         InputStream input = new ByteArrayInputStream(data);
         ObjectMetadata metadata = new ObjectMetadata();
-        metadata.setUserMetadata(userMetadata);
         metadata.setContentLength(data.length);
         PutObjectRequest request = new PutObjectRequest(bucketName, 
rootDirectory + name, input, metadata);
         try {

Modified: 
jackrabbit/oak/trunk/oak-segment-aws/src/main/java/org/apache/jackrabbit/oak/segment/aws/tool/AwsSegmentStoreMigrator.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-aws/src/main/java/org/apache/jackrabbit/oak/segment/aws/tool/AwsSegmentStoreMigrator.java?rev=1877733&r1=1877732&r2=1877733&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-segment-aws/src/main/java/org/apache/jackrabbit/oak/segment/aws/tool/AwsSegmentStoreMigrator.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-segment-aws/src/main/java/org/apache/jackrabbit/oak/segment/aws/tool/AwsSegmentStoreMigrator.java
 Thu May 14 11:11:33 2020
@@ -125,8 +125,9 @@ public class AwsSegmentStoreMigrator imp
         if (appendMode) {
             targetGCJournal.truncate();
         }
-        for (String line : source.getGCJournalFile().readLines()) {
-            targetGCJournal.writeLine(line);
+        List<String> lines = source.getGCJournalFile().readLines();
+        if (lines.size() > 0) {
+            targetGCJournal.writeLine(lines.get(lines.size() - 1));
         }
         return null;
     }


Reply via email to