Skip to content

Commit c07c0fb

Browse files
authored
Merge pull request #10477 from zverevgeny/analytics_to_stable
Analytics to stable
2 parents 5280183 + 5bd23c1 commit c07c0fb

File tree

1,167 files changed

+28077
-22343
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

1,167 files changed

+28077
-22343
lines changed

.github/config/muted_ya.txt

+7
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ ydb/core/external_sources *
88
ydb/core/quoter/ut QuoterWithKesusTest.PrefetchCoefficient
99
ydb/core/keyvalue/ut_trace TKeyValueTracingTest.*
1010
ydb/core/kqp/provider/ut KikimrIcGateway.TestLoadBasicSecretValueFromExternalDataSourceMetadata
11+
ydb/core/kqp/ut/join KqpJoinOrder.Chain65Nodes
1112
ydb/core/kqp/ut/olap KqpOlapBlobsSharing.*
1213
ydb/core/kqp/ut/olap KqpOlapStatistics.StatsUsageWithTTL
1314
ydb/core/kqp/ut/pg KqpPg.CreateIndex
@@ -17,6 +18,10 @@ ydb/core/kqp/ut/tx KqpSnapshotRead.ReadOnlyTxWithIndexCommitsOnConcurrentWrite+w
1718
ydb/core/kqp/ut/tx KqpSinkTx.InvalidateOnError
1819
ydb/core/kqp/ut/query KqpLimits.QueryReplySize
1920
ydb/core/kqp/ut/query KqpQuery.QueryTimeout
21+
ydb/core/kqp/ut/service KqpQueryService.TableSink_OlapRWQueries
22+
ydb/core/kqp/ut/service KqpQueryService.TableSink_OltpReplace+HasSecondaryIndex
23+
ydb/core/kqp/ut/query KqpQuery.OlapCreateAsSelect_Complex
24+
ydb/core/kqp/ut/query KqpQuery.OlapCreateAsSelect_Simple
2025
ydb/core/kqp/ut/scan KqpRequestContext.TraceIdInErrorMessage
2126
ydb/core/kqp/ut/scheme KqpOlapScheme.TenThousandColumns
2227
ydb/core/kqp/ut/scheme KqpScheme.AlterAsyncReplication
@@ -26,6 +31,8 @@ ydb/core/kqp/ut/scheme [15/50]*
2631
ydb/core/kqp/ut/scheme [44/50]*
2732
ydb/core/kqp/ut/service KqpQueryService.ExecuteQueryPgTableSelect
2833
ydb/core/kqp/ut/service KqpQueryService.QueryOnClosedSession
34+
ydb/core/kqp/ut/service KqpQueryService.TableSink_OltpUpdate
35+
ydb/core/kqp/ut/service KqpQueryService.TableSink_Htap*
2936
ydb/core/kqp/ut/service KqpService.CloseSessionsWithLoad
3037
ydb/core/kqp/ut/service [38/50]*
3138
ydb/core/kqp/ut/service KqpQueryService.TableSink_OltpUpdate

.gitignore

+3
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,9 @@ __pycache__/
2626
*.pb.h
2727
*.pb.cc
2828

29+
# Other generated
30+
*.fbs.h
31+
2932
# MacOS specific
3033
.DS_Store
3134

library/cpp/threading/future/core/future-inl.h

