Skip to content

Commit 054d713

Browse files
committed
Revert "OAK-11299: Missing Segments With Oak Run Segment Copy (#1892)"
This reverts commit 8785c85.
1 parent 02891d3 commit 054d713

File tree

6 files changed

+15
-61
lines changed

6 files changed

+15
-61
lines changed

oak-segment-aws/src/main/java/org/apache/jackrabbit/oak/segment/aws/tool/AwsSegmentStoreMigrator.java

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -32,14 +32,12 @@
3232
import java.util.concurrent.Executors;
3333
import java.util.concurrent.Future;
3434
import java.util.concurrent.TimeUnit;
35-
import java.util.stream.Collectors;
3635

3736
import org.apache.jackrabbit.oak.commons.Buffer;
3837
import org.apache.jackrabbit.oak.segment.aws.AwsContext;
3938
import org.apache.jackrabbit.oak.segment.aws.AwsPersistence;
4039
import org.apache.jackrabbit.oak.segment.aws.tool.AwsToolUtils.SegmentStoreType;
4140
import org.apache.jackrabbit.oak.segment.file.tar.TarPersistence;
42-
import org.apache.jackrabbit.oak.segment.remote.RemoteUtilities;
4341
import org.apache.jackrabbit.oak.segment.spi.RepositoryNotReachableException;
4442
import org.apache.jackrabbit.oak.segment.spi.monitor.FileStoreMonitorAdapter;
4543
import org.apache.jackrabbit.oak.segment.spi.monitor.IOMonitorAdapter;
@@ -157,12 +155,9 @@ private void migrateArchives() throws IOException, ExecutionException, Interrupt
157155
List<String> targetArchives = targetManager.listArchives();
158156

159157
if (appendMode && !targetArchives.isEmpty()) {
160-
// sort archives by index
161-
// last archive could have been updated since last copy and may need to be recopied
162-
targetArchives = targetArchives.stream()
163-
.sorted(RemoteUtilities.ARCHIVE_INDEX_COMPARATOR)
164-
.limit(targetArchives.size() - 1)
165-
.collect(Collectors.toList());
158+
//last archive can be updated since last copy and needs to be recopied
159+
String lastArchive = targetArchives.get(targetArchives.size() - 1);
160+
targetArchives.remove(lastArchive);
166161
}
167162

