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 ad...@apache.org on 2020/05/14 11:12:03 UTC
svn commit: r1877737 - in /jackrabbit/oak/trunk: oak-segment-aws/
oak-segment-aws/src/main/java/org/apache/jackrabbit/oak/segment/aws/
oak-segment-aws/src/main/java/org/apache/jackrabbit/oak/segment/aws/tool/
oak-segment-remote/src/main/java/org/apache...
Author: adulceanu
Date: Thu May 14 11:12:03 2020
New Revision: 1877737
URL: http://svn.apache.org/viewvc?rev=1877737&view=rev
Log:
OAK-8827 - AWS support for segment-tar
Nitpicking and javadoc adjustments
Modified:
jackrabbit/oak/trunk/oak-segment-aws/pom.xml
jackrabbit/oak/trunk/oak-segment-aws/src/main/java/org/apache/jackrabbit/oak/segment/aws/AwsContext.java
jackrabbit/oak/trunk/oak-segment-aws/src/main/java/org/apache/jackrabbit/oak/segment/aws/AwsPersistence.java
jackrabbit/oak/trunk/oak-segment-aws/src/main/java/org/apache/jackrabbit/oak/segment/aws/AwsRepositoryLock.java
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/DynamoDBClient.java
jackrabbit/oak/trunk/oak-segment-aws/src/main/java/org/apache/jackrabbit/oak/segment/aws/tool/AwsSegmentCopy.java
jackrabbit/oak/trunk/oak-segment-remote/src/main/java/org/apache/jackrabbit/oak/segment/remote/AbstractRemoteSegmentArchiveReader.java
jackrabbit/oak/trunk/oak-segment-remote/src/main/java/org/apache/jackrabbit/oak/segment/remote/AbstractRemoteSegmentArchiveWriter.java
jackrabbit/oak/trunk/oak-segment-remote/src/main/java/org/apache/jackrabbit/oak/segment/remote/RemoteUtilities.java
Modified: jackrabbit/oak/trunk/oak-segment-aws/pom.xml
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-aws/pom.xml?rev=1877737&r1=1877736&r2=1877737&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-segment-aws/pom.xml (original)
+++ jackrabbit/oak/trunk/oak-segment-aws/pom.xml Thu May 14 11:12:03 2020
@@ -47,8 +47,8 @@
<Import-Package>
<!-- OAK-7182 -->${guava.osgi.import},
org.apache.jackrabbit.oak.segment.spi*,
- !org.apache.jackrabbit.oak.segment*,
org.apache.jackrabbit.oak.segment.remote*,
+ !org.apache.jackrabbit.oak.segment*,
*
</Import-Package>
<Export-Package>
Modified: jackrabbit/oak/trunk/oak-segment-aws/src/main/java/org/apache/jackrabbit/oak/segment/aws/AwsContext.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-aws/src/main/java/org/apache/jackrabbit/oak/segment/aws/AwsContext.java?rev=1877737&r1=1877736&r2=1877737&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-segment-aws/src/main/java/org/apache/jackrabbit/oak/segment/aws/AwsContext.java (original)
+++ jackrabbit/oak/trunk/oak-segment-aws/src/main/java/org/apache/jackrabbit/oak/segment/aws/AwsContext.java Thu May 14 11:12:03 2020
@@ -114,7 +114,7 @@ public final class AwsContext {
/**
* Creates the context used to interact with AWS services.
- *
+ *
* @param configuration The configuration used to initialize the context.
* @return The context.
* @throws IOException
@@ -128,7 +128,7 @@ public final class AwsContext {
/**
* Creates the context used to interact with AWS services.
- *
+ *
* @param s3 Client for accessing Amazon S3.
* @param bucketName Name for the bucket that will store segments.
* @param rootDirectory The root directory under which the segment store is
@@ -137,12 +137,12 @@ public final class AwsContext {
* @param journalTableName Name of table used for storing log entries for
* journal and gc. The table will be created if it
* doesn't already exist. It should have a partition key
- * on "{@link #TABLE_ATTR_FILENAME}" and sort key on
- * "{@link #TABLE_ATTR_TIMESTAMP}".
+ * on "{@link DynamoDBClient#TABLE_ATTR_FILENAME}" and sort key on
+ * "{@link DynamoDBClient#TABLE_ATTR_TIMESTAMP}".
* @param lockTableName Name of table used for managing the distributed lock.
* The table will be created if it doesn't already
* exist. It should have a partition key on
- * "{@link #LOCKTABLE_KEY}".
+ * "{@link DynamoDBClient#LOCKTABLE_KEY}".
* @return The context.
* @throws IOException
*/
@@ -165,12 +165,12 @@ public final class AwsContext {
* @param journalTableName Name of table used for storing log entries for
* journal and gc. The table will be created if it
* doesn't already exist. It should have a partition key
- * on "{@link #TABLE_ATTR_FILENAME}" and sort key on
- * "{@link #TABLE_ATTR_TIMESTAMP}".
+ * on "{@link DynamoDBClient#TABLE_ATTR_FILENAME}" and sort key on
+ * "{@link DynamoDBClient#TABLE_ATTR_TIMESTAMP}".
* @param lockTableName Name of table used for managing the distributed lock.
* The table will be created if it doesn't already
* exist. It should have a partition key on
- * "{@link #LOCKTABLE_KEY}".
+ * "{@link DynamoDBClient#LOCKTABLE_KEY}".
* @param provisioningData DynamoDB provisioning data
* @return The context.
* @throws IOException
@@ -192,10 +192,7 @@ public final class AwsContext {
}
public String getConfig() {
- StringBuilder uri = new StringBuilder("aws:");
- uri.append(directory.getConfig()).append(';');
- uri.append(dynamoDBClient.getConfig());
- return uri.toString();
+ return "aws:" + directory.getConfig() + ';' + dynamoDBClient.getConfig();
}
private static boolean isEmpty(String input) {
Modified: jackrabbit/oak/trunk/oak-segment-aws/src/main/java/org/apache/jackrabbit/oak/segment/aws/AwsPersistence.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-aws/src/main/java/org/apache/jackrabbit/oak/segment/aws/AwsPersistence.java?rev=1877737&r1=1877736&r2=1877737&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-segment-aws/src/main/java/org/apache/jackrabbit/oak/segment/aws/AwsPersistence.java (original)
+++ jackrabbit/oak/trunk/oak-segment-aws/src/main/java/org/apache/jackrabbit/oak/segment/aws/AwsPersistence.java Thu May 14 11:12:03 2020
@@ -51,7 +51,7 @@ public class AwsPersistence implements S
public boolean segmentFilesExist() {
try {
for (String prefix : awsContext.directory.listPrefixes()) {
- if (prefix.indexOf(".tar/") >= 0) {
+ if (prefix.contains(".tar/")) {
return true;
}
}
Modified: jackrabbit/oak/trunk/oak-segment-aws/src/main/java/org/apache/jackrabbit/oak/segment/aws/AwsRepositoryLock.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-aws/src/main/java/org/apache/jackrabbit/oak/segment/aws/AwsRepositoryLock.java?rev=1877737&r1=1877736&r2=1877737&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-segment-aws/src/main/java/org/apache/jackrabbit/oak/segment/aws/AwsRepositoryLock.java (original)
+++ jackrabbit/oak/trunk/oak-segment-aws/src/main/java/org/apache/jackrabbit/oak/segment/aws/AwsRepositoryLock.java Thu May 14 11:12:03 2020
@@ -34,7 +34,7 @@ public class AwsRepositoryLock implement
private static final int TIMEOUT_SEC = Integer.getInteger("oak.segment.aws.lock.timeout", 0);
- private static long INTERVAL = 60;
+ private static final long INTERVAL = 60;
private final AmazonDynamoDBLockClient lockClient;
private final String lockName;
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=1877737&r1=1877736&r2=1877737&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:12:03 2020
@@ -79,6 +79,7 @@ public class AwsSegmentArchiveWriter ext
}
private void writeIndex() throws IOException {
+ // 33 bytes = 2 x 8 bytes (long) + 4 x 4 bytes (int) + 1 x 1 byte (boolean)
Buffer buffer = Buffer.allocate(index.size() * 33);
for (RemoteSegmentArchiveEntry entry : index.values()) {
buffer.putLong(entry.getMsb());
Modified: jackrabbit/oak/trunk/oak-segment-aws/src/main/java/org/apache/jackrabbit/oak/segment/aws/DynamoDBClient.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-aws/src/main/java/org/apache/jackrabbit/oak/segment/aws/DynamoDBClient.java?rev=1877737&r1=1877736&r2=1877737&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-segment-aws/src/main/java/org/apache/jackrabbit/oak/segment/aws/DynamoDBClient.java (original)
+++ jackrabbit/oak/trunk/oak-segment-aws/src/main/java/org/apache/jackrabbit/oak/segment/aws/DynamoDBClient.java Thu May 14 11:12:03 2020
@@ -128,7 +128,7 @@ public final class DynamoDBClient {
//update the table if billing mode is different or provisioned capacity has changed
if (currentBillingMode != provisioningData.getBillingMode() ||
(provisioningData.getBillingMode() == BillingMode.PROVISIONED &&
- (throughputDescription.getReadCapacityUnits() != tableRcu || throughputDescription.getReadCapacityUnits() != tableWcu))) {
+ (!throughputDescription.getReadCapacityUnits().equals(tableRcu) || !throughputDescription.getReadCapacityUnits().equals(tableWcu)))) {
UpdateTableRequest tableUpdateRequest = new UpdateTableRequest()
.withTableName(table.getTableName())
@@ -194,6 +194,7 @@ public final class DynamoDBClient {
.with(TABLE_ATTR_CONTENT, line);
try {
try {
+ // TO DO: why is this needed here
Thread.sleep(1L);
} catch (InterruptedException e) {
}
Modified: jackrabbit/oak/trunk/oak-segment-aws/src/main/java/org/apache/jackrabbit/oak/segment/aws/tool/AwsSegmentCopy.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-aws/src/main/java/org/apache/jackrabbit/oak/segment/aws/tool/AwsSegmentCopy.java?rev=1877737&r1=1877736&r2=1877737&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-segment-aws/src/main/java/org/apache/jackrabbit/oak/segment/aws/tool/AwsSegmentCopy.java (original)
+++ jackrabbit/oak/trunk/oak-segment-aws/src/main/java/org/apache/jackrabbit/oak/segment/aws/tool/AwsSegmentCopy.java Thu May 14 11:12:03 2020
@@ -38,7 +38,7 @@ import org.apache.jackrabbit.oak.segment
*/
public class AwsSegmentCopy {
/**
- * Create a builder for the {@link SegmentCopy} command.
+ * Create a builder for the {@link AwsSegmentCopy} command.
*
* @return an instance of {@link Builder}.
*/
@@ -51,7 +51,7 @@ public class AwsSegmentCopy {
}
/**
- * Collect options for the {@link SegmentCopy} command.
+ * Collect options for the {@link AwsSegmentCopy} command.
*/
public static class Builder {
Modified: jackrabbit/oak/trunk/oak-segment-remote/src/main/java/org/apache/jackrabbit/oak/segment/remote/AbstractRemoteSegmentArchiveReader.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-remote/src/main/java/org/apache/jackrabbit/oak/segment/remote/AbstractRemoteSegmentArchiveReader.java?rev=1877737&r1=1877736&r2=1877737&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-segment-remote/src/main/java/org/apache/jackrabbit/oak/segment/remote/AbstractRemoteSegmentArchiveReader.java (original)
+++ jackrabbit/oak/trunk/oak-segment-remote/src/main/java/org/apache/jackrabbit/oak/segment/remote/AbstractRemoteSegmentArchiveReader.java Thu May 14 11:12:03 2020
@@ -92,7 +92,7 @@ public abstract class AbstractRemoteSegm
getGraph();
} catch (IOException ignore) { }
}
- return hasGraph;
+ return hasGraph != null ? hasGraph : false;
}
@Override
@@ -113,7 +113,6 @@ public abstract class AbstractRemoteSegm
/**
* Populates the archive index, summing up each entry's length.
* @return length, the total length of the archive
- * @throws IOException, if the archive entries are not accessible.
*/
protected abstract long computeArchiveIndexAndLength() throws IOException;
@@ -121,7 +120,6 @@ public abstract class AbstractRemoteSegm
* Reads the segment from the remote storage.
* @param segmentFileName, the name of the segment (msb + lsb) prefixed by its position in the archive
* @param buffer, the buffer to which to read
- * @throws IOException, if the segment could not be read
*/
protected abstract void doReadSegmentToBuffer(String segmentFileName, Buffer buffer) throws IOException;
@@ -129,7 +127,6 @@ public abstract class AbstractRemoteSegm
* Reads a data file inside the archive. This entry is not a segment. Its full name is given by archive name + extension.
* @param extension, extension of the file
* @return the buffer containing the data file bytes
- * @throws IOException if the data file could not be read
*/
protected abstract Buffer doReadDataFile(String extension) throws IOException;
Modified: jackrabbit/oak/trunk/oak-segment-remote/src/main/java/org/apache/jackrabbit/oak/segment/remote/AbstractRemoteSegmentArchiveWriter.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-remote/src/main/java/org/apache/jackrabbit/oak/segment/remote/AbstractRemoteSegmentArchiveWriter.java?rev=1877737&r1=1877736&r2=1877737&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-segment-remote/src/main/java/org/apache/jackrabbit/oak/segment/remote/AbstractRemoteSegmentArchiveWriter.java (original)
+++ jackrabbit/oak/trunk/oak-segment-remote/src/main/java/org/apache/jackrabbit/oak/segment/remote/AbstractRemoteSegmentArchiveWriter.java Thu May 14 11:12:03 2020
@@ -156,7 +156,6 @@ public abstract class AbstractRemoteSegm
* @param data, the actual bytes in the entry
* @param offset, the start offset in the data.
* @param size, the number of bytes to write.
- * @throws IOException, if the segment could not be written
*/
protected abstract void doWriteArchiveEntry(RemoteSegmentArchiveEntry indexEntry, byte[] data, int offset, int size) throws IOException;
@@ -164,7 +163,6 @@ public abstract class AbstractRemoteSegm
* Reads a segment from remote storage into a buffer.
* @param indexEntry, the archive index entry to read
* @return th buffer containing the segment bytes
- * @throws IOException, if the segment could not be read
*/
protected abstract Buffer doReadArchiveEntry(RemoteSegmentArchiveEntry indexEntry) throws IOException;
@@ -172,19 +170,16 @@ public abstract class AbstractRemoteSegm
* Writes a data file inside the archive. This entry is not a segment. Its full name is given by archive name + extension.
* @param data, bytes to write
* @param extension, the extension of the data file
- * @throws IOException, if the data file could not be written
*/
protected abstract void doWriteDataFile(byte[] data, String extension) throws IOException;
/**
* Hook for executing additional actions after the segment write queue is closed.
- * @throws IOException, for whatever exception occurs in the calling code.
*/
protected abstract void afterQueueClosed() throws IOException;
/**
* Hook for executing additional actions after the segment write queue is flushed.
- * @throws IOException, for whatever exception occurs in the calling code.
*/
protected abstract void afterQueueFlushed() throws IOException;
}
\ No newline at end of file
Modified: jackrabbit/oak/trunk/oak-segment-remote/src/main/java/org/apache/jackrabbit/oak/segment/remote/RemoteUtilities.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-segment-remote/src/main/java/org/apache/jackrabbit/oak/segment/remote/RemoteUtilities.java?rev=1877737&r1=1877736&r2=1877737&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-segment-remote/src/main/java/org/apache/jackrabbit/oak/segment/remote/RemoteUtilities.java (original)
+++ jackrabbit/oak/trunk/oak-segment-remote/src/main/java/org/apache/jackrabbit/oak/segment/remote/RemoteUtilities.java Thu May 14 11:12:03 2020
@@ -29,7 +29,7 @@ public final class RemoteUtilities {
public static final boolean OFF_HEAP = getBoolean("access.off.heap");
public static final String SEGMENT_FILE_NAME_PATTERN = "^([0-9a-f]{4})\\.([0-9a-f-]+)$";
- private static Pattern pattern = Pattern.compile(SEGMENT_FILE_NAME_PATTERN);
+ private static final Pattern PATTERN = Pattern.compile(SEGMENT_FILE_NAME_PATTERN);
private RemoteUtilities() {
@@ -44,7 +44,7 @@ public final class RemoteUtilities {
}
public static UUID getSegmentUUID(@NotNull String segmentFileName) {
- Matcher m = pattern.matcher(segmentFileName);
+ Matcher m = PATTERN.matcher(segmentFileName);
if (!m.matches()) {
return null;
}