Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
54 commits
Select commit Hold shift + click to select a range
ddfc4b7
HDDS-7935. [Snapshot] Custom SnapshotCache implementation to replace …
smengcl Apr 14, 2023
3295b5f
Merge remote-tracking branch 'asf/master'
smengcl May 4, 2023
817eeab
Call `cleanup()` at the end of `get()`.
smengcl May 4, 2023
57f3793
Add UTs; implement `invalidate()`; fix `cleanup()` and `invalidateAll…
smengcl May 5, 2023
e86f1db
`RefCount` -> `ReferenceCounted`.
smengcl May 5, 2023
8b57f1f
Wrap `OmSnapshot` in `ReferenceCounted` for `dbMap` value; Next: Expo…
smengcl May 5, 2023
7fc5f97
Adjust every single usage of `OmSnapshot` with `ReferenceCounted<IOmM…
smengcl May 5, 2023
cc91744
Merge remote-tracking branch 'asf/master' into HDDS-7935-approach-1
smengcl May 25, 2023
cf76403
Remove `throws IOException` from `SnapshotCache#invalidateAll()` sign…
smengcl May 25, 2023
c46c2ff
Disable ref counting for active DB.
smengcl May 26, 2023
eed2451
Merge branch 'master' into HDDS-7935-approach-1
smengcl Jun 6, 2023
820a61b
Fix compilation failure after merge master
smengcl Jun 6, 2023
76047af
Fix checkstyle
smengcl Jun 6, 2023
c65c374
Fix basic (unit)
smengcl Jun 6, 2023
b71ca32
Move `checkForSnapshot()` call from Request to Response to ensure the…
smengcl Jun 6, 2023
284c4d8
Do the same to OMKeyPurgeRequest/Response.
smengcl Jun 6, 2023
3ea0ca5
Merge remote-tracking branch 'asf/master' into HDDS-7935-approach-1
smengcl Jun 6, 2023
c122390
Resolve merge conflict with HDDS-8717.
smengcl Jun 6, 2023
da0b7da
ReferenceCounted<T extends Closeable>
smengcl Jun 7, 2023
56652d4
Revert "ReferenceCounted<T extends Closeable>"
smengcl Jun 8, 2023
a9d6e94
Implement SnapshotCache callback to be used by ReferenceCounted.
smengcl Jun 8, 2023
75eaf7b
Fix NPE.
smengcl Jun 9, 2023
98eff38
Add a test case using try-with-resources.
smengcl Jun 9, 2023
5f63ddc
Merge remote-tracking branch 'asf/master' into HDDS-7935-approach-1
smengcl Jun 16, 2023
44c8b03
Address comment; fix new cache usages in TestSnapshotDiffManager.
smengcl Jun 16, 2023
3ffe7ac
Address comments.
smengcl Jun 16, 2023
c2746dc
`ReferenceCounted<T, U extends ReferenceCountedCallback>`
smengcl Jun 16, 2023
d4dcbb7
Address comments, batch 3.
smengcl Jun 16, 2023
5639cd2
`synchronized (refCount)`. Address https://github.com/apache/ozone/pu…
smengcl Jun 16, 2023
73a39b6
Wrap `cleanup()` in `synchronized (pendingEvictionList)`.
smengcl Jun 16, 2023
cd7b376
Make `pendingEvictionList` thread-safe.
smengcl Jun 16, 2023
5457b3b
Implement `isConsistent()` helper method.
smengcl Jun 16, 2023
555ebc4
findbugs
smengcl Jun 16, 2023
82c524f
Use dedicated `Object refCountLock` to sync on.
smengcl Jun 16, 2023
f87bd61
Merge remote-tracking branch 'asf/master' into HDDS-7935-approach-1
smengcl Jun 21, 2023
7a9c18d
Adapt new checkForSnapshot() usage to RC.
smengcl Jun 21, 2023
8c99d7b
Remove old comment.
smengcl Jun 21, 2023
1e46f9d
Merge remote-tracking branch 'asf/master' into HDDS-7935-approach-1
smengcl Jun 21, 2023
8e7c691
Adapt new snapshotCache usage in tests.
smengcl Jun 21, 2023
c13c383
Add comment TODO on removalListener.
smengcl Jun 21, 2023
03d3be7
Merge remote-tracking branch 'asf/master' into HDDS-7935-approach-1
smengcl Jun 22, 2023
5da12ac
Fix potential race condition when the ref count is not increased soon…
smengcl Jun 22, 2023
ed4b209
Merge `OmMetadataManagerImpl` constructors back.
smengcl Jun 22, 2023
e3f4395
`OMDirectoriesPurgeResponseWithFSO` should take `SnapshotInfo`.
smengcl Jun 22, 2023
0779bab
Misc
smengcl Jun 22, 2023
f1bb482
Merge remote-tracking branch 'asf/master' into HDDS-7935-approach-1
smengcl Jun 23, 2023
d17b6af
Adapt new usages of `checkForSnapshot` in KDS and TestKDS.
smengcl Jun 23, 2023
25c9aa7
Remove unused imports.
smengcl Jun 23, 2023
022e4c2
findbugs
smengcl Jun 23, 2023
4fd0bde
Sync dbMap in `release()` when decrementing ref count.
smengcl Jun 24, 2023
796e7f9
Fix lambda return value in `dbMap.compute()` in `release()`.
smengcl Jun 28, 2023
ed29fbd
Merge remote-tracking branch 'asf/master' into HDDS-7935-approach-1
smengcl Jun 28, 2023
9854942
Revert compute() lambda return value to `v`; move `cleanup()` out of …
smengcl Jun 28, 2023
dd8182c
Merge remote-tracking branch 'asf/master' into HDDS-7935-approach-1
smengcl Jun 28, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@
import org.apache.hadoop.ozone.client.BucketArgs;
import org.apache.hadoop.ozone.client.OzoneBucket;
import org.apache.hadoop.ozone.client.OzoneClient;
import org.apache.hadoop.ozone.om.IOmMetadataReader;
import org.apache.hadoop.ozone.om.OMConfigKeys;
import org.apache.hadoop.ozone.om.OMMetadataManager;
import org.apache.hadoop.ozone.om.OmMetadataManagerImpl;
Expand All @@ -43,6 +44,8 @@
import org.apache.hadoop.ozone.om.helpers.RepeatedOmKeyInfo;
import org.apache.hadoop.ozone.om.helpers.SnapshotInfo;
import org.apache.hadoop.ozone.om.service.SnapshotDeletingService;
import org.apache.hadoop.ozone.om.snapshot.ReferenceCounted;
import org.apache.hadoop.ozone.om.snapshot.SnapshotCache;
import org.apache.ozone.test.GenericTestUtils;
import org.junit.jupiter.api.AfterEach;
import org.junit.jupiter.api.BeforeEach;
Expand Down Expand Up @@ -125,7 +128,7 @@ public void teardown() {

@Test
public void testSnapshotSplitAndMove() throws Exception {
SnapshotDeletingService snapshotDeletingService = (SnapshotDeletingService)
SnapshotDeletingService snapshotDeletingService =
om.getKeyManager().getSnapshotDeletingService();
Table<String, SnapshotInfo> snapshotInfoTable =
om.getMetadataManager().getSnapshotInfoTable();
Expand All @@ -138,7 +141,7 @@ public void testSnapshotSplitAndMove() throws Exception {

OmSnapshot bucket1snap3 = (OmSnapshot) om.getOmSnapshotManager()
.checkForSnapshot(VOLUME_NAME, BUCKET_NAME_ONE,
getSnapshotPrefix("bucket1snap3"), true);
getSnapshotPrefix("bucket1snap3"), true).get();

// Check bucket1key1 added to next non deleted snapshot db.
List<? extends Table.KeyValue<String, RepeatedOmKeyInfo>> omKeyInfos =
Expand Down Expand Up @@ -359,7 +362,7 @@ public void testSnapshotWithFSO() throws Exception {
verifySnapshotChain(deletedSnap, "/vol1/bucket2/snap3");
OmSnapshot snap3 = (OmSnapshot) om.getOmSnapshotManager()
.checkForSnapshot(VOLUME_NAME, BUCKET_NAME_TWO,
getSnapshotPrefix("snap3"), true);
getSnapshotPrefix("snap3"), true).get();

Table<String, OmKeyInfo> snapDeletedDirTable =
snap3.getMetadataManager().getDeletedDirTable();
Expand All @@ -386,9 +389,10 @@ public void testSnapshotWithFSO() throws Exception {
assertTableRowCount(renamedTable, 4);
assertTableRowCount(deletedDirTable, 3);

OmSnapshot snap1 = (OmSnapshot) om.getOmSnapshotManager()
.checkForSnapshot(VOLUME_NAME, BUCKET_NAME_TWO,
getSnapshotPrefix("snap1"), true);
ReferenceCounted<IOmMetadataReader, SnapshotCache> rcSnap1 =
om.getOmSnapshotManager().checkForSnapshot(
VOLUME_NAME, BUCKET_NAME_TWO, getSnapshotPrefix("snap1"), true);
OmSnapshot snap1 = (OmSnapshot) rcSnap1.get();
Table<String, OmKeyInfo> snap1KeyTable =
snap1.getMetadataManager().getFileTable();
try (TableIterator<String, ? extends Table.KeyValue<String,
Expand Down Expand Up @@ -420,6 +424,9 @@ public void testSnapshotWithFSO() throws Exception {
}
}
assertTableRowCount(deletedTable, 15);

snap1 = null;
rcSnap1.close();
}

/*
Expand Down Expand Up @@ -563,4 +570,3 @@ private boolean assertTableRowCount(int expectedCount,
return count == expectedCount;
}
}

Original file line number Diff line number Diff line change
Expand Up @@ -345,7 +345,8 @@ public void testKeyOps() throws Exception {
any(), any(), any(), any(), anyInt());
Mockito.doThrow(exception).when(mockKm).listTrash(
any(), any(), any(), any(), anyInt());
OmMetadataReader omMetadataReader = ozoneManager.getOmMetadataReader();
OmMetadataReader omMetadataReader =
(OmMetadataReader) ozoneManager.getOmMetadataReader().get();
HddsWhiteboxTestUtils.setInternalState(
ozoneManager, "keyManager", mockKm);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -259,7 +259,7 @@ private static void preFinalizationChecks() throws Exception {
private static void finalizeOMUpgrade() throws IOException {

// Trigger OM upgrade finalization. Ref: FinalizeUpgradeSubCommand#call
final OzoneManagerProtocol omclient =
final OzoneManagerProtocol omclient =
client.getObjectStore()
.getClientProxy().getOzoneManagerClient();
final String upgradeClientID = "Test-Upgrade-Client-" + UUID.randomUUID();
Expand Down Expand Up @@ -1200,8 +1200,8 @@ private void createFileKey(OzoneBucket bucket, String key)
public void testSnapshotOpensWithDisabledAutoCompaction() throws Exception {
String snapPrefix = createSnapshot(volumeName, bucketName);
RDBStore snapshotDBStore = (RDBStore)
((OmSnapshot)cluster.getOzoneManager().getOmSnapshotManager()
.checkForSnapshot(volumeName, bucketName, snapPrefix, false))
((OmSnapshot) cluster.getOzoneManager().getOmSnapshotManager()
.checkForSnapshot(volumeName, bucketName, snapPrefix, false).get())
.getMetadataManager().getStore();

for (String table : snapshotDBStore.getTableNames().values()) {
Expand Down Expand Up @@ -1325,7 +1325,7 @@ public void testCompactionDagDisableForSnapshotMetadata() throws Exception {

OmSnapshot omSnapshot = (OmSnapshot) cluster.getOzoneManager()
.getOmSnapshotManager()
.checkForSnapshot(volumeName, bucketName, snapshotName, false);
.checkForSnapshot(volumeName, bucketName, snapshotName, false).get();

RDBStore snapshotDbStore =
(RDBStore) omSnapshot.getMetadataManager().getStore();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -56,7 +56,8 @@ public void testRequestWithNonExistentBucket()
ozoneManager = Mockito.mock(OzoneManager.class);
ozoneConfiguration.set(OMConfigKeys.OZONE_OM_DB_DIRS,
folder.newFolder().getAbsolutePath());
omMetadataManager = new OmMetadataManagerImpl(ozoneConfiguration);
omMetadataManager = new OmMetadataManagerImpl(ozoneConfiguration,
ozoneManager);
when(ozoneManager.getMetadataManager()).thenReturn(omMetadataManager);

String volumeName = "vol1";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -196,7 +196,7 @@ public void setUp() throws IOException {
folder.newFolder().getAbsolutePath());
// No need to conf.set(OzoneConfigKeys.OZONE_ADMINISTRATORS, ...) here
// as we did the trick earlier with mockito.
omMetadataManager = new OmMetadataManagerImpl(conf);
omMetadataManager = new OmMetadataManagerImpl(conf, ozoneManager);
when(ozoneManager.getMetrics()).thenReturn(omMetrics);
when(ozoneManager.getMetadataManager()).thenReturn(omMetadataManager);
when(ozoneManager.isRatisEnabled()).thenReturn(true);
Expand Down
Loading