168163
for (String archiveName : sourceManager.listArchives()) {

oak-segment-azure/src/main/java/org/apache/jackrabbit/oak/segment/azure/tool/SegmentCopy.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -387,7 +387,7 @@ public int run() {
387387

388388
} catch (Exception e) {
389389
watch.stop();
390-
printMessage(errWriter, "A problem occurred while copying archives from {0} to {1} ", source,
390+
printMessage(errWriter, "A problem occured while copying archives from {0} to {1} ", source,
391391
destination);
392392
e.printStackTrace(errWriter);
393393
return 1;

oak-segment-azure/src/main/java/org/apache/jackrabbit/oak/segment/azure/tool/SegmentStoreMigrator.java

Lines changed: 3 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@
2525
import org.apache.jackrabbit.oak.segment.azure.tool.ToolUtils.SegmentStoreType;
2626
import org.apache.jackrabbit.oak.segment.azure.util.Retrier;
2727
import org.apache.jackrabbit.oak.segment.file.tar.TarPersistence;
28-
import org.apache.jackrabbit.oak.segment.remote.RemoteUtilities;
2928
import org.apache.jackrabbit.oak.segment.spi.monitor.FileStoreMonitorAdapter;
3029
import org.apache.jackrabbit.oak.segment.spi.monitor.IOMonitorAdapter;
3130
import org.apache.jackrabbit.oak.segment.spi.monitor.RemoteStoreMonitorAdapter;
@@ -54,7 +53,6 @@
5453
import java.util.concurrent.Executors;
5554
import java.util.concurrent.Future;
5655
import java.util.concurrent.TimeUnit;
57-
import java.util.stream.Collectors;
5856

5957
public class SegmentStoreMigrator implements Closeable {
6058

@@ -164,12 +162,9 @@ private void migrateArchives() throws IOException, ExecutionException, Interrupt
164162
List<String> targetArchives = targetManager.listArchives();
165163

166164
if (appendMode && !targetArchives.isEmpty()) {
167-
// sort archives by index
168-
// last archive could have been updated since last copy and may need to be recopied
169-
targetArchives = targetArchives.stream()
170-
.sorted(RemoteUtilities.ARCHIVE_INDEX_COMPARATOR)
171-
.limit(targetArchives.size() - 1)
172-
.collect(Collectors.toList());
165+
//last archive can be updated since last copy and needs to be recopied
166+
String lastArchive = targetArchives.get(targetArchives.size() - 1);
167+
targetArchives.remove(lastArchive);
173168
}
174169

175170
for (String archiveName : sourceManager.listArchives()) {

oak-segment-remote/src/main/java/org/apache/jackrabbit/oak/segment/remote/RemoteUtilities.java

Lines changed: 0 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@
2020

2121
import org.jetbrains.annotations.NotNull;
2222

23-
import java.util.Comparator;
2423
import java.util.UUID;
2524
import java.util.regex.Matcher;
2625
import java.util.regex.Pattern;
@@ -29,7 +28,6 @@ public final class RemoteUtilities {
2928
public static final boolean OFF_HEAP = getBoolean("access.off.heap");
3029
public static final String SEGMENT_FILE_NAME_PATTERN = "^([0-9a-f]{4})\\.([0-9a-f-]+)$";
3130
public static final int MAX_ENTRY_COUNT = 0x10000;
32-
public static final Comparator<String> ARCHIVE_INDEX_COMPARATOR = new ArchiveIndexComparator();
3331

3432
private static final Pattern PATTERN = Pattern.compile(SEGMENT_FILE_NAME_PATTERN);
3533

@@ -52,17 +50,4 @@ public static UUID getSegmentUUID(@NotNull String segmentFileName) {
5250
}
5351
return UUID.fromString(m.group(2));
5452
}
55-
56-
private static class ArchiveIndexComparator implements Comparator<String> {
57-
final static Pattern indexPattern = Pattern.compile("[0-9]+");
58-
59-
@Override
60-
public int compare(String archive1, String archive2) {
61-
Matcher matcher1 = indexPattern.matcher(archive1);
62-
int index1 = matcher1.find() ? Integer.parseInt(matcher1.group()) : 0;
63-
Matcher matcher2 = indexPattern.matcher(archive2);
64-
int index2 = matcher2.find() ? Integer.parseInt(matcher2.group()) : 0;
65-
return index1 - index2;
66-
}
67-
}
6853
}

oak-segment-remote/src/main/java/org/apache/jackrabbit/oak/segment/remote/package-info.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
* limitations under the License.
1616
*/
1717
@Internal(since = "1.0.0")
18-
@Version("1.4.0")
18+
@Version("1.3.0")
1919
package org.apache.jackrabbit.oak.segment.remote;
2020

2121
import org.apache.jackrabbit.oak.commons.annotations.Internal;

oak-segment-remote/src/test/java/org/apache/jackrabbit/oak/segment/remote/RemoteUtilitiesTest.java

Lines changed: 7 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -18,10 +18,6 @@
1818

1919
import org.junit.Test;
2020

21-
import java.util.ArrayList;
22-
import java.util.Arrays;
23-
import java.util.Collections;
24-
import java.util.List;
2521
import java.util.UUID;
2622

2723
import static org.junit.Assert.assertEquals;
@@ -39,31 +35,14 @@ public void testValidEntryIndex() {
3935
assertEquals(uuid, RemoteUtilities.getSegmentUUID(name));
4036
}
4137

42-
@Test
43-
public void testInvalidEntryIndex() {
44-
UUID uuid = UUID.randomUUID();
45-
String name = RemoteUtilities.getSegmentFileName(
38+
@Test
39+
public void testInvalidEntryIndex() {
40+
UUID uuid = UUID.randomUUID();
41+
String name = RemoteUtilities.getSegmentFileName(
4642
RemoteUtilities.MAX_ENTRY_COUNT,
4743
uuid.getMostSignificantBits(),
4844
uuid.getLeastSignificantBits()
49-
);
50-
assertNotEquals(uuid, RemoteUtilities.getSegmentUUID(name));
51-
}
52-
53-
private void expectArchiveSortOrder(List<String> expectedOrder) {
54-
List<String> archives = new ArrayList<>(expectedOrder);
55-
Collections.shuffle(archives);
56-
archives.sort(RemoteUtilities.ARCHIVE_INDEX_COMPARATOR);
57-
assertEquals(expectedOrder, archives);
58-
}
59-
60-
@Test
61-
public void testSortArchives() {
62-
expectArchiveSortOrder(Arrays.asList("data00001a.tar", "data00002a.tar", "data00003a.tar"));
63-
}
64-
65-
@Test
66-
public void testSortArchivesLargeIndices() {
67-
expectArchiveSortOrder(Arrays.asList("data00003a.tar", "data20000a.tar", "data100000a.tar"));
68-
}
45+
);
46+
assertNotEquals(uuid, RemoteUtilities.getSegmentUUID(name));
47+
}
6948
}

0 commit comments

Comments
 (0)