Skip to content

Commit 028fabb

Browse files
authored
Merge 4f92d75 into e3f4b87
2 parents e3f4b87 + 4f92d75 commit 028fabb

20 files changed

+576
-80
lines changed

ydb/core/kqp/common/events/events.h

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -108,6 +108,18 @@ struct TEvKqp {
108108
struct TEvScriptRequest : public TEventLocal<TEvScriptRequest, TKqpEvents::EvScriptRequest> {
109109
TEvScriptRequest() = default;
110110

111+
const TString& GetDatabase() const {
112+
return Record.GetRequest().GetDatabase();
113+
}
114+
115+
const TString& GetDatabaseId() const {
116+
return Record.GetRequest().GetDatabaseId();
117+
}
118+
119+
void SetDatabaseId(const TString& databaseId) {
120+
Record.MutableRequest()->SetDatabaseId(databaseId);
121+
}
122+
111123
mutable NKikimrKqp::TEvQueryRequest Record;
112124
TDuration ForgetAfter;
113125
TDuration ResultsTtl;
@@ -161,6 +173,28 @@ struct TEvKqp {
161173
return issues;
162174
}
163175
};
176+
177+
struct TEvUpdateDatabaseInfo : public TEventLocal<TEvUpdateDatabaseInfo, TKqpEvents::EvUpdateDatabaseInfo> {
178+
TEvUpdateDatabaseInfo(const TString& database, Ydb::StatusIds::StatusCode status, NYql::TIssues issues)
179+
: Status(status)
180+
, Database(database)
181+
, Issues(std::move(issues))
182+
{}
183+
184+
TEvUpdateDatabaseInfo(const TString& database, const TString& databaseId, bool serverless)
185+
: Status(Ydb::StatusIds::SUCCESS)
186+
, Database(database)
187+
, DatabaseId(databaseId)
188+
, Serverless(serverless)
189+
, Issues({})
190+
{}
191+
192+
Ydb::StatusIds::StatusCode Status;
193+
TString Database;
194+
TString DatabaseId;
195+
bool Serverless = false;
196+
NYql::TIssues Issues;
197+
};
164198
};
165199

166200
} // namespace NKikimr::NKqp

ydb/core/kqp/common/events/query.h

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -351,6 +351,14 @@ struct TEvQueryRequest: public NActors::TEventLocal<TEvQueryRequest, TKqpEvents:
351351
return PoolConfig;
352352
}
353353

354+
const TString& GetDatabaseId() const {
355+
return DatabaseId ? DatabaseId : Record.GetRequest().GetDatabaseId();
356+
}
357+
358+
void SetDatabaseId(const TString& databaseId) {
359+
DatabaseId = databaseId;
360+
}
361+
354362
mutable NKikimrKqp::TEvQueryRequest Record;
355363

356364
private:
@@ -363,6 +371,7 @@ struct TEvQueryRequest: public NActors::TEventLocal<TEvQueryRequest, TKqpEvents:
363371
mutable TIntrusiveConstPtr<NACLib::TUserToken> Token_;
364372
TActorId RequestActorId;
365373
TString Database;
374+
TString DatabaseId;
366375
TString SessionId;
367376
TString YqlText;
368377
TString QueryId;

ydb/core/kqp/common/events/script_executions.h

Lines changed: 34 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -22,13 +22,34 @@ enum EFinalizationStatus : i32 {
2222
FS_ROLLBACK,
2323
};
2424

25-
struct TEvForgetScriptExecutionOperation : public NActors::TEventLocal<TEvForgetScriptExecutionOperation, TKqpScriptExecutionEvents::EvForgetScriptExecutionOperation> {
26-
TEvForgetScriptExecutionOperation(const TString& database, const NOperationId::TOperationId& id)
25+
template <typename TEv, ui32 TEventType>
26+
struct TEventWithDatabaseId : public NActors::TEventLocal<TEv, TEventType> {
27+
TEventWithDatabaseId(const TString& database)
2728
: Database(database)
28-
, OperationId(id)
2929
{}
3030

31+
const TString& GetDatabase() const {
32+
return Database;
33+
}
34+
35+
const TString& GetDatabaseId() const {
36+
return DatabaseId;
37+
}
38+
39+
void SetDatabaseId(const TString& databaseId) {
40+
DatabaseId = databaseId;
41+
}
42+
3143
const TString Database;
44+
TString DatabaseId;
45+
};
46+
47+
struct TEvForgetScriptExecutionOperation : public TEventWithDatabaseId<TEvForgetScriptExecutionOperation, TKqpScriptExecutionEvents::EvForgetScriptExecutionOperation> {
48+
TEvForgetScriptExecutionOperation(const TString& database, const NOperationId::TOperationId& id)
49+
: TEventWithDatabaseId(database)
50+
, OperationId(id)
51+
{}
52+
3253
const NOperationId::TOperationId OperationId;
3354
};
3455

@@ -43,14 +64,12 @@ struct TEvForgetScriptExecutionOperationResponse : public NActors::TEventLocal<T
4364
NYql::TIssues Issues;
4465
};
4566

