Skip to content

Commit 98f3fb0

Browse files
committed
Move MaxTxInFly to Immediate Control Board
1 parent 1ce5967 commit 98f3fb0

File tree

7 files changed

+21
-20
lines changed

7 files changed

+21
-20
lines changed

ydb/core/base/appdata.cpp

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,6 @@ struct TAppData::TImpl {
8181
NKikimrConfig::TStatisticsConfig StatisticsConfig;
8282
TMetricsConfig MetricsConfig;
8383
NKikimrConfig::TSystemTabletBackupConfig SystemTabletBackupConfig;
84-
NKikimrConfig::TSystemTabletConfig SystemTabletConfig;
8584
};
8685

8786
TAppData::TAppData(
@@ -148,7 +147,6 @@ TAppData::TAppData(
148147
, StatisticsConfig(Impl->StatisticsConfig)
149148
, MetricsConfig(Impl->MetricsConfig)
150149
, SystemTabletBackupConfig(Impl->SystemTabletBackupConfig)
151-
, SystemTabletConfig(Impl->SystemTabletConfig)
152150
, KikimrShouldContinue(kikimrShouldContinue)
153151
, TracingConfigurator(MakeIntrusive<NJaegerTracing::TSamplingThrottlingConfigurator>(TimeProvider, RandomProvider))
154152
{}

ydb/core/base/appdata_fwd.h

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,6 @@ namespace NKikimrConfig {
8181
class TBridgeConfig;
8282
class TStatisticsConfig;
8383
class TSystemTabletBackupConfig;
84-
class TSystemTabletConfig;
8584
}
8685

8786
namespace NKikimrReplication {
@@ -271,7 +270,6 @@ struct TAppData {
271270
NKikimrConfig::TStatisticsConfig& StatisticsConfig;
272271
TMetricsConfig& MetricsConfig;
273272
NKikimrConfig::TSystemTabletBackupConfig& SystemTabletBackupConfig;
274-
NKikimrConfig::TSystemTabletConfig& SystemTabletConfig;
275273
bool EnforceUserTokenRequirement = false;
276274
bool EnforceUserTokenCheckRequirement = false; // check token if it was specified
277275
bool AllowHugeKeyValueDeletes = true; // delete when all clients limit deletes per request

ydb/core/driver_lib/run/run.cpp

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1466,10 +1466,6 @@ void TKikimrRunner::InitializeAppData(const TKikimrRunConfig& runConfig)
14661466
AppData->DataIntegrityTrailsConfig = runConfig.AppConfig.GetDataIntegrityTrailsConfig();
14671467
}
14681468

1469-
if (runConfig.AppConfig.HasSystemTabletConfig()) {
1470-
AppData->SystemTabletConfig = runConfig.AppConfig.GetSystemTabletConfig();
1471-
}
1472-
14731469
// setup resource profiles
14741470
AppData->ResourceProfiles = new TResourceProfiles;
14751471
if (runConfig.AppConfig.GetBootstrapConfig().ResourceProfilesSize())

ydb/core/protos/config.proto

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1747,6 +1747,12 @@ message TImmediateControlsConfig {
17471747
MinValue: 8,
17481748
MaxValue: 4096,
17491749
DefaultValue: 256 }];
1750+
1751+
optional uint64 MaxTxInFly = 2 [(ControlOptions) = {
1752+
Description: "Maximum tx queue size for all tablets",
1753+
MinValue: 0,
1754+
MaxValue: 1000000,
1755+
DefaultValue: 10000 }];
17501756
}
17511757

17521758
message TDSProxyControls {
@@ -2741,10 +2747,6 @@ message TSystemTabletBackupConfig {
27412747
}
27422748
}
27432749

2744-
message TSystemTabletConfig {
2745-
optional uint64 MaxTxInFly = 1 [default = 10000];
2746-
}
2747-
27482750
message TAppConfig {
27492751
option (NMarkers.Root) = true;
27502752
optional TActorSystemConfig ActorSystemConfig = 1;
@@ -2852,7 +2854,6 @@ message TAppConfig {
28522854
optional TStatisticsConfig StatisticsConfig = 113;
28532855
optional TMetricsConfig MetricsConfig = 114;
28542856
optional TSystemTabletBackupConfig SystemTabletBackupConfig = 115;
2855-
optional TSystemTabletConfig SystemTabletConfig = 116;
28562857
}
28572858

28582859
message TYdbVersion {

ydb/core/tablet_flat/flat_executor.cpp

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -133,12 +133,12 @@ TExecutor::TExecutor(
133133
, Time(TAppData::TimeProvider)
134134
, Owner(owner)
135135
, OwnerActorId(ownerActorId)
136-
, MaxTxInFly(AppData()->SystemTabletConfig.GetMaxTxInFly())
137136
, Emitter(new TIdEmitter)
138137
, CounterEventsInFlight(new TEvTabletCounters::TInFlightCookie)
139138
, Stats(new TExecutorStatsImpl())
140139
, LogFlushDelayOverrideUsec(-1, -1, 60*1000*1000)
141140
, MaxCommitRedoMB(256, 1, 4096)
141+
, MaxTxInFly(10000, 0, 1000000)
142142
{}
143143

144144
TExecutor::~TExecutor() {
@@ -183,6 +183,7 @@ void TExecutor::Registered(TActorSystem *sys, const TActorId&)
183183
TControlBoard::RegisterSharedControl(LogFlushDelayOverrideUsec, icb.LogFlushDelayOverrideUsec[static_cast<size_t>(Owner->TabletType())]);
184184
}
185185
TControlBoard::RegisterSharedControl(MaxCommitRedoMB, icb.TabletControls.MaxCommitRedoMB);
186+
TControlBoard::RegisterSharedControl(MaxTxInFly, icb.TabletControls.MaxTxInFly);
186187

187188
// instantiate alert counters so even never reported alerts are created
188189
GetServiceCounters(AppData()->Counters, "tablets")->GetCounter("alerts_pending_nodata", true);
@@ -4076,8 +4077,7 @@ void TExecutor::ForceSendCounters() {
40764077

40774078
float TExecutor::GetRejectProbability() const {
40784079
// Limit number of in-flight TXs
4079-
// TODO: make configurable
4080-
if (Stats->TxInFly > MaxTxInFly) {
4080+
if (Stats->TxInFly > ui64(MaxTxInFly)) {
40814081
HadRejectProbabilityByTxInFly = true;
40824082
return 1.0;
40834083
}
@@ -4113,7 +4113,7 @@ float TExecutor::GetRejectProbability() const {
41134113
}
41144114

41154115
void TExecutor::MaybeRelaxRejectProbability() {
4116-
if (HadRejectProbabilityByTxInFly && Stats->TxInFly <= MaxTxInFly ||
4116+
if (HadRejectProbabilityByTxInFly && Stats->TxInFly <= ui64(MaxTxInFly) ||
41174117
HadRejectProbabilityByOverload)
41184118
{
41194119
HadRejectProbabilityByTxInFly = false;

ydb/core/tablet_flat/flat_executor.h

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -386,8 +386,6 @@ class TExecutor
386386
// Counts the number of times LeaseDuration was increased
387387
size_t LeaseDurationIncreases = 0;
388388

389-
const ui64 MaxTxInFly;
390-
391389
struct TLeaseCommit : public TIntrusiveListItem<TLeaseCommit> {
392390
using TByEndMap = std::multimap<TMonotonic, TLeaseCommit*>;
393391

@@ -502,6 +500,7 @@ class TExecutor
502500

503501
TControlWrapper LogFlushDelayOverrideUsec;
504502
TControlWrapper MaxCommitRedoMB;
503+
TControlWrapper MaxTxInFly;
505504

506505
ui64 Stamp() const noexcept;
507506
void Registered(TActorSystem*, const TActorId&) override;

ydb/tests/olap/test_overloads.py

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
import yatest.common
66
import ydb
77
import random
8+
import requests
89

910
from ydb.tests.library.harness.kikimr_config import KikimrConfigGenerator
1011
from ydb.tests.library.harness.kikimr_runner import KiKiMR
@@ -110,13 +111,13 @@ def _setup_ydb_rp(cls):
110111
logger.info(yatest.common.execute([ydb_path, "-V"], wait=True).stdout.decode("utf-8"))
111112
config = KikimrConfigGenerator(
112113
extra_feature_flags={"enable_olap_reject_probability": True},
113-
system_tablet_config={"max_tx_in_fly": 0},
114114
)
115115
cls.cluster = KiKiMR(config)
116116
cls.cluster.start()
117117
node = cls.cluster.nodes[1]
118118
cls.ydb_client = YdbClient(endpoint=f"grpc://{node.host}:{node.port}", database=f"/{config.domain_name}")
119119
cls.ydb_client.wait_connection(timeout=60)
120+
cls.mon_url = f"http://{node.host}:{node.mon_port}"
120121

121122
def get_row_count(self) -> int:
122123
return self.ydb_client.query(f"select count(*) as Rows from `{self.table_name}`")[0].rows[0]["Rows"]
@@ -208,8 +209,16 @@ def test_overloads_workload(self, writing_in_flight_requests_count_limit, writin
208209
logging.info(f"Count rows after insert {self.get_row_count()}")
209210
assert self.get_row_count() != 0
210211

212+
def tune_icb(self):
213+
response = requests.post(
214+
self.mon_url + "/actors/icb",
215+
data = "TabletControls.MaxTxInFly=0"
216+
)
217+
response.raise_for_status()
218+
211219
def test_overloads_reject_probability(self):
212220
self._setup_ydb_rp()
221+
self.tune_icb()
213222

214223
table_path = f"{self.ydb_client.database}/table_for_test_overloads_reject_probability"
215224
self.ydb_client.query(

0 commit comments

Comments
 (0)