+22
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,9 @@ namespace NThreading {
116116
bool HasException() const {
117117
return AtomicGet(State) == ExceptionSet;
118118
}
119+
bool IsReady() const {
120+
return AtomicGet(State) != NotReady;
121+
}
119122

120123
const T& GetValue(TDuration timeout = TDuration::Zero()) const {
121124
AccessValue(timeout, ValueRead);
@@ -297,6 +300,9 @@ namespace NThreading {
297300
bool HasException() const {
298301
return AtomicGet(State) == ExceptionSet;
299302
}
303+
bool IsReady() const {
304+
return AtomicGet(State) != NotReady;
305+
}
300306

301307
void GetValue(TDuration timeout = TDuration::Zero()) const {
302308
TAtomicBase state = AtomicGet(State);
@@ -583,6 +589,10 @@ namespace NThreading {
583589
inline bool TFuture<T>::HasException() const {
584590
return State && State->HasException();
585591
}
592+
template <typename T>
593+
inline bool TFuture<T>::IsReady() const {
594+
return State && State->IsReady();
595+
}
586596

587597
template <typename T>
588598
inline void TFuture<T>::Wait() const {
@@ -688,6 +698,9 @@ namespace NThreading {
688698
inline bool TFuture<void>::HasException() const {
689699
return State && State->HasException();
690700
}
701+
inline bool TFuture<void>::IsReady() const {
702+
return State && State->IsReady();
703+
}
691704

692705
inline void TFuture<void>::Wait() const {
693706
EnsureInitialized();
@@ -823,6 +836,11 @@ namespace NThreading {
823836
return State && State->HasException();
824837
}
825838

839+
template <typename T>
840+
inline bool TPromise<T>::IsReady() const {
841+
return State && State->IsReady();
842+
}
843+
826844
template <typename T>
827845
inline void TPromise<T>::SetException(const TString& e) {
828846
EnsureInitialized();
@@ -904,6 +922,10 @@ namespace NThreading {
904922
return State && State->HasException();
905923
}
906924

925+
inline bool TPromise<void>::IsReady() const {
926+
return State && State->IsReady();
927+
}
928+
907929
inline void TPromise<void>::SetException(const TString& e) {
908930
EnsureInitialized();
909931
State->SetException(std::make_exception_ptr(yexception() << e));

library/cpp/threading/future/core/future.h

+22
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,12 @@ namespace NThreading {
9898
void TryRethrow() const;
9999
bool HasException() const;
100100

101+
// returns true if exception or value was set.
102+
// allows to check readiness without locking cheker-thread
103+
// NOTE: returns true even if value was extracted from promise
104+
// good replace for HasValue() || HasException()
105+
bool IsReady() const;
106+
101107
void Wait() const;
102108
bool Wait(TDuration timeout) const;
103109
bool Wait(TInstant deadline) const;
@@ -153,6 +159,11 @@ namespace NThreading {
153159
void TryRethrow() const;
154160
bool HasException() const;
155161

162+
// returns true if exception or value was set.
163+
// allows to check readiness without locking cheker-thread
164+
// good replace for HasValue() || HasException()
165+
bool IsReady() const;
166+
156167
void Wait() const;
157168
bool Wait(TDuration timeout) const;
158169
bool Wait(TInstant deadline) const;
@@ -216,6 +227,12 @@ namespace NThreading {
216227

217228
void TryRethrow() const;
218229
bool HasException() const;
230+
231+
// returns true if exception or value was set.
232+
// allows to check readiness without locking cheker-thread
233+
// NOTE: returns true even if value was extracted from promise
234+
// good replace for HasValue() || HasException()
235+
bool IsReady() const;
219236
void SetException(const TString& e);
220237
void SetException(std::exception_ptr e);
221238
bool TrySetException(std::exception_ptr e);
@@ -256,6 +273,11 @@ namespace NThreading {
256273

257274
void TryRethrow() const;
258275
bool HasException() const;
276+
277+
// returns true if exception or value was set.
278+
// allows to check readiness without locking cheker-thread
279+
// good replace for HasValue() || HasException()
280+
bool IsReady() const;
259281
void SetException(const TString& e);
260282
void SetException(std::exception_ptr e);
261283
bool TrySetException(std::exception_ptr e);

library/cpp/threading/future/future_ut.cpp

+4
Original file line numberDiff line numberDiff line change
@@ -105,6 +105,7 @@ namespace {
105105

106106
future = MakeFuture(345);
107107
UNIT_ASSERT(future.HasValue());
108+
UNIT_ASSERT(future.IsReady());
108109
UNIT_ASSERT_EQUAL(future.GetValue(), 345);
109110
}
110111

@@ -115,6 +116,7 @@ namespace {
115116

116117
TFuture<void> future = promise.GetFuture();
117118
UNIT_ASSERT(future.HasValue());
119+
UNIT_ASSERT(future.IsReady());
118120

119121
future = MakeFuture();
120122
UNIT_ASSERT(future.HasValue());
@@ -523,6 +525,7 @@ namespace {
523525
{
524526
auto future1 = MakeErrorFuture<void>(std::make_exception_ptr(TFutureException()));
525527
UNIT_ASSERT(future1.HasException());
528+
UNIT_ASSERT(future1.IsReady());
526529
UNIT_CHECK_GENERATED_EXCEPTION(future1.GetValue(), TFutureException);
527530

528531
auto future2 = MakeErrorFuture<int>(std::make_exception_ptr(TFutureException()));
@@ -563,6 +566,7 @@ namespace {
563566
promise2.SetException("foo-exception");
564567
wait.Wait();
565568
UNIT_ASSERT(future2.HasException());
569+
UNIT_ASSERT(!future1.IsReady());
566570
UNIT_ASSERT(!future1.HasValue() && !future1.HasException());
567571
}
568572

ydb/core/driver_lib/run/kikimr_services_initializers.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -123,7 +123,7 @@
123123

124124
#include <ydb/core/sys_view/processor/processor.h>
125125
#include <ydb/core/sys_view/service/sysview_service.h>
126-
#include <ydb/core/statistics/stat_service.h>
126+
#include <ydb/core/statistics/service/service.h>
127127
#include <ydb/core/statistics/aggregator/aggregator.h>
128128

129129
#include <ydb/core/tablet/bootstrapper.h>

ydb/core/driver_lib/run/ya.make

+1-1
Original file line numberDiff line numberDiff line change
@@ -108,8 +108,8 @@ PEERDIR(
108108
ydb/core/scheme_types
109109
ydb/core/security
110110
ydb/core/security/ldap_auth_provider
111-
ydb/core/statistics
112111
ydb/core/statistics/aggregator
112+
ydb/core/statistics/service
113113
ydb/core/sys_view/processor
114114
ydb/core/sys_view/service
115115
ydb/core/tablet

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

+46
Original file line numberDiff line numberDiff line change
@@ -111,6 +111,18 @@ struct TEvKqp {
111111
struct TEvScriptRequest : public TEventLocal<TEvScriptRequest, TKqpEvents::EvScriptRequest> {
112112
TEvScriptRequest() = default;
113113

114+
const TString& GetDatabase() const {
115+
return Record.GetRequest().GetDatabase();
116+
}
117+
118+
const TString& GetDatabaseId() const {
119+
return Record.GetRequest().GetDatabaseId();
120+
}
121+
122+
void SetDatabaseId(const TString& databaseId) {
123+
Record.MutableRequest()->SetDatabaseId(databaseId);
124+
}
125+
114126
mutable NKikimrKqp::TEvQueryRequest Record;
115127
TDuration ForgetAfter;
116128
TDuration ResultsTtl;
@@ -164,6 +176,40 @@ struct TEvKqp {
164176
return issues;
165177
}
166178
};
179+
180+
struct TEvUpdateDatabaseInfo : public TEventLocal<TEvUpdateDatabaseInfo, TKqpEvents::EvUpdateDatabaseInfo> {
181+
TEvUpdateDatabaseInfo(const TString& database, Ydb::StatusIds::StatusCode status, NYql::TIssues issues)
182+
: Status(status)
183+
, Database(database)
184+
, Issues(std::move(issues))
185+
{}
186+
187+
TEvUpdateDatabaseInfo(const TString& database, const TString& databaseId, bool serverless)
188+
: Status(Ydb::StatusIds::SUCCESS)
189+
, Database(database)
190+
, DatabaseId(databaseId)
191+
, Serverless(serverless)
192+
, Issues({})
193+
{}
194+
195+
Ydb::StatusIds::StatusCode Status;
196+
TString Database;
197+
TString DatabaseId;
198+
bool Serverless = false;
199+
NYql::TIssues Issues;
200+
};
201+
202+
struct TEvDelayedRequestError : public TEventLocal<TEvDelayedRequestError, TKqpEvents::EvDelayedRequestError> {
203+
TEvDelayedRequestError(THolder<IEventHandle> requestEvent, Ydb::StatusIds::StatusCode status, NYql::TIssues issues)
204+
: RequestEvent(std::move(requestEvent))
205+
, Status(status)
206+
, Issues(std::move(issues))
207+
{}
208+
209+
THolder<IEventHandle> RequestEvent;
210+
Ydb::StatusIds::StatusCode Status;
211+
NYql::TIssues Issues;
212+
};
167213
};
168214

169215
} // namespace NKikimr::NKqp

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

+9
Original file line numberDiff line numberDiff line change
@@ -353,6 +353,14 @@ struct TEvQueryRequest: public NActors::TEventLocal<TEvQueryRequest, TKqpEvents:
353353
return PoolConfig;
354354
}
355355

356+
const TString& GetDatabaseId() const {
357+
return DatabaseId ? DatabaseId : Record.GetRequest().GetDatabaseId();
358+
}
359+
360+
void SetDatabaseId(const TString& databaseId) {
361+
DatabaseId = databaseId;
362+
}
363+
356364
mutable NKikimrKqp::TEvQueryRequest Record;
357365

358366
private:
@@ -365,6 +373,7 @@ struct TEvQueryRequest: public NActors::TEventLocal<TEvQueryRequest, TKqpEvents:
365373
mutable TIntrusiveConstPtr<NACLib::TUserToken> Token_;
366374
TActorId RequestActorId;
367375
TString Database;
376+
TString DatabaseId;
368377
TString SessionId;
369378
TString YqlText;
370379
TString QueryId;

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

+34-18
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

0 commit comments

Comments
 (0)