diff options
author | Haley Connelly <haley.connelly@mongodb.com> | 2023-05-10 09:36:29 +0000 |
---|---|---|
committer | Evergreen Agent <no-reply@evergreen.mongodb.com> | 2023-05-10 11:23:37 +0000 |
commit | 42feb6abe211d0e071b794db8e7566ff8bdd4c42 (patch) | |
tree | 8438c260dded4587aca4e534c9f435ee0354f73f /src/mongo/db/pipeline/change_stream_expired_pre_image_remover_test.cpp | |
parent | 118b6f998ca8ceb1b6392071f49efa3649cbe4e1 (diff) | |
download | mongo-42feb6abe211d0e071b794db8e7566ff8bdd4c42.tar.gz |
SERVER-75005 Integrate pre-image collection removal with new truncate mechanism
Diffstat (limited to 'src/mongo/db/pipeline/change_stream_expired_pre_image_remover_test.cpp')
-rw-r--r-- | src/mongo/db/pipeline/change_stream_expired_pre_image_remover_test.cpp | 55 |
1 files changed, 28 insertions, 27 deletions
diff --git a/src/mongo/db/pipeline/change_stream_expired_pre_image_remover_test.cpp b/src/mongo/db/pipeline/change_stream_expired_pre_image_remover_test.cpp index fb8eeedb211..4ffb3fccf1e 100644 --- a/src/mongo/db/pipeline/change_stream_expired_pre_image_remover_test.cpp +++ b/src/mongo/db/pipeline/change_stream_expired_pre_image_remover_test.cpp @@ -32,6 +32,7 @@ #include "mongo/db/change_stream_options_manager.h" #include "mongo/db/catalog_raii.h" +#include "mongo/db/change_stream_pre_image_util.h" #include "mongo/db/change_stream_pre_images_collection_manager.h" #include "mongo/db/change_stream_pre_images_truncate_markers.h" #include "mongo/db/change_stream_serverless_helpers.h" @@ -86,7 +87,7 @@ TEST_F(ChangeStreamPreImageExpirationPolicyTest, getPreImageExpirationTimeWithVa auto currentTime = Date_t::now(); auto receivedExpireAfterSeconds = - change_stream_pre_image_helpers::getPreImageExpirationTime(opCtx.get(), currentTime); + change_stream_pre_image_util::getPreImageExpirationTime(opCtx.get(), currentTime); ASSERT(receivedExpireAfterSeconds); ASSERT_EQ(*receivedExpireAfterSeconds, currentTime - Seconds(expireAfterSeconds)); } @@ -96,7 +97,7 @@ TEST_F(ChangeStreamPreImageExpirationPolicyTest, getPreImageExpirationTimeWithUn auto currentTime = Date_t::now(); auto receivedExpireAfterSeconds = - change_stream_pre_image_helpers::getPreImageExpirationTime(opCtx.get(), currentTime); + change_stream_pre_image_util::getPreImageExpirationTime(opCtx.get(), currentTime); ASSERT_FALSE(receivedExpireAfterSeconds); } @@ -108,14 +109,14 @@ TEST_F(ChangeStreamPreImageExpirationPolicyTest, getPreImageExpirationTimeWithOf auto currentTime = Date_t::now(); auto receivedExpireAfterSeconds = - change_stream_pre_image_helpers::getPreImageExpirationTime(opCtx.get(), currentTime); + change_stream_pre_image_util::getPreImageExpirationTime(opCtx.get(), currentTime); ASSERT_FALSE(receivedExpireAfterSeconds); } } // namespace -class PreImagesTruncateMarkersTest : public ServiceContextMongoDTest { +class PreImagesTruncateMarkersPerCollectionTest : public ServiceContextMongoDTest { protected: - explicit PreImagesTruncateMarkersTest() : ServiceContextMongoDTest() { + explicit PreImagesTruncateMarkersPerCollectionTest() : ServiceContextMongoDTest() { ChangeStreamOptionsManager::create(getServiceContext()); } @@ -159,7 +160,7 @@ protected: RecordId generatePreImageRecordId(Timestamp timestamp) { const UUID uuid{UUID::gen()}; ChangeStreamPreImageId preImageId(uuid, timestamp, 0); - return change_stream_pre_image_helpers::toRecordId(preImageId); + return change_stream_pre_image_util::toRecordId(preImageId); } @@ -167,10 +168,10 @@ protected: const UUID uuid{UUID::gen()}; Timestamp timestamp{wallTime}; ChangeStreamPreImageId preImageId(uuid, timestamp, 0); - return change_stream_pre_image_helpers::toRecordId(preImageId); + return change_stream_pre_image_util::toRecordId(preImageId); } - bool hasExcessMarkers(OperationContext* opCtx, PreImagesTruncateMarkers& markers) { + bool hasExcessMarkers(OperationContext* opCtx, PreImagesTruncateMarkersPerCollection& markers) { return markers._hasExcessMarkers(opCtx); } @@ -213,7 +214,7 @@ protected: // When 'expireAfterSeconds' is on, defaults to comparing the 'lastRecord's wallTime with // the current time - 'expireAfterSeconds', which is already tested as a part of the // ChangeStreamPreImageExpirationPolicyTest. -TEST_F(PreImagesTruncateMarkersTest, hasExcessMarkersExpiredAfterSecondsOff) { +TEST_F(PreImagesTruncateMarkersPerCollectionTest, hasExcessMarkersExpiredAfterSecondsOff) { auto opCtxPtr = cc().makeOperationContext(); auto opCtx = opCtxPtr.get(); @@ -239,13 +240,13 @@ TEST_F(PreImagesTruncateMarkersTest, hasExcessMarkersExpiredAfterSecondsOff) { std::deque<CollectionTruncateMarkers::Marker> initialMarkers{ {numRecords, numBytes, lastRecordId, wallTime}}; - PreImagesTruncateMarkers markers( + PreImagesTruncateMarkersPerCollection markers( boost::none /* tenantId */, std::move(initialMarkers), 0, 0, 100); bool excessMarkers = hasExcessMarkers(opCtx, markers); ASSERT_TRUE(excessMarkers); } -TEST_F(PreImagesTruncateMarkersTest, hasNoExcessMarkersExpiredAfterSecondsOff) { +TEST_F(PreImagesTruncateMarkersPerCollectionTest, hasNoExcessMarkersExpiredAfterSecondsOff) { auto opCtxPtr = cc().makeOperationContext(); auto opCtx = opCtxPtr.get(); @@ -271,13 +272,13 @@ TEST_F(PreImagesTruncateMarkersTest, hasNoExcessMarkersExpiredAfterSecondsOff) { std::deque<CollectionTruncateMarkers::Marker> initialMarkers{ {numRecords, numBytes, lastRecordId, wallTime}}; - PreImagesTruncateMarkers markers( + PreImagesTruncateMarkersPerCollection markers( boost::none /* tenantId */, std::move(initialMarkers), 0, 0, 100); bool excessMarkers = hasExcessMarkers(opCtx, markers); ASSERT_FALSE(excessMarkers); } -TEST_F(PreImagesTruncateMarkersTest, serverlessHasNoExcessMarkers) { +TEST_F(PreImagesTruncateMarkersPerCollectionTest, serverlessHasNoExcessMarkers) { int64_t expireAfterSeconds = 1000; auto tenantId = change_stream_serverless_helpers::getTenantIdForTesting(); serverlessSetExpireAfterSeconds(tenantId, expireAfterSeconds); @@ -291,12 +292,12 @@ TEST_F(PreImagesTruncateMarkersTest, serverlessHasNoExcessMarkers) { std::deque<CollectionTruncateMarkers::Marker> initialMarkers{ {numRecords, numBytes, lastRecordId, wallTime}}; - PreImagesTruncateMarkers markers(tenantId, std::move(initialMarkers), 0, 0, 100); + PreImagesTruncateMarkersPerCollection markers(tenantId, std::move(initialMarkers), 0, 0, 100); bool excessMarkers = hasExcessMarkers(opCtx, markers); ASSERT_FALSE(excessMarkers); } -TEST_F(PreImagesTruncateMarkersTest, serverlessHasExcessMarkers) { +TEST_F(PreImagesTruncateMarkersPerCollectionTest, serverlessHasExcessMarkers) { int64_t expireAfterSeconds = 1; auto tenantId = change_stream_serverless_helpers::getTenantIdForTesting(); serverlessSetExpireAfterSeconds(tenantId, expireAfterSeconds); @@ -310,21 +311,21 @@ TEST_F(PreImagesTruncateMarkersTest, serverlessHasExcessMarkers) { std::deque<CollectionTruncateMarkers::Marker> initialMarkers{ {numRecords, numBytes, lastRecordId, wallTime}}; - PreImagesTruncateMarkers markers(tenantId, std::move(initialMarkers), 0, 0, 100); + PreImagesTruncateMarkersPerCollection markers(tenantId, std::move(initialMarkers), 0, 0, 100); bool excessMarkers = hasExcessMarkers(opCtx, markers); ASSERT_TRUE(excessMarkers); } -TEST_F(PreImagesTruncateMarkersTest, RecordIdToPreImageTimstampRetrieval) { +TEST_F(PreImagesTruncateMarkersPerCollectionTest, RecordIdToPreImageTimstampRetrieval) { // Basic case. { Timestamp ts0(Date_t::now()); int64_t applyOpsIndex = 0; ChangeStreamPreImageId preImageId(UUID::gen(), ts0, applyOpsIndex); - auto preImageRecordId = change_stream_pre_image_helpers::toRecordId(preImageId); + auto preImageRecordId = change_stream_pre_image_util::toRecordId(preImageId); - auto ts1 = change_stream_pre_image_helpers::getPreImageTimestamp(preImageRecordId); + auto ts1 = change_stream_pre_image_util::getPreImageTimestamp(preImageRecordId); ASSERT_EQ(ts0, ts1); } @@ -334,9 +335,9 @@ TEST_F(PreImagesTruncateMarkersTest, RecordIdToPreImageTimstampRetrieval) { int64_t applyOpsIndex = 0; ChangeStreamPreImageId preImageId(UUID::gen(), ts0, applyOpsIndex); - auto preImageRecordId = change_stream_pre_image_helpers::toRecordId(preImageId); + auto preImageRecordId = change_stream_pre_image_util::toRecordId(preImageId); - auto ts1 = change_stream_pre_image_helpers::getPreImageTimestamp(preImageRecordId); + auto ts1 = change_stream_pre_image_util::getPreImageTimestamp(preImageRecordId); ASSERT_EQ(ts0, ts1); } @@ -346,9 +347,9 @@ TEST_F(PreImagesTruncateMarkersTest, RecordIdToPreImageTimstampRetrieval) { int64_t applyOpsIndex = 0; ChangeStreamPreImageId preImageId(UUID::gen(), ts0, applyOpsIndex); - auto preImageRecordId = change_stream_pre_image_helpers::toRecordId(preImageId); + auto preImageRecordId = change_stream_pre_image_util::toRecordId(preImageId); - auto ts1 = change_stream_pre_image_helpers::getPreImageTimestamp(preImageRecordId); + auto ts1 = change_stream_pre_image_util::getPreImageTimestamp(preImageRecordId); ASSERT_EQ(ts0, ts1); } @@ -363,9 +364,9 @@ TEST_F(PreImagesTruncateMarkersTest, RecordIdToPreImageTimstampRetrieval) { int64_t applyOpsIndex = std::numeric_limits<int64_t>::max(); ChangeStreamPreImageId preImageId(UUID::gen(), ts0, applyOpsIndex); - auto preImageRecordId = change_stream_pre_image_helpers::toRecordId(preImageId); + auto preImageRecordId = change_stream_pre_image_util::toRecordId(preImageId); - auto ts1 = change_stream_pre_image_helpers::getPreImageTimestamp(preImageRecordId); + auto ts1 = change_stream_pre_image_util::getPreImageTimestamp(preImageRecordId); ASSERT_EQ(ts0, ts1); } @@ -375,9 +376,9 @@ TEST_F(PreImagesTruncateMarkersTest, RecordIdToPreImageTimstampRetrieval) { int64_t applyOpsIndex = std::numeric_limits<int64_t>::max(); ChangeStreamPreImageId preImageId(UUID::gen(), ts0, applyOpsIndex); - auto preImageRecordId = change_stream_pre_image_helpers::toRecordId(preImageId); + auto preImageRecordId = change_stream_pre_image_util::toRecordId(preImageId); - auto ts1 = change_stream_pre_image_helpers::getPreImageTimestamp(preImageRecordId); + auto ts1 = change_stream_pre_image_util::getPreImageTimestamp(preImageRecordId); ASSERT_EQ(ts0, ts1); } } |