@@ -266,6 +266,25 @@ Y_UNIT_TEST(ThreeLeveledLRU) {
266266 retried = {};
267267 env.SendSync (new NFake::TEvExecute{ new TTxReadRow (0 , retried) }, true );
268268 UNIT_ASSERT_VALUES_EQUAL (retried, (TVector<ui32>{1 , 1 , 1 }));
269+
270+ RestartAndClearCache (env);
271+
272+ retried = {};
273+ for (i64 key = 0 ; key < 100 ; ++key) {
274+ env.SendSync (new NFake::TEvExecute{ new TTxReadRow (key, retried) }, true );
275+ env.SendSync (new NFake::TEvExecute{ new TTxReadRow (key, retried) }, true );
276+ }
277+ LogCounters (counters);
278+ UNIT_ASSERT_DOUBLES_EQUAL (counters->ActiveBytes ->Val (), static_cast <i64 >(8_MB / 3 * 2 ), static_cast <i64 >(1_MB / 3 )); // 2 full layers (fresh & staging)
279+ UNIT_ASSERT_VALUES_EQUAL (retried, (TVector<ui32>{200 , 100 , 14 , 2 }));
280+
281+ retried = {};
282+ for (i64 key = 0 ; key < 100 ; ++key) {
283+ env.SendSync (new NFake::TEvExecute{ new TTxReadRow (key, retried) }, true );
284+ }
285+ LogCounters (counters);
286+ UNIT_ASSERT_DOUBLES_EQUAL (counters->ActiveBytes ->Val (), static_cast <i64 >(8_MB / 3 * 2 ), static_cast <i64 >(1_MB / 3 )); // 2 full layers (fresh & staging)
287+ UNIT_ASSERT_VALUES_EQUAL (retried, (TVector<ui32>{100 , 100 , 14 }));
269288}
270289
271290Y_UNIT_TEST (S3FIFO) {
@@ -346,6 +365,25 @@ Y_UNIT_TEST(S3FIFO) {
346365 retried = {};
347366 env.SendSync (new NFake::TEvExecute{ new TTxReadRow (0 , retried) }, true );
348367 UNIT_ASSERT_VALUES_EQUAL (retried, (TVector<ui32>{1 }));
368+
369+ RestartAndClearCache (env);
370+
371+ retried = {};
372+ for (i64 key = 0 ; key < 100 ; ++key) {
373+ env.SendSync (new NFake::TEvExecute{ new TTxReadRow (key, retried) }, true );
374+ env.SendSync (new NFake::TEvExecute{ new TTxReadRow (key, retried) }, true );
375+ }
376+ LogCounters (counters);
377+ UNIT_ASSERT_DOUBLES_EQUAL (counters->ActiveBytes ->Val (), static_cast <i64 >(8_MB), static_cast <i64 >(1_MB / 3 ));
378+ UNIT_ASSERT_VALUES_EQUAL (retried, (TVector<ui32>{200 , 100 , 14 , 2 }));
379+
380+ retried = {};
381+ for (i64 key = 0 ; key < 100 ; ++key) {
382+ env.SendSync (new NFake::TEvExecute{ new TTxReadRow (key, retried) }, true );
383+ }
384+ LogCounters (counters);
385+ UNIT_ASSERT_DOUBLES_EQUAL (counters->ActiveBytes ->Val (), static_cast <i64 >(8_MB), static_cast <i64 >(1_MB / 3 ));
386+ UNIT_ASSERT_VALUES_EQUAL (retried, (TVector<ui32>{100 , 28 }));
349387}
350388
351389Y_UNIT_TEST (ReplacementPolicySwitch) {
0 commit comments