File tree Expand file tree Collapse file tree 6 files changed +18
-1
lines changed
engines/reader/plain_reader/iterator Expand file tree Collapse file tree 6 files changed +18
-1
lines changed Original file line number Diff line number Diff line change @@ -22,6 +22,7 @@ Y_UNIT_TEST_SUITE(KqpOlapIndexes) {
22
22
csController->SetOverridePeriodicWakeupActivationPeriod (TDuration::Seconds (1 ));
23
23
csController->SetOverrideLagForCompactionBeforeTierings (TDuration::Seconds (1 ));
24
24
csController->SetOverrideReduceMemoryIntervalLimit (1LLU << 30 );
25
+ csController->SetOverrideMemoryLimitForPortionReading (1e+10 );
25
26
26
27
TLocalHelper (kikimr).CreateTestOlapTable ();
27
28
auto tableClient = kikimr.GetTableClient ();
@@ -322,6 +323,7 @@ Y_UNIT_TEST_SUITE(KqpOlapIndexes) {
322
323
void Execute () const {
323
324
auto csController = NYDBTest::TControllers::RegisterCSControllerGuard<NOlap::TWaitCompactionController>();
324
325
csController->SetOverrideReduceMemoryIntervalLimit (1LLU << 30 );
326
+ csController->SetOverrideMemoryLimitForPortionReading (1e+10 );
325
327
TLocalHelper (*Kikimr).CreateTestOlapTable ();
326
328
auto tableClient = Kikimr->GetTableClient ();
327
329
Original file line number Diff line number Diff line change @@ -1698,6 +1698,7 @@ message TColumnShardConfig {
1698
1698
optional uint32 SmallPortionDetectSizeLimit = 24 [default = 1048576 ]; // 1 << 20
1699
1699
optional bool ColumnChunksV0Usage = 25 [default = true ];
1700
1700
optional bool ColumnChunksV1Usage = 26 [default = true ];
1701
+ optional uint64 MemoryLimitScanPortion = 27 [default = 100000000 ];
1701
1702
}
1702
1703
1703
1704
message TSchemeShardConfig {
Original file line number Diff line number Diff line change @@ -36,6 +36,7 @@ class TFetchedData {
36
36
return ;
37
37
}
38
38
AFL_VERIFY (!DataAdded);
39
+ UseFilter = value;
39
40
}
40
41
41
42
bool HasPortionAccessor () const {
Original file line number Diff line number Diff line change @@ -289,7 +289,8 @@ TConclusion<bool> TPortionAccessorFetchingStep::DoExecuteInplace(
289
289
290
290
TConclusion<bool > TDetectInMem::DoExecuteInplace (const std::shared_ptr<IDataSource>& source, const TFetchingScriptCursor& /* step*/ ) const {
291
291
if (Columns.GetColumnsCount ()) {
292
- source->SetSourceInMemory (source->GetColumnRawBytes (Columns.GetColumnIds ()) < 1e+8 );
292
+ source->SetSourceInMemory (
293
+ source->GetColumnRawBytes (Columns.GetColumnIds ()) < NYDBTest::TControllers::GetColumnShardController ()->GetMemoryLimitScanPortion ());
293
294
} else {
294
295
source->SetSourceInMemory (true );
295
296
}
Original file line number Diff line number Diff line change @@ -130,6 +130,9 @@ class ICSController {
130
130
virtual TDuration DoGetLagForCompactionBeforeTierings (const TDuration defaultValue) const {
131
131
return defaultValue;
132
132
}
133
+ virtual ui64 DoGetMemoryLimitScanPortion (const ui64 defaultValue) const {
134
+ return defaultValue;
135
+ }
133
136
134
137
private:
135
138
inline static const NKikimrConfig::TColumnShardConfig DefaultConfig = {};
@@ -146,6 +149,9 @@ class ICSController {
146
149
const std::set<NOlap::TSnapshot>& /* snapshotsToSave*/ , const std::set<NOlap::TSnapshot>& /* snapshotsToRemove*/ ) {
147
150
}
148
151
152
+ ui64 GetMemoryLimitScanPortion () const {
153
+ return DoGetMemoryLimitScanPortion (GetConfig ().GetMemoryLimitScanPortion ());
154
+ }
149
155
virtual bool CheckPortionForEvict (const NOlap::TPortionInfo& portion) const ;
150
156
151
157
TDuration GetPingCheckPeriod () const {
Original file line number Diff line number Diff line change @@ -22,6 +22,7 @@ class TController: public TReadOnlyController {
22
22
YDB_ACCESSOR_DEF (std::optional<TDuration>, OverrideCompactionActualizationLag);
23
23
YDB_ACCESSOR_DEF (std::optional<TDuration>, OverrideTasksActualizationLag);
24
24
YDB_ACCESSOR_DEF (std::optional<TDuration>, OverrideReadTimeoutClean);
25
+ YDB_ACCESSOR (std::optional<ui64>, OverrideMemoryLimitForPortionReading, 100 );
25
26
EOptimizerCompactionWeightControl CompactionControl = EOptimizerCompactionWeightControl::Force;
26
27
27
28
YDB_ACCESSOR (std::optional<ui64>, OverrideReduceMemoryIntervalLimit, 1024 );
@@ -130,6 +131,11 @@ class TController: public TReadOnlyController {
130
131
THashSet<TString> SharingIds;
131
132
protected:
132
133
virtual ::NKikimr::NColumnShard::TBlobPutResult::TPtr OverrideBlobPutResultOnCompaction (const ::NKikimr::NColumnShard::TBlobPutResult::TPtr original, const NOlap::TWriteActionsCollection& actions) const override ;
134
+
135
+ virtual ui64 DoGetMemoryLimitScanPortion (const ui64 defaultValue) const override {
136
+ return OverrideMemoryLimitForPortionReading.value_or (defaultValue);
137
+ }
138
+
133
139
virtual TDuration DoGetLagForCompactionBeforeTierings (const TDuration def) const override {
134
140
return OverrideLagForCompactionBeforeTierings.value_or (def);
135
141
}
You can’t perform that action at this time.
0 commit comments