46-
struct TEvGetScriptExecutionOperation : public NActors::TEventLocal<TEvGetScriptExecutionOperation, TKqpScriptExecutionEvents::EvGetScriptExecutionOperation> {
47-
explicit TEvGetScriptExecutionOperation(const TString& database, const NOperationId::TOperationId& id)
48-
: Database(database)
67+
struct TEvGetScriptExecutionOperation : public TEventWithDatabaseId<TEvGetScriptExecutionOperation, TKqpScriptExecutionEvents::EvGetScriptExecutionOperation> {
68+
TEvGetScriptExecutionOperation(const TString& database, const NOperationId::TOperationId& id)
69+
: TEventWithDatabaseId(database)
4970
, OperationId(id)
50-
{
51-
}
71+
{}
5272

53-
TString Database;
5473
NOperationId::TOperationId OperationId;
5574
};
5675

@@ -97,14 +116,13 @@ struct TEvGetScriptExecutionOperationResponse : public NActors::TEventLocal<TEvG
97116
TMaybe<google::protobuf::Any> Metadata;
98117
};
99118

100-
struct TEvListScriptExecutionOperations : public NActors::TEventLocal<TEvListScriptExecutionOperations, TKqpScriptExecutionEvents::EvListScriptExecutionOperations> {
119+
struct TEvListScriptExecutionOperations : public TEventWithDatabaseId<TEvListScriptExecutionOperations, TKqpScriptExecutionEvents::EvListScriptExecutionOperations> {
101120
TEvListScriptExecutionOperations(const TString& database, const ui64 pageSize, const TString& pageToken)
102-
: Database(database)
121+
: TEventWithDatabaseId(database)
103122
, PageSize(pageSize)
104123
, PageToken(pageToken)
105124
{}
106125

107-
TString Database;
108126
ui64 PageSize;
109127
TString PageToken;
110128
};
@@ -151,14 +169,12 @@ struct TEvCheckAliveRequest : public NActors::TEventPB<TEvCheckAliveRequest, NKi
151169
struct TEvCheckAliveResponse : public NActors::TEventPB<TEvCheckAliveResponse, NKikimrKqp::TEvCheckAliveResponse, TKqpScriptExecutionEvents::EvCheckAliveResponse> {
152170
};
153171

154-
struct TEvCancelScriptExecutionOperation : public NActors::TEventLocal<TEvCancelScriptExecutionOperation, TKqpScriptExecutionEvents::EvCancelScriptExecutionOperation> {
155-
explicit TEvCancelScriptExecutionOperation(const TString& database, const NOperationId::TOperationId& id)
156-
: Database(database)
172+
struct TEvCancelScriptExecutionOperation : public TEventWithDatabaseId<TEvCancelScriptExecutionOperation, TKqpScriptExecutionEvents::EvCancelScriptExecutionOperation> {
173+
TEvCancelScriptExecutionOperation(const TString& database, const NOperationId::TOperationId& id)
174+
: TEventWithDatabaseId(database)
157175
, OperationId(id)
158-
{
159-
}
176+
{}
160177

161-
TString Database;
162178
NOperationId::TOperationId OperationId;
163179
};
164180

ydb/core/kqp/common/events/workload_service.h

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
#include <ydb/core/kqp/common/simple/kqp_event_ids.h>
44
#include <ydb/core/resource_pools/resource_pool_settings.h>
5+
#include <ydb/core/scheme/scheme_pathid.h>
56

67
#include <ydb/library/aclib/aclib.h>
78
#include <ydb/library/actors/core/event_local.h>
@@ -90,14 +91,20 @@ struct TEvUpdatePoolInfo : public NActors::TEventLocal<TEvUpdatePoolInfo, TKqpWo
9091
const std::optional<NACLib::TSecurityObject> SecurityObject;
9192
};
9293

93-
struct TEvUpdateDatabaseInfo : public NActors::TEventLocal<TEvUpdateDatabaseInfo, TKqpWorkloadServiceEvents::EvUpdateDatabaseInfo> {
94-
TEvUpdateDatabaseInfo(const TString& database, bool serverless)
95-
: Database(database)
94+
struct TEvFetchDatabaseResponse : public NActors::TEventLocal<TEvFetchDatabaseResponse, TKqpWorkloadServiceEvents::EvFetchDatabaseResponse> {
95+
TEvFetchDatabaseResponse(Ydb::StatusIds::StatusCode status, const TString& database, bool serverless, TPathId pathId, NYql::TIssues issues)
96+
: Status(status)
97+
, Database(database)
9698
, Serverless(serverless)
99+
, PathId(pathId)
100+
, Issues(std::move(issues))
97101
{}
98102

103+
const Ydb::StatusIds::StatusCode Status;
99104
const TString Database;
100105
const bool Serverless;
106+
const TPathId PathId;
107+
const NYql::TIssues Issues;
101108
};
102109

103110
} // NKikimr::NKqp::NWorkload

ydb/core/kqp/common/events/ya.make

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ PEERDIR(
1515
ydb/core/kqp/common/shutdown
1616
ydb/core/kqp/common/compilation
1717
ydb/core/resource_pools
18+
ydb/core/scheme
1819

1920
ydb/library/yql/dq/actors
2021
ydb/public/api/protos

ydb/core/kqp/common/kqp_event_impl.cpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,10 @@ void TEvKqp::TEvQueryRequest::PrepareRemote() const {
9090
Record.MutableRequest()->SetPoolId(PoolId);
9191
}
9292

93+
if (!DatabaseId.empty()) {
94+
Record.MutableRequest()->SetDatabaseId(DatabaseId);
95+
}
96+
9397
Record.MutableRequest()->SetSessionId(SessionId);
9498
Record.MutableRequest()->SetAction(QueryAction);
9599
Record.MutableRequest()->SetType(QueryType);

ydb/core/kqp/common/simple/kqp_event_ids.h

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,8 @@ struct TKqpEvents {
4343
EvListSessionsRequest,
4444
EvListSessionsResponse,
4545
EvListProxyNodesRequest,
46-
EvListProxyNodesResponse
46+
EvListProxyNodesResponse,
47+
EvUpdateDatabaseInfo
4748
};
4849

4950
static_assert (EvCompileInvalidateRequest + 1 == EvAbortExecution);
@@ -174,8 +175,8 @@ struct TKqpWorkloadServiceEvents {
174175
EvCleanupRequest,
175176
EvCleanupResponse,
176177
EvUpdatePoolInfo,
177-
EvUpdateDatabaseInfo,
178178
EvSubscribeOnPoolChanges,
179+
EvFetchDatabaseResponse,
179180
};
180181
};
181182

ydb/core/kqp/gateway/behaviour/resource_pool_classifier/checker.cpp

Lines changed: 27 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44
#include <ydb/core/base/path.h>
55
#include <ydb/core/cms/console/configs_dispatcher.h>
66
#include <ydb/core/kqp/workload_service/actors/actors.h>
7-
#include <ydb/core/kqp/workload_service/common/events.h>
87
#include <ydb/core/protos/console_config.pb.h>
98
#include <ydb/core/resource_pools/resource_pool_classifier_settings.h>
109

@@ -20,6 +19,31 @@ using namespace NResourcePool;
2019
using namespace NWorkload;
2120

2221

22+
struct TEvPrivate {
23+
// Event ids
24+
enum EEv : ui32 {
25+
EvRanksCheckerResponse = EventSpaceBegin(TEvents::ES_PRIVATE),
26+
27+
EvEnd
28+
};
29+
30+
static_assert(EvEnd < EventSpaceEnd(TEvents::ES_PRIVATE), "expect EvEnd < EventSpaceEnd(TEvents::ES_PRIVATE)");
31+
32+
struct TEvRanksCheckerResponse : public TEventLocal<TEvRanksCheckerResponse, EvRanksCheckerResponse> {
33+
TEvRanksCheckerResponse(Ydb::StatusIds::StatusCode status, i64 maxRank, ui64 numberClassifiers, NYql::TIssues issues)
34+
: Status(status)
35+
, MaxRank(maxRank)
36+
, NumberClassifiers(numberClassifiers)
37+
, Issues(std::move(issues))
38+
{}
39+
40+
const Ydb::StatusIds::StatusCode Status;
41+
const i64 MaxRank;
42+
const ui64 NumberClassifiers;
43+
const NYql::TIssues Issues;
44+
};
45+
};
46+
2347
class TRanksCheckerActor : public NKikimr::TQueryBase {
2448
using TBase = NKikimr::TQueryBase;
2549

@@ -177,7 +201,7 @@ class TResourcePoolClassifierPreparationActor : public TActorBootstrapped<TResou
177201
TryFinish();
178202
}
179203

180-
void Handle(TEvPrivate::TEvFetchDatabaseResponse::TPtr& ev) {
204+
void Handle(TEvFetchDatabaseResponse::TPtr& ev) {
181205
if (ev->Get()->Status != Ydb::StatusIds::SUCCESS) {
182206
FailAndPassAway("Database check failed", ev->Get()->Status, ev->Get()->Issues);
183207
return;
@@ -223,7 +247,7 @@ class TResourcePoolClassifierPreparationActor : public TActorBootstrapped<TResou
223247

224248
STRICT_STFUNC(StateFunc,
225249
hFunc(TEvPrivate::TEvRanksCheckerResponse, Handle);
226-
hFunc(TEvPrivate::TEvFetchDatabaseResponse, Handle);
250+
hFunc(TEvFetchDatabaseResponse, Handle);
227251
hFunc(TEvents::TEvUndelivered, Handle);
228252
hFunc(NConsole::TEvConfigsDispatcher::TEvGetConfigResponse, Handle);
229253
hFunc(NMetadata::NProvider::TEvRefreshSubscriberData, Handle)

0 commit comments

Comments
 (0)