@@ -53,11 +53,10 @@ Y_UNIT_TEST_SUITE(DataShardWrite) {
53
53
}
54
54
}
55
55
56
- Y_UNIT_TEST_TWIN (UpsertPrepared, EvWrite) {
56
+ Y_UNIT_TEST_QUAD (UpsertPrepared, EvWrite, Volatile ) {
57
57
auto [runtime, server, sender] = TestCreateServer ();
58
58
59
- // Disable volatile transactions, since EvWrite has not yet supported them.
60
- runtime.GetAppData ().FeatureFlags .SetEnableDataShardVolatileTransactions (false );
59
+ runtime.GetAppData ().FeatureFlags .SetEnableDataShardVolatileTransactions (Volatile);
61
60
62
61
auto opts = TShardedTableOptions ();
63
62
auto [shards1, tableId1] = CreateShardedTable (server, sender, " /Root" , " table-1" , opts);
@@ -160,11 +159,12 @@ Y_UNIT_TEST_SUITE(DataShardWrite) {
160
159
}
161
160
}
162
161
163
- Y_UNIT_TEST (WritePrepared) {
162
+ Y_UNIT_TEST_TWIN (WritePrepared, Volatile ) {
164
163
auto [runtime, server, sender] = TestCreateServer ();
165
164
166
165
TShardedTableOptions opts;
167
- const auto [shards, tableId] = CreateShardedTable (server, sender, " /Root" , " table-1" , opts);
166
+ const TString tableName = " table-1" ;
167
+ const auto [shards, tableId] = CreateShardedTable (server, sender, " /Root" , tableName, opts);
168
168
const ui64 shard = shards[0 ];
169
169
const ui64 coordinator = ChangeStateStorage (Coordinator, server->GetSettings ().Domain );
170
170
const ui32 rowCount = 3 ;
@@ -174,9 +174,9 @@ Y_UNIT_TEST_SUITE(DataShardWrite) {
174
174
175
175
Cout << " ========= Send prepare =========\n " ;
176
176
{
177
- const auto writeResult = Write (runtime, sender, shard, tableId, opts.Columns_ , rowCount, txId, NKikimrDataEvents::TEvWrite::MODE_PREPARE);
177
+ const auto writeResult = Write (runtime, sender, shard, tableId, opts.Columns_ , rowCount, txId,
178
+ Volatile ? NKikimrDataEvents::TEvWrite::MODE_VOLATILE_PREPARE : NKikimrDataEvents::TEvWrite::MODE_PREPARE);
178
179
179
- UNIT_ASSERT_VALUES_EQUAL (writeResult.GetStatus (), NKikimrDataEvents::TEvWriteResult::STATUS_PREPARED);
180
180
UNIT_ASSERT_GT (writeResult.GetMinStep (), 0 );
181
181
UNIT_ASSERT_GT (writeResult.GetMaxStep (), writeResult.GetMinStep ());
182
182
UNIT_ASSERT_VALUES_EQUAL (writeResult.GetOrigin (), shard);
@@ -198,27 +198,25 @@ Y_UNIT_TEST_SUITE(DataShardWrite) {
198
198
{
199
199
auto writeResult = WaitForWriteCompleted (runtime, sender);
200
200
201
- UNIT_ASSERT_VALUES_EQUAL_C (writeResult.GetStatus (), NKikimrDataEvents::TEvWriteResult::STATUS_COMPLETED, " Status: " << writeResult.GetStatus () << " Issues: " << writeResult.GetIssues ());
202
201
UNIT_ASSERT_VALUES_EQUAL (writeResult.GetOrigin (), shard);
203
202
UNIT_ASSERT_GE (writeResult.GetStep (), minStep);
204
203
UNIT_ASSERT_LE (writeResult.GetStep (), maxStep);
205
204
UNIT_ASSERT_VALUES_EQUAL (writeResult.GetOrderId (), txId);
206
205
UNIT_ASSERT_VALUES_EQUAL (writeResult.GetTxId (), txId);
207
206
208
207
const auto & tableAccessStats = writeResult.GetTxStats ().GetTableAccessStats (0 );
209
- UNIT_ASSERT_VALUES_EQUAL (tableAccessStats.GetTableInfo ().GetName (), " /Root/table-1 " );
208
+ UNIT_ASSERT_VALUES_EQUAL (tableAccessStats.GetTableInfo ().GetName (), " /Root/" + tableName );
210
209
UNIT_ASSERT_VALUES_EQUAL (tableAccessStats.GetUpdateRow ().GetCount (), rowCount);
211
210
}
212
211
213
212
Cout << " ========= Read table =========\n " ;
214
213
{
215
- auto tableState = TReadTableState (server, MakeReadTableSettings (" /Root/table-1 " )).All ();
214
+ auto tableState = TReadTableState (server, MakeReadTableSettings (" /Root/" + tableName )).All ();
216
215
UNIT_ASSERT_VALUES_EQUAL (tableState, expectedTableState);
217
216
}
218
-
219
217
}
220
218
221
- Y_UNIT_TEST (WritePreparedManyTables) {
219
+ Y_UNIT_TEST_TWIN (WritePreparedManyTables, Volatile ) {
222
220
auto [runtime, server, sender] = TestCreateServer ();
223
221
224
222
TShardedTableOptions opts;
@@ -236,7 +234,8 @@ Y_UNIT_TEST_SUITE(DataShardWrite) {
236
234
237
235
Cerr << " ===== Write prepared to table 1" << Endl;
238
236
{
239
- const auto writeResult = Write (runtime, sender, tabletId1, tableId1, opts.Columns_ , rowCount, txId, NKikimrDataEvents::TEvWrite::MODE_PREPARE);
237
+ const auto writeResult = Write (runtime, sender, tabletId1, tableId1, opts.Columns_ , rowCount, txId,
238
+ Volatile ? NKikimrDataEvents::TEvWrite::MODE_VOLATILE_PREPARE : NKikimrDataEvents::TEvWrite::MODE_PREPARE);
240
239
241
240
minStep1 = writeResult.GetMinStep ();
242
241
maxStep1 = writeResult.GetMaxStep ();
@@ -282,7 +281,7 @@ Y_UNIT_TEST_SUITE(DataShardWrite) {
282
281
}
283
282
284
283
285
- Y_UNIT_TEST (WritePreparedNoTxCache) {
284
+ Y_UNIT_TEST_TWIN (WritePreparedNoTxCache, Volatile ) {
286
285
auto [runtime, server, sender] = TestCreateServer ();
287
286
288
287
TShardedTableOptions opts;
@@ -296,7 +295,9 @@ Y_UNIT_TEST_SUITE(DataShardWrite) {
296
295
297
296
Cout << " ========= Send prepare =========\n " ;
298
297
{
299
- const auto writeResult = Write (runtime, sender, shard, tableId, opts.Columns_ , rowCount, txId, NKikimrDataEvents::TEvWrite::MODE_PREPARE);
298
+ const auto writeResult = Write (runtime, sender, shard, tableId, opts.Columns_ , rowCount, txId,
299
+ Volatile ? NKikimrDataEvents::TEvWrite::MODE_VOLATILE_PREPARE : NKikimrDataEvents::TEvWrite::MODE_PREPARE);
300
+
300
301
minStep = writeResult.GetMinStep ();
301
302
maxStep = writeResult.GetMaxStep ();
302
303
}
0 commit comments