Skip to content

Commit 16b6d5d

Browse files
remove set
1 parent 96a2811 commit 16b6d5d

File tree

3 files changed

+24
-36
lines changed

3 files changed

+24
-36
lines changed

tests/integration/bulk_upsert_simple_it/bulk_upsert.cpp

Lines changed: 16 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -23,10 +23,6 @@ static std::string JoinPath(const std::string& basePath, const std::string& path
2323
return prefixPathSplit;
2424
}
2525

26-
bool TLogMessage::TPrimaryKeyLogMessage::operator<(const TLogMessage::TPrimaryKeyLogMessage& o) const {
27-
return App < o.App || App == o.App && Host < o.Host || App == o.App && Host == o.Host && Timestamp < o.Timestamp;
28-
}
29-
3026
TRunArgs GetRunArgs() {
3127

3228
std::string database = std::getenv("YDB_DATABASE");
@@ -41,18 +37,19 @@ TRunArgs GetRunArgs() {
4137
return {driver, JoinPath(database, "bulk")};
4238
}
4339

44-
TStatus CreateLogTable(TTableClient& client, const std::string& table) {
40+
TStatus CreateTable(TTableClient& client, const std::string& table) {
4541
std::cerr << "Create table " << table << "\n";
4642

4743
TRetryOperationSettings settings;
4844
auto status = client.RetryOperationSync([&table](TSession session) {
4945
auto tableDesc = TTableBuilder()
46+
.AddNonNullableColumn("pk", EPrimitiveType::Uint64)
5047
.AddNullableColumn("App", EPrimitiveType::Utf8)
5148
.AddNullableColumn("Timestamp", EPrimitiveType::Timestamp)
5249
.AddNullableColumn("Host", EPrimitiveType::Utf8)
5350
.AddNullableColumn("HttpCode", EPrimitiveType::Uint32)
5451
.AddNullableColumn("Message", EPrimitiveType::Utf8)
55-
.SetPrimaryKeyColumns({"App", "Host", "Timestamp"})
52+
.SetPrimaryKeyColumns({"pk"})
5653
.Build();
5754

5855
return session.CreateTable(table, std::move(tableDesc)).GetValueSync();
@@ -61,27 +58,25 @@ TStatus CreateLogTable(TTableClient& client, const std::string& table) {
6158
return status;
6259
}
6360

64-
TStatistic GetLogBatch(uint64_t logOffset, std::vector<TLogMessage>& logBatch, std::set<TLogMessage::TPrimaryKeyLogMessage>& setMessage) {
61+
TStatistic GetLogBatch(uint64_t logOffset, std::vector<TLogMessage>& logBatch, uint32_t lastNumber) {
6562
logBatch.clear();
6663
uint32_t correctSumApp = 0;
6764
uint32_t correctSumHost = 0;
6865
uint32_t correctRowCount = 0;
6966

7067
for (size_t i = 0; i < BATCH_SIZE; ++i) {
71-
TLogMessage message;
72-
message.pk.App = "App_" + std::to_string(logOffset % 10);
73-
message.pk.Host = "192.168.0." + std::to_string(logOffset % 11);
74-
message.pk.Timestamp = TInstant::Now() + TDuration::MilliSeconds(i % 1000);
68+
TLogMessage message;
69+
message.pk = correctRowCount + lastNumber;
70+
message.App = "App_" + std::to_string(logOffset % 10);
71+
message.Host = "192.168.0." + std::to_string(logOffset % 11);
72+
message.Timestamp = TInstant::Now() + TDuration::MilliSeconds(i % 1000);
7573
message.HttpCode = 200;
7674
message.Message = i % 2 ? "GET / HTTP/1.1" : "GET /images/logo.png HTTP/1.1";
7775
logBatch.emplace_back(message);
7876

79-
if (!setMessage.contains(message.pk)) {
80-
correctSumApp += logOffset % 10;
81-
correctSumHost += logOffset % 11;
82-
++correctRowCount;
83-
setMessage.insert(message.pk);
84-
}
77+
correctSumApp += logOffset % 10;
78+
correctSumHost += logOffset % 11;
79+
++correctRowCount;
8580

8681
}
8782
return {correctSumApp, correctSumHost, correctRowCount};
@@ -94,9 +89,10 @@ TStatus WriteLogBatch(TTableClient& tableClient, const std::string& table, const
9489
for (const auto& message : logBatch) {
9590
rows.AddListItem()
9691
.BeginStruct()
97-
.AddMember("App").Utf8(message.pk.App)
98-
.AddMember("Host").Utf8(message.pk.Host)
99-
.AddMember("Timestamp").Timestamp(message.pk.Timestamp)
92+
.AddMember("pk").Uint64(message.pk)
93+
.AddMember("App").Utf8(message.App)
94+
.AddMember("Host").Utf8(message.Host)
95+
.AddMember("Timestamp").Timestamp(message.Timestamp)
10096
.AddMember("HttpCode").Uint32(message.HttpCode)
10197
.AddMember("Message").Utf8(message.Message)
10298
.EndStruct();

tests/integration/bulk_upsert_simple_it/bulk_upsert.h

Lines changed: 6 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -12,17 +12,12 @@ struct TRunArgs {
1212
};
1313

1414
struct TLogMessage {
15-
struct TPrimaryKeyLogMessage {
16-
std::string App;
17-
std::string Host;
18-
TInstant Timestamp;
19-
bool operator<(const TPrimaryKeyLogMessage& o) const;
20-
};
21-
22-
TPrimaryKeyLogMessage pk;
15+
uint64_t pk;
16+
std::string App;
17+
std::string Host;
18+
TInstant Timestamp;
2319
uint32_t HttpCode;
2420
std::string Message;
25-
bool operator<(const TLogMessage& o) const {return pk < o.pk;};
2621
};
2722

2823
class TYdbErrorException : public yexception {
@@ -40,8 +35,8 @@ struct TStatistic {
4035
};
4136

4237
TRunArgs GetRunArgs();
43-
TStatus CreateLogTable(TTableClient& client, const std::string& table);
44-
TStatistic GetLogBatch(uint64_t logOffset, std::vector<TLogMessage>& logBatch, std::set<TLogMessage::TPrimaryKeyLogMessage>& setMessage);
38+
TStatus CreateTable(TTableClient& client, const std::string& table);
39+
TStatistic GetLogBatch(uint64_t logOffset, std::vector<TLogMessage>& logBatch, uint32_t lastNumber);
4540
TStatus WriteLogBatch(TTableClient& tableClient, const std::string& table, const std::vector<TLogMessage>& logBatch,
4641
const TRetryOperationSettings& retrySettings);
4742
TStatistic Select(TTableClient& client, const std::string& path);

tests/integration/bulk_upsert_simple_it/main.cpp

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,20 +2,17 @@
22

33
#include <gtest/gtest.h>
44

5-
#include <set>
6-
75
TEST(Integration, BulkUpsert) {
86

97
uint32_t correctSumApp = 0;
108
uint32_t correctSumHost = 0;
119
uint32_t correctRowCount = 0;
12-
std::set <TLogMessage::TPrimaryKeyLogMessage> setMessage;
1310

1411
auto [driver, path] = GetRunArgs();
1512

1613
TTableClient client(driver);
1714
uint32_t count = 1000;
18-
TStatus statusCreate = CreateLogTable(client, path);
15+
TStatus statusCreate = CreateTable(client, path);
1916
if (!statusCreate.IsSuccess()) {
2017
FAIL() << "Create table failed with status: " << statusCreate << std::endl;
2118
}
@@ -28,7 +25,7 @@ TEST(Integration, BulkUpsert) {
2825
std::vector<TLogMessage> logBatch;
2926
for (uint32_t offset = 0; offset < count; ++offset) {
3027

31-
auto [batchSumApp, batchSumHost, batchRowCount] = GetLogBatch(offset, logBatch, setMessage);
28+
auto [batchSumApp, batchSumHost, batchRowCount] = GetLogBatch(offset, logBatch, correctRowCount);
3229
correctSumApp += batchSumApp;
3330
correctSumHost += batchSumHost;
3431
correctRowCount += batchRowCount;

0 commit comments

Comments
 (0)