summaryrefslogtreecommitdiff
path: root/src/mongo/db/pipeline/change_stream_expired_pre_image_remover_test.cpp
diff options
context:
space:
mode:
authorHaley Connelly <haley.connelly@mongodb.com>2023-05-10 09:36:29 +0000
committerEvergreen Agent <no-reply@evergreen.mongodb.com>2023-05-10 11:23:37 +0000
commit42feb6abe211d0e071b794db8e7566ff8bdd4c42 (patch)
tree8438c260dded4587aca4e534c9f435ee0354f73f /src/mongo/db/pipeline/change_stream_expired_pre_image_remover_test.cpp
parent118b6f998ca8ceb1b6392071f49efa3649cbe4e1 (diff)
downloadmongo-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.cpp55
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);
}
}