diff options
author | gvit <gvit@ydb.tech> | 2022-11-01 17:31:52 +0300 |
---|---|---|
committer | gvit <gvit@ydb.tech> | 2022-11-01 17:31:52 +0300 |
commit | e1fc222ef76a75694f8b5fb27e35b77c7b36399d (patch) | |
tree | 6a962473d25528bfa09f0b849a8c07a6f79d098b | |
parent | 3a44612c9dbed9010f65168ae8b8bcbc855ef8f8 (diff) | |
download | ydb-e1fc222ef76a75694f8b5fb27e35b77c7b36399d.tar.gz |
remove experimental service from ydb
24 files changed, 28 insertions, 649 deletions
diff --git a/ydb/core/driver_lib/run/run.cpp b/ydb/core/driver_lib/run/run.cpp index 7ad5a716843..21e0a25dcee 100644 --- a/ydb/core/driver_lib/run/run.cpp +++ b/ydb/core/driver_lib/run/run.cpp @@ -94,7 +94,6 @@ #include <ydb/services/rate_limiter/grpc_service.h> #include <ydb/services/ydb/ydb_clickhouse_internal.h> #include <ydb/services/ydb/ydb_dummy.h> -#include <ydb/services/ydb/ydb_experimental.h> #include <ydb/services/ydb/ydb_export.h> #include <ydb/services/ydb/ydb_import.h> #include <ydb/services/ydb/ydb_logstore.h> @@ -552,8 +551,6 @@ void TKikimrRunner::InitializeGRpc(const TKikimrRunConfig& runConfig) { names["pqcd"] = &hasPQCD; TServiceCfg hasS3Internal = false; names["s3_internal"] = &hasS3Internal; - TServiceCfg hasExperimental = false; - names["experimental"] = &hasExperimental; TServiceCfg hasClickhouseInternal = services.empty(); names["clickhouse_internal"] = &hasClickhouseInternal; TServiceCfg hasRateLimiter = false; @@ -695,11 +692,6 @@ void TKikimrRunner::InitializeGRpc(const TKikimrRunConfig& runConfig) { hasTableService.IsRlAllowed())); } - if (hasExperimental) { - server.AddService(new NGRpcService::TGRpcYdbExperimentalService(ActorSystem.Get(), Counters, - grpcRequestProxyId, hasExperimental.IsRlAllowed())); - } - if (hasClickhouseInternal) { server.AddService(new NGRpcService::TGRpcYdbClickhouseInternalService(ActorSystem.Get(), Counters, AppData->InFlightLimiterRegistry, grpcRequestProxyId, hasClickhouseInternal.IsRlAllowed())); diff --git a/ydb/core/grpc_services/grpc_request_proxy.cpp b/ydb/core/grpc_services/grpc_request_proxy.cpp index 689848a5bdf..2cacc71877d 100644 --- a/ydb/core/grpc_services/grpc_request_proxy.cpp +++ b/ydb/core/grpc_services/grpc_request_proxy.cpp @@ -524,7 +524,6 @@ void TGRpcRequestProxyImpl::StateFunc(TAutoPtr<IEventHandle>& ev, const TActorCo HFunc(TEvListEndpointsRequest, PreHandle); HFunc(TEvS3ListingRequest, PreHandle); HFunc(TEvBiStreamPingRequest, PreHandle); - HFunc(TEvExperimentalStreamQueryRequest, PreHandle); HFunc(TEvStreamPQWriteRequest, PreHandle); HFunc(TEvStreamPQMigrationReadRequest, PreHandle); HFunc(TEvStreamTopicWriteRequest, PreHandle); diff --git a/ydb/core/grpc_services/grpc_request_proxy.h b/ydb/core/grpc_services/grpc_request_proxy.h index 8c7ee34e39f..c61c15fb7aa 100644 --- a/ydb/core/grpc_services/grpc_request_proxy.h +++ b/ydb/core/grpc_services/grpc_request_proxy.h @@ -52,7 +52,6 @@ protected: void Handle(TEvS3ListingRequest::TPtr& ev, const TActorContext& ctx); void Handle(TEvBiStreamPingRequest::TPtr& ev, const TActorContext& ctx); - void Handle(TEvExperimentalStreamQueryRequest::TPtr& ev, const TActorContext& ctx); void Handle(TEvStreamPQWriteRequest::TPtr& ev, const TActorContext& ctx); void Handle(TEvStreamPQMigrationReadRequest::TPtr& ev, const TActorContext& ctx); void Handle(TEvStreamTopicWriteRequest::TPtr& ev, const TActorContext& ctx); diff --git a/ydb/core/grpc_services/rpc_calls.h b/ydb/core/grpc_services/rpc_calls.h index 075b573b543..7614381de74 100644 --- a/ydb/core/grpc_services/rpc_calls.h +++ b/ydb/core/grpc_services/rpc_calls.h @@ -10,7 +10,6 @@ #include <ydb/public/api/protos/ydb_coordination.pb.h> #include <ydb/public/api/protos/ydb_discovery.pb.h> -#include <ydb/public/api/protos/ydb_experimental.pb.h> #include <ydb/public/api/protos/ydb_monitoring.pb.h> #include <ydb/public/api/protos/ydb_status_codes.pb.h> #include <ydb/public/api/protos/ydb_table.pb.h> @@ -52,7 +51,6 @@ using TEvListEndpointsRequest = TGRpcRequestWrapper<TRpcServices::EvListEndpoint using TEvS3ListingRequest = TGRpcRequestWrapper<TRpcServices::EvS3Listing, Ydb::S3Internal::S3ListingRequest, Ydb::S3Internal::S3ListingResponse, true>; using TEvBiStreamPingRequest = TGRpcRequestBiStreamWrapper<TRpcServices::EvBiStreamPing, Draft::Dummy::PingRequest, Draft::Dummy::PingResponse>; -using TEvExperimentalStreamQueryRequest = TGRpcRequestWrapper<TRpcServices::EvExperimentalStreamQuery, Ydb::Experimental::ExecuteStreamQueryRequest, Ydb::Experimental::ExecuteStreamQueryResponse, false>; using TEvStreamPQWriteRequest = TGRpcRequestBiStreamWrapper<TRpcServices::EvStreamPQWrite, Ydb::PersQueue::V1::StreamingWriteClientMessage, Ydb::PersQueue::V1::StreamingWriteServerMessage>; using TEvStreamPQMigrationReadRequest = TGRpcRequestBiStreamWrapper<TRpcServices::EvStreamPQMigrationRead, Ydb::PersQueue::V1::MigrationStreamingReadClientMessage, Ydb::PersQueue::V1::MigrationStreamingReadServerMessage>; using TEvStreamTopicWriteRequest = TGRpcRequestBiStreamWrapper<TRpcServices::EvStreamTopicWrite, Ydb::Topic::StreamWriteMessage::FromClient, Ydb::Topic::StreamWriteMessage::FromServer, TRateLimiterMode::RuManual>; diff --git a/ydb/core/grpc_services/rpc_stream_execute_scan_query.cpp b/ydb/core/grpc_services/rpc_stream_execute_scan_query.cpp index 2188b227a8f..8b85c9bd1f2 100644 --- a/ydb/core/grpc_services/rpc_stream_execute_scan_query.cpp +++ b/ydb/core/grpc_services/rpc_stream_execute_scan_query.cpp @@ -41,23 +41,6 @@ struct TParseRequestError { , Issues(issues) {} }; -bool NeedReportStats(const Ydb::Experimental::ExecuteStreamQueryRequest& req) { - switch (req.profile_mode()) { - case Experimental::ExecuteStreamQueryRequest_ProfileMode_PROFILE_MODE_UNSPECIFIED: - case Experimental::ExecuteStreamQueryRequest_ProfileMode_NONE: - return false; - - case Experimental::ExecuteStreamQueryRequest_ProfileMode_BASIC: - case Experimental::ExecuteStreamQueryRequest_ProfileMode_FULL: - case Experimental::ExecuteStreamQueryRequest_ProfileMode_PROFILE: - return true; - - case Experimental::ExecuteStreamQueryRequest_ProfileMode_ExecuteStreamQueryRequest_ProfileMode_INT_MIN_SENTINEL_DO_NOT_USE_: - case Experimental::ExecuteStreamQueryRequest_ProfileMode_ExecuteStreamQueryRequest_ProfileMode_INT_MAX_SENTINEL_DO_NOT_USE_: - YQL_ENSURE(false); - } -} - bool NeedReportStats(const Ydb::Table::ExecuteScanQueryRequest& req) { switch (req.mode()) { case ExecuteScanQueryRequest_Mode_MODE_UNSPECIFIED: @@ -129,52 +112,6 @@ bool FillKqpParameters(const ::google::protobuf::Map<TString, Ydb::TypedValue>& return true; } -bool FillKqpRequest(const Ydb::Experimental::ExecuteStreamQueryRequest& req, NKikimrKqp::TEvQueryRequest& kqpRequest, - TParseRequestError& error) -{ - if (!FillKqpParameters(req.parameters(), *kqpRequest.MutableRequest()->MutableParameters(), error)) { - return false; - } - - auto& query = req.yql_text(); - - NYql::TIssues issues; - if (!CheckQuery(query, issues)) { - error = TParseRequestError(Ydb::StatusIds::BAD_REQUEST, issues); - return false; - } - - if (req.explain()) { - kqpRequest.MutableRequest()->SetAction(NKikimrKqp::QUERY_ACTION_EXPLAIN); - } else { - kqpRequest.MutableRequest()->SetAction(NKikimrKqp::QUERY_ACTION_EXECUTE); - } - - kqpRequest.MutableRequest()->SetType(NKikimrKqp::QUERY_TYPE_SQL_SCAN); - kqpRequest.MutableRequest()->SetQuery(query); - kqpRequest.MutableRequest()->SetKeepSession(false); - switch (req.profile_mode()) { - case Ydb::Experimental::ExecuteStreamQueryRequest_ProfileMode_PROFILE_MODE_UNSPECIFIED: - case Ydb::Experimental::ExecuteStreamQueryRequest_ProfileMode_NONE: - kqpRequest.MutableRequest()->SetCollectStats(Ydb::Table::QueryStatsCollection::STATS_COLLECTION_NONE); - break; - case Ydb::Experimental::ExecuteStreamQueryRequest_ProfileMode_BASIC: - kqpRequest.MutableRequest()->SetCollectStats(Ydb::Table::QueryStatsCollection::STATS_COLLECTION_BASIC); - break; - case Ydb::Experimental::ExecuteStreamQueryRequest_ProfileMode_FULL: - kqpRequest.MutableRequest()->SetCollectStats(Ydb::Table::QueryStatsCollection::STATS_COLLECTION_FULL); - break; - case Ydb::Experimental::ExecuteStreamQueryRequest_ProfileMode_PROFILE: - kqpRequest.MutableRequest()->SetCollectStats(Ydb::Table::QueryStatsCollection::STATS_COLLECTION_PROFILE); - break; - default: - YQL_ENSURE(false, "Unknown profile_mode " - << Ydb::Experimental::ExecuteStreamQueryRequest_ProfileMode_Name(req.profile_mode())); - } - - return true; -} - bool FillKqpRequest(const Ydb::Table::ExecuteScanQueryRequest& req, NKikimrKqp::TEvQueryRequest& kqpRequest, TParseRequestError& error) { @@ -233,14 +170,6 @@ bool FillKqpRequest(const Ydb::Table::ExecuteScanQueryRequest& req, NKikimrKqp:: return true; } -bool FillProfile(Ydb::Experimental::ExecuteStreamQueryResponse& response, - const NYql::NDqProto::TDqExecutionStats& profile) -{ - response.set_status(Ydb::StatusIds::SUCCESS); - response.mutable_result()->set_profile(profile.Utf8DebugString()); - return true; -} - bool FillProfile(Ydb::Table::ExecuteScanQueryPartialResponse& response, const NYql::NDqProto::TDqExecutionStats& profile) { @@ -395,43 +324,27 @@ private: auto& kqpResponse = record.GetResponse(); response.set_status(Ydb::StatusIds::SUCCESS); - if constexpr (std::is_same_v<TResponse, Ydb::Table::ExecuteScanQueryPartialResponse>) { - bool reportStats = NeedReportStats(*Request_->GetProtoRequest()); - bool reportPlan = reportStats && NeedReportPlan(*Request_->GetProtoRequest()); + bool reportStats = NeedReportStats(*Request_->GetProtoRequest()); + bool reportPlan = reportStats && NeedReportPlan(*Request_->GetProtoRequest()); - if (reportStats) { - if (kqpResponse.HasQueryStats()) { - for (const auto& execStats: ExecutionProfiles_) { - record.MutableResponse()->MutableQueryStats()->AddExecutions()->Swap(execStats.get()); - } - - record.MutableResponse()->SetQueryPlan(reportPlan - ? SerializeAnalyzePlan(kqpResponse.GetQueryStats()) - : ""); - - FillQueryStats(*response.mutable_result()->mutable_query_stats(), kqpResponse); - ExecutionProfiles_.clear(); - } else if (reportPlan) { - response.mutable_result()->mutable_query_stats()->set_query_plan(kqpResponse.GetQueryPlan()); + if (reportStats) { + if (kqpResponse.HasQueryStats()) { + for (const auto& execStats: ExecutionProfiles_) { + record.MutableResponse()->MutableQueryStats()->AddExecutions()->Swap(execStats.get()); } - if (reportPlan) { - response.mutable_result()->mutable_query_stats()->set_query_ast(kqpResponse.GetQueryAst()); - } + record.MutableResponse()->SetQueryPlan(reportPlan + ? SerializeAnalyzePlan(kqpResponse.GetQueryStats()) + : ""); - Y_PROTOBUF_SUPPRESS_NODISCARD response.SerializeToString(&out); - Request_->SendSerializedResult(std::move(out), record.GetYdbStatus()); + FillQueryStats(*response.mutable_result()->mutable_query_stats(), kqpResponse); + ExecutionProfiles_.clear(); + } else if (reportPlan) { + response.mutable_result()->mutable_query_stats()->set_query_plan(kqpResponse.GetQueryPlan()); } - } else { - if (kqpResponse.HasQueryStats()) { - NKqpProto::TKqpStatsQuery queryStats; - for (const auto& execStats: ExecutionProfiles_) { - /* copy as ExecutionProfiles_ vector will be used and cleared later */ - queryStats.AddExecutions()->CopyFrom(*execStats); - } - response.mutable_result()->set_query_plan(SerializeAnalyzePlan(queryStats)); - } else { - response.mutable_result()->set_query_plan(kqpResponse.GetQueryPlan()); + + if (reportPlan) { + response.mutable_result()->mutable_query_stats()->set_query_ast(kqpResponse.GetQueryAst()); } Y_PROTOBUF_SUPPRESS_NODISCARD response.SerializeToString(&out); @@ -635,12 +548,6 @@ private: } // namespace -void TGRpcRequestProxy::Handle(TEvExperimentalStreamQueryRequest::TPtr& ev, const TActorContext& ctx) { - ui64 rpcBufferSize = GetAppConfig().GetTableServiceConfig().GetResourceManager().GetChannelBufferSize(); - ctx.Register(new TStreamExecuteScanQueryRPC<TEvExperimentalStreamQueryRequest, - Ydb::Experimental::ExecuteStreamQueryResponse>(ev->Release().Release(), rpcBufferSize)); -} - void DoExecuteScanQueryRequest(std::unique_ptr<IRequestNoOpCtx> p, const IFacilityProvider& f) { ui64 rpcBufferSize = f.GetAppConfig().GetTableServiceConfig().GetResourceManager().GetChannelBufferSize(); auto* req = dynamic_cast<TEvStreamExecuteScanQueryRequest*>(p.release()); diff --git a/ydb/core/kqp/ut/common/kqp_ut_common.cpp b/ydb/core/kqp/ut/common/kqp_ut_common.cpp index 0dd55ca0d03..afb1f97de00 100644 --- a/ydb/core/kqp/ut/common/kqp_ut_common.cpp +++ b/ydb/core/kqp/ut/common/kqp_ut_common.cpp @@ -534,22 +534,6 @@ void FillProfile(NYdb::NTable::TScanQueryPart& streamPart, NYson::TYsonWriter& w Y_UNUSED(profileIndex); } -void FillProfile(NYdb::NExperimental::TStreamPart& streamPart, NYson::TYsonWriter& writer, TVector<TString>* profiles, - ui32 profileIndex) -{ - if (streamPart.HasProfile()) { - if (profiles) { - profiles->emplace_back(streamPart.ExtractProfile()); - } else { - writer.OnListItem(); - writer.OnBeginMap(); - writer.OnKeyedItem(TStringBuilder() << "_profile_" << profileIndex); - writer.OnStringScalar(streamPart.ExtractProfile()); - writer.OnEndMap(); - } - } -} - void PrintResultSet(const NYdb::TResultSet& resultSet, NYson::TYsonWriter& writer) { auto columns = resultSet.GetColumnsMeta(); @@ -594,10 +578,6 @@ TString StreamResultToYsonImpl(TIterator& it, TVector<TString>* profiles) { return out.Str(); } -TString StreamResultToYson(NYdb::NExperimental::TStreamPartIterator& it, TVector<TString>* profiles) { - return StreamResultToYsonImpl(it, profiles); -} - TString StreamResultToYson(NYdb::NTable::TScanQueryPartIterator& it) { return StreamResultToYsonImpl(it, nullptr); } @@ -712,10 +692,6 @@ TCollectedStreamResult CollectStreamResultImpl(TIterator& it) { return res; } -TCollectedStreamResult CollectStreamResult(NYdb::NExperimental::TStreamPartIterator& it) { - return CollectStreamResultImpl(it); -} - TCollectedStreamResult CollectStreamResult(NYdb::NTable::TScanQueryPartIterator& it) { return CollectStreamResultImpl(it); } diff --git a/ydb/core/kqp/ut/common/kqp_ut_common.h b/ydb/core/kqp/ut/common/kqp_ut_common.h index da640449922..d2a1dedd853 100644 --- a/ydb/core/kqp/ut/common/kqp_ut_common.h +++ b/ydb/core/kqp/ut/common/kqp_ut_common.h @@ -2,7 +2,6 @@ #include <ydb/core/testlib/test_client.h> -#include <ydb/public/lib/experimental/ydb_experimental.h> #include <ydb/public/lib/yson_value/ydb_yson_value.h> #include <ydb/public/sdk/cpp/client/ydb_scheme/scheme.h> #include <ydb/public/sdk/cpp/client/ydb_table/table.h> @@ -170,7 +169,6 @@ struct TCollectedStreamResult { ui64 RowsCount = 0; }; -TCollectedStreamResult CollectStreamResult(NYdb::NExperimental::TStreamPartIterator& it); TCollectedStreamResult CollectStreamResult(NYdb::NTable::TScanQueryPartIterator& it); enum class EIndexTypeSql { @@ -231,7 +229,6 @@ inline NYdb::NTable::TDataQueryResult ExecQueryAndTestResult(NYdb::NTable::TSess return ExecQueryAndTestResult(session, query, NYdb::TParamsBuilder().Build(), expectedYson); } -TString StreamResultToYson(NYdb::NExperimental::TStreamPartIterator& it, TVector<TString>* profiles = nullptr); TString StreamResultToYson(NYdb::NTable::TScanQueryPartIterator& it); TString StreamResultToYson(NYdb::NScripting::TYqlResultPartIterator& it); TString StreamResultToYson(NYdb::NTable::TTablePartIterator& it); diff --git a/ydb/core/kqp/ut/kqp_ne_flowcontrol_ut.cpp b/ydb/core/kqp/ut/kqp_ne_flowcontrol_ut.cpp index 45a675b0abf..9bc95479d0c 100644 --- a/ydb/core/kqp/ut/kqp_ne_flowcontrol_ut.cpp +++ b/ydb/core/kqp/ut/kqp_ne_flowcontrol_ut.cpp @@ -2,8 +2,6 @@ #include <ydb/core/protos/kqp.pb.h> #include <ydb/core/kqp/counters/kqp_counters.h> -#include <ydb/public/lib/experimental/ydb_experimental.h> - #include <ydb/library/yql/dq/actors/compute/dq_compute_actor.h> namespace NKikimr::NKqp { @@ -143,9 +141,8 @@ void SlowClient() { } } - NExperimental::TStreamQueryClient db(kikimr.GetDriver()); - - auto it = db.ExecuteStreamQuery("SELECT Key, Value FROM `/Root/KeyValue`").GetValueSync(); + auto db = kikimr.GetTableClient(); + auto it = db.StreamExecuteScanQuery("SELECT Key, Value FROM `/Root/KeyValue`").GetValueSync(); auto part = it.ReadNext().GetValueSync(); auto counters = kikimr.GetTestServer().GetRuntime()->GetAppData(0).Counters; diff --git a/ydb/core/kqp/ut/kqp_scan_ut.cpp b/ydb/core/kqp/ut/kqp_scan_ut.cpp index ed666347f19..048fd538987 100644 --- a/ydb/core/kqp/ut/kqp_scan_ut.cpp +++ b/ydb/core/kqp/ut/kqp_scan_ut.cpp @@ -2,8 +2,6 @@ #include <ydb/core/kqp/counters/kqp_counters.h> #include <ydb/core/tx/scheme_cache/scheme_cache.h> -#include <ydb/public/lib/experimental/ydb_experimental.h> - #include <ydb/library/yql/dq/actors/compute/dq_compute_actor.h> #include <util/generic/size_literals.h> diff --git a/ydb/core/kqp/ut/kqp_sys_col_ut.cpp b/ydb/core/kqp/ut/kqp_sys_col_ut.cpp index 402ce5576d3..e7cc5b496f8 100644 --- a/ydb/core/kqp/ut/kqp_sys_col_ut.cpp +++ b/ydb/core/kqp/ut/kqp_sys_col_ut.cpp @@ -26,13 +26,6 @@ TDataQueryResult ExecuteDataQuery(const TString& query) { return ExecuteDataQuery(kikimr, query); } -TStreamPartIterator ExecuteStreamQuery(TKikimrRunner& kikimr, const TString& query) { - NExperimental::TStreamQueryClient db{ kikimr.GetDriver() }; - auto it = db.ExecuteStreamQuery(query).GetValueSync(); - UNIT_ASSERT_C(it.IsSuccess(), it.GetIssues().ToString()); - return it; -} - void SelectRowAsteriskCommon() { TStringBuilder query; query << R"( @@ -45,6 +38,13 @@ void SelectRowAsteriskCommon() { FormatResultSetYson(result.GetResultSet(0))); } +TScanQueryPartIterator ExecuteStreamQuery(TKikimrRunner& kikimr, const TString& query) { + auto db = kikimr.GetTableClient(); + auto it = db.StreamExecuteScanQuery(query).GetValueSync(); + UNIT_ASSERT_C(it.IsSuccess(), it.GetIssues().ToString()); + return it; +} + void SelectRowByIdCommon() { TStringBuilder query; query << R"( diff --git a/ydb/core/kqp/ut/kqp_table_predicate_ut.cpp b/ydb/core/kqp/ut/kqp_table_predicate_ut.cpp index c3f31024c47..d772a4af766 100644 --- a/ydb/core/kqp/ut/kqp_table_predicate_ut.cpp +++ b/ydb/core/kqp/ut/kqp_table_predicate_ut.cpp @@ -300,7 +300,7 @@ void RunPredicateTest(const std::vector<TString>& predicates, bool withNulls) { ).GetValueSync().IsSuccess() ); - NExperimental::TStreamQueryClient streamDb(kikimr.GetDriver()); + auto streamDb = kikimr.GetTableClient(); for (auto& item: predicates) { TString disablePredicateExtractor = R"( @@ -314,11 +314,11 @@ void RunPredicateTest(const std::vector<TString>& predicates, bool withNulls) { Cerr << "Execute query" << Endl << query << Endl; - auto it = streamDb.ExecuteStreamQuery(disablePredicateExtractor + query).GetValueSync(); + auto it = streamDb.StreamExecuteScanQuery(disablePredicateExtractor + query).GetValueSync(); UNIT_ASSERT(it.IsSuccess()); auto expectedYson = StreamResultToYson(it); - it = streamDb.ExecuteStreamQuery(query).GetValueSync(); + it = streamDb.StreamExecuteScanQuery(query).GetValueSync(); UNIT_ASSERT(it.IsSuccess()); auto resultYson = StreamResultToYson(it); @@ -1212,7 +1212,6 @@ Y_UNIT_TEST_SUITE(KqpTablePredicate) { Y_UNIT_TEST(MergeRanges) { TKikimrRunner kikimr; - NExperimental::TStreamQueryClient streamDb(kikimr.GetDriver()); auto db = kikimr.GetTableClient(); auto session = db.CreateSession().GetValueSync().GetSession(); TStreamExecScanQuerySettings scanSettings; diff --git a/ydb/core/testlib/test_client.cpp b/ydb/core/testlib/test_client.cpp index 77c99770b95..d3ace1b5383 100644 --- a/ydb/core/testlib/test_client.cpp +++ b/ydb/core/testlib/test_client.cpp @@ -16,7 +16,6 @@ #include <ydb/core/grpc_services/grpc_mon.h> #include <ydb/services/ydb/ydb_clickhouse_internal.h> #include <ydb/services/ydb/ydb_dummy.h> -#include <ydb/services/ydb/ydb_experimental.h> #include <ydb/services/ydb/ydb_export.h> #include <ydb/services/ydb/ydb_import.h> #include <ydb/services/ydb/ydb_operation.h> @@ -323,7 +322,6 @@ namespace Tests { GRpcServer->AddService(new NKesus::TKesusGRpcService(system, counters, grpcRequestProxyId, true)); GRpcServer->AddService(new NGRpcService::TGRpcCmsService(system, counters, grpcRequestProxyId, true)); GRpcServer->AddService(new NGRpcService::TGRpcDiscoveryService(system, counters, grpcRequestProxyId, true)); - GRpcServer->AddService(new NGRpcService::TGRpcYdbExperimentalService(system, counters, grpcRequestProxyId, true)); GRpcServer->AddService(new NGRpcService::TGRpcYdbClickhouseInternalService(system, counters, appData.InFlightLimiterRegistry, grpcRequestProxyId, true)); GRpcServer->AddService(new NGRpcService::TGRpcYdbS3InternalService(system, counters, grpcRequestProxyId, true)); GRpcServer->AddService(new NQuoter::TRateLimiterGRpcService(system, counters, grpcRequestProxyId)); diff --git a/ydb/public/api/grpc/draft/CMakeLists.txt b/ydb/public/api/grpc/draft/CMakeLists.txt index 6da5beb110c..bccbdfa0749 100644 --- a/ydb/public/api/grpc/draft/CMakeLists.txt +++ b/ydb/public/api/grpc/draft/CMakeLists.txt @@ -23,7 +23,6 @@ target_proto_messages(api-grpc-draft PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/api/grpc/draft/ydb_clickhouse_internal_v1.proto ${CMAKE_SOURCE_DIR}/ydb/public/api/grpc/draft/ydb_persqueue_v1.proto ${CMAKE_SOURCE_DIR}/ydb/public/api/grpc/draft/ydb_datastreams_v1.proto - ${CMAKE_SOURCE_DIR}/ydb/public/api/grpc/draft/ydb_experimental_v1.proto ${CMAKE_SOURCE_DIR}/ydb/public/api/grpc/draft/ydb_s3_internal_v1.proto ${CMAKE_SOURCE_DIR}/ydb/public/api/grpc/draft/ydb_long_tx_v1.proto ${CMAKE_SOURCE_DIR}/ydb/public/api/grpc/draft/ydb_logstore_v1.proto diff --git a/ydb/public/api/grpc/draft/ydb_experimental_v1.proto b/ydb/public/api/grpc/draft/ydb_experimental_v1.proto deleted file mode 100644 index 003ab6d671a..00000000000 --- a/ydb/public/api/grpc/draft/ydb_experimental_v1.proto +++ /dev/null @@ -1,11 +0,0 @@ -syntax = "proto3"; - -package Ydb.Experimental.V1; -option java_package = "com.yandex.ydb.experimental.v1"; - -import "ydb/public/api/protos/ydb_experimental.proto"; - -service ExperimentalService { - rpc ExecuteStreamQuery(Experimental.ExecuteStreamQueryRequest) returns (stream Experimental.ExecuteStreamQueryResponse); -} - diff --git a/ydb/public/api/protos/CMakeLists.txt b/ydb/public/api/protos/CMakeLists.txt index 8bc7dd907c3..bfc413e374f 100644 --- a/ydb/public/api/protos/CMakeLists.txt +++ b/ydb/public/api/protos/CMakeLists.txt @@ -33,7 +33,6 @@ target_proto_messages(api-protos PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/api/protos/ydb_common.proto ${CMAKE_SOURCE_DIR}/ydb/public/api/protos/ydb_coordination.proto ${CMAKE_SOURCE_DIR}/ydb/public/api/protos/ydb_discovery.proto - ${CMAKE_SOURCE_DIR}/ydb/public/api/protos/ydb_experimental.proto ${CMAKE_SOURCE_DIR}/ydb/public/api/protos/ydb_export.proto ${CMAKE_SOURCE_DIR}/ydb/public/api/protos/ydb_formats.proto ${CMAKE_SOURCE_DIR}/ydb/public/api/protos/ydb_import.proto diff --git a/ydb/public/api/protos/ydb_experimental.proto b/ydb/public/api/protos/ydb_experimental.proto deleted file mode 100644 index c36f9e2c34d..00000000000 --- a/ydb/public/api/protos/ydb_experimental.proto +++ /dev/null @@ -1,45 +0,0 @@ -syntax = "proto3"; -option cc_enable_arenas = true; - -package Ydb.Experimental; -option java_package = "com.yandex.ydb.experimental"; -option java_outer_classname = "ExperimentalProtos"; - -import "ydb/public/api/protos/ydb_issue_message.proto"; -import "ydb/public/api/protos/ydb_status_codes.proto"; -import "ydb/public/api/protos/ydb_value.proto"; - - -message ExecuteStreamQueryRequest { - string yql_text = 1; - map<string, TypedValue> parameters = 2; - - enum ProfileMode { - PROFILE_MODE_UNSPECIFIED = 0; - NONE = 1; - BASIC = 2; - FULL = 3; - PROFILE = 4; - } - - ProfileMode profile_mode = 3; - bool explain = 4; -} - -message ExecuteStreamQueryResponse { - StatusIds.StatusCode status = 1; - repeated Ydb.Issue.IssueMessage issues = 2; - ExecuteStreamQueryResult result = 3; -} - -message StreamQueryProgress { -} - -message ExecuteStreamQueryResult { - oneof result { - Ydb.ResultSet result_set = 1; - string profile = 2; - StreamQueryProgress progress = 3; - string query_plan = 4; - } -} diff --git a/ydb/public/lib/experimental/CMakeLists.txt b/ydb/public/lib/experimental/CMakeLists.txt index 7a520873bb6..dc130476cef 100644 --- a/ydb/public/lib/experimental/CMakeLists.txt +++ b/ydb/public/lib/experimental/CMakeLists.txt @@ -18,7 +18,6 @@ target_link_libraries(public-lib-experimental PUBLIC ) target_sources(public-lib-experimental PRIVATE ${CMAKE_SOURCE_DIR}/ydb/public/lib/experimental/ydb_clickhouse_internal.cpp - ${CMAKE_SOURCE_DIR}/ydb/public/lib/experimental/ydb_experimental.cpp ${CMAKE_SOURCE_DIR}/ydb/public/lib/experimental/ydb_logstore.cpp ${CMAKE_SOURCE_DIR}/ydb/public/lib/experimental/ydb_s3_internal.cpp ) diff --git a/ydb/public/lib/experimental/ydb_experimental.cpp b/ydb/public/lib/experimental/ydb_experimental.cpp deleted file mode 100644 index d52d492d666..00000000000 --- a/ydb/public/lib/experimental/ydb_experimental.cpp +++ /dev/null @@ -1,197 +0,0 @@ -#include "ydb_experimental.h" - -#define INCLUDE_YDB_INTERNAL_H -#include <ydb/public/sdk/cpp/client/impl/ydb_internal/make_request/make.h> -#undef INCLUDE_YDB_INTERNAL_H - -#include <ydb/public/api/grpc/draft/ydb_experimental_v1.grpc.pb.h> -#include <library/cpp/grpc/client/grpc_client_low.h> -#include <ydb/public/sdk/cpp/client/ydb_proto/accessor.h> -#include <ydb/public/sdk/cpp/client/ydb_common_client/impl/client.h> - -namespace NYdb { -namespace NExperimental { - -using namespace NThreading; - - -TStreamPartStatus::TStreamPartStatus(TStatus&& status) - : TStatus(std::move(status)) -{} - -bool TStreamPartStatus::EOS() const { - return GetStatus() == EStatus::CLIENT_OUT_OF_RANGE; -} - -class TStreamPartIterator::TReaderImpl { -public: - using TSelf = TStreamPartIterator::TReaderImpl; - using TResponse = Ydb::Experimental::ExecuteStreamQueryResponse; - using TStreamProcessorPtr = NGrpc::IStreamRequestReadProcessor<TResponse>::TPtr; - using TReadCallback = NGrpc::IStreamRequestReadProcessor<TResponse>::TReadCallback; - using TGRpcStatus = NGrpc::TGrpcStatus; - using TBatchReadResult = std::pair<TResponse, TGRpcStatus>; - - TReaderImpl(TStreamProcessorPtr streamProcessor, const TString& endpoint) - : StreamProcessor_(streamProcessor) - , Finished_(false) - , Endpoint_(endpoint) - {} - - ~TReaderImpl() { - StreamProcessor_->Cancel(); - } - - bool IsFinished() const { - return Finished_; - } - - TAsyncStreamPart ReadNext(std::shared_ptr<TSelf> self) { - auto promise = NThreading::NewPromise<TStreamPart>(); - // Capture self - guarantee no dtor call during the read - auto readCb = [self, promise](TGRpcStatus&& grpcStatus) mutable { - if (!grpcStatus.Ok()) { - self->Finished_ = true; - promise.SetValue({TStatus(TPlainStatus(grpcStatus, self->Endpoint_))}); - } else { - NYql::TIssues issues; - NYql::IssuesFromMessage(self->Response_.issues(), issues); - EStatus clientStatus = static_cast<EStatus>(self->Response_.status()); - TPlainStatus plainStatus{clientStatus, std::move(issues), self->Endpoint_, {}}; - TStatus status{std::move(plainStatus)}; - - if (self->Response_.result().has_result_set()) { - promise.SetValue({TResultSet(std::move(*self->Response_.mutable_result()->mutable_result_set())), - std::move(status)}); - } else if (!self->Response_.result().profile().empty()) { - promise.SetValue({std::move(*self->Response_.mutable_result()->mutable_profile()), - std::move(status)}); - } else if (!self->Response_.result().query_plan().Empty()) { - TMaybe<TString> queryPlan = self->Response_.result().query_plan(); - promise.SetValue({queryPlan, std::move(status)}); - } else if (self->Response_.result().has_progress()) { - // skip, not supported yet - } else { - promise.SetValue(std::move(status)); - } - } - }; - StreamProcessor_->Read(&Response_, readCb); - return promise.GetFuture(); - } -private: - TStreamProcessorPtr StreamProcessor_; - TResponse Response_; - bool Finished_; - TString Endpoint_; -}; - -TStreamPartIterator::TStreamPartIterator( - std::shared_ptr<TReaderImpl> impl, - TPlainStatus&& status) - : TStatus(std::move(status)) - , ReaderImpl_(impl) -{} - -TAsyncStreamPart TStreamPartIterator::ReadNext() { - if (ReaderImpl_->IsFinished()) - RaiseError("Attempt to perform read on invalid or finished stream"); - return ReaderImpl_->ReadNext(ReaderImpl_); -} - -class TStreamQueryClient::TImpl : public TClientImplCommon<TStreamQueryClient::TImpl> { -public: - using TStreamProcessorPtr = TStreamPartIterator::TReaderImpl::TStreamProcessorPtr; - - TImpl(std::shared_ptr<TGRpcConnectionsImpl>&& connections, const TCommonClientSettings& settings) - : TClientImplCommon(std::move(connections), settings) {} - - TFuture<std::pair<TPlainStatus, TStreamProcessorPtr>> ExecuteStreamQueryInternal(const TString& query, - const TParams* params, const TExecuteStreamQuerySettings& settings) - { - auto request = MakeRequest<Ydb::Experimental::ExecuteStreamQueryRequest>(); - request.set_yql_text(query); - if (params) { - *request.mutable_parameters() = params->GetProtoMap(); - } - - switch (settings.ProfileMode_) { - case EStreamQueryProfileMode::None: - request.set_profile_mode(Ydb::Experimental::ExecuteStreamQueryRequest_ProfileMode_NONE); - break; - case EStreamQueryProfileMode::Basic: - request.set_profile_mode(Ydb::Experimental::ExecuteStreamQueryRequest_ProfileMode_BASIC); - break; - case EStreamQueryProfileMode::Full: - request.set_profile_mode(Ydb::Experimental::ExecuteStreamQueryRequest_ProfileMode_FULL); - break; - case EStreamQueryProfileMode::Profile: - request.set_profile_mode(Ydb::Experimental::ExecuteStreamQueryRequest_ProfileMode_PROFILE); - break; - } - - request.set_explain(settings.Explain_); - - auto promise = NewPromise<std::pair<TPlainStatus, TStreamProcessorPtr>>(); - - Connections_->StartReadStream< - Ydb::Experimental::V1::ExperimentalService, - Ydb::Experimental::ExecuteStreamQueryRequest, - Ydb::Experimental::ExecuteStreamQueryResponse> - ( - std::move(request), - [promise] (TPlainStatus status, TStreamProcessorPtr processor) mutable { - promise.SetValue(std::make_pair(status, processor)); - }, - &Ydb::Experimental::V1::ExperimentalService::Stub::AsyncExecuteStreamQuery, - DbDriverState_, - TRpcRequestSettings::Make(settings) - ); - - return promise.GetFuture(); - } - - TAsyncStreamPartIterator ExecuteStreamQuery(const TString& query, const TParams* params, - const TExecuteStreamQuerySettings& settings) - { - auto promise = NewPromise<TStreamPartIterator>(); - - auto iteratorCallback = [promise](TFuture<std::pair<TPlainStatus, - TStreamQueryClient::TImpl::TStreamProcessorPtr>> future) mutable - { - Y_ASSERT(future.HasValue()); - auto pair = future.ExtractValue(); - promise.SetValue(TStreamPartIterator( - pair.second - ? std::make_shared<TStreamPartIterator::TReaderImpl>(pair.second, pair.first.Endpoint) - : nullptr, - std::move(pair.first)) - ); - }; - - ExecuteStreamQueryInternal(query, params, settings).Subscribe(iteratorCallback); - return promise.GetFuture(); - } -}; - -TStreamQueryClient::TStreamQueryClient(const TDriver& driver, const TCommonClientSettings& settings) - : Impl_(new TImpl(CreateInternalInterface(driver), settings)) {} - -TParamsBuilder TStreamQueryClient::GetParamsBuilder() { - return TParamsBuilder(); -} - -TAsyncStreamPartIterator TStreamQueryClient::ExecuteStreamQuery(const TString& query, - const TExecuteStreamQuerySettings& settings) -{ - return Impl_->ExecuteStreamQuery(query, nullptr, settings); -} - -TAsyncStreamPartIterator TStreamQueryClient::ExecuteStreamQuery(const TString& query, const TParams& params, - const TExecuteStreamQuerySettings& settings) -{ - return Impl_->ExecuteStreamQuery(query, ¶ms, settings); -} - -} // namespace NExperimental -} // namespace NYdb diff --git a/ydb/public/lib/experimental/ydb_experimental.h b/ydb/public/lib/experimental/ydb_experimental.h deleted file mode 100644 index 50f9cd5a2a9..00000000000 --- a/ydb/public/lib/experimental/ydb_experimental.h +++ /dev/null @@ -1,107 +0,0 @@ -#pragma once - -#include <ydb/public/sdk/cpp/client/ydb_table/table.h> - -namespace NYdb { -namespace NExperimental { - -//////////////////////////////////////////////////////////////////////////////// - -class TStreamPartIterator; - -using TAsyncStreamPartIterator = NThreading::TFuture<TStreamPartIterator>; - -class TStreamPartStatus : public TStatus { -public: - TStreamPartStatus(TStatus&& status); - bool EOS() const; -}; - -class TStreamPart : public TStreamPartStatus { -public: - bool HasResultSet() const { return ResultSet_.Defined(); } - const TResultSet& GetResultSet() const { return *ResultSet_; } - TResultSet ExtractResultSet() { return std::move(*ResultSet_); } - - bool HasProfile() const { return Profile_.Defined(); } - const TString& GetProfile() const { return *Profile_; } - TString ExtractProfile() { return std::move(*Profile_); } - - bool HasPlan() const { return Plan_.Defined(); } - const TString& GetPlan() const { return *Plan_; } - TString ExtractPlan() { return std::move(*Plan_); } - - TStreamPart(TStatus&& status) - : TStreamPartStatus(std::move(status)) - {} - - TStreamPart(TResultSet&& resultSet, TStatus&& status) - : TStreamPartStatus(std::move(status)) - , ResultSet_(std::move(resultSet)) - {} - - TStreamPart(TString&& profile, TStatus&& status) - : TStreamPartStatus(std::move(status)) - , Profile_(std::move(profile)) - {} - - TStreamPart(const TMaybe<TString>& plan, TStatus&& status) - : TStreamPartStatus(std::move(status)) - , Plan_(plan) - {} - -private: - TMaybe<TResultSet> ResultSet_; - TMaybe<TString> Profile_; - TMaybe<TString> Plan_; -}; - -using TAsyncStreamPart = NThreading::TFuture<TStreamPart>; - -class TStreamPartIterator : public TStatus { - friend class TStreamQueryClient; -public: - TAsyncStreamPart ReadNext(); - class TReaderImpl; -private: - TStreamPartIterator( - std::shared_ptr<TReaderImpl> impl, - TPlainStatus&& status - ); - std::shared_ptr<TReaderImpl> ReaderImpl_; -}; - -enum class EStreamQueryProfileMode { - None, - Basic, - Full, - Profile -}; - -struct TExecuteStreamQuerySettings : public TRequestSettings<TExecuteStreamQuerySettings> { - using TSelf = TExecuteStreamQuerySettings; - - FLUENT_SETTING_DEFAULT(EStreamQueryProfileMode, ProfileMode, EStreamQueryProfileMode::None); - FLUENT_SETTING_DEFAULT(bool, Explain, false); -}; - -class TStreamQueryClient { - class TImpl; - -public: - TStreamQueryClient(const TDriver& driver, const TCommonClientSettings& settings = TCommonClientSettings()); - - TParamsBuilder GetParamsBuilder(); - - TAsyncStreamPartIterator ExecuteStreamQuery(const TString& query, - const TExecuteStreamQuerySettings& settings = TExecuteStreamQuerySettings()); - - TAsyncStreamPartIterator ExecuteStreamQuery(const TString& query, const TParams& params, - const TExecuteStreamQuerySettings& settings = TExecuteStreamQuerySettings()); - -private: - std::shared_ptr<TImpl> Impl_; -}; - -} // namespace NExperimental -} // namespace NYdb diff --git a/ydb/public/sdk/python/ydb/__init__.py b/ydb/public/sdk/python/ydb/__init__.py index 7dd45200253..5cbe4f1a2d6 100644 --- a/ydb/public/sdk/python/ydb/__init__.py +++ b/ydb/public/sdk/python/ydb/__init__.py @@ -1,4 +1,3 @@ -from .experimental import * # noqa from .credentials import * # noqa from .driver import * # noqa from .table import * # noqa diff --git a/ydb/public/sdk/python/ydb/experimental.py b/ydb/public/sdk/python/ydb/experimental.py deleted file mode 100644 index 92f9972b7fe..00000000000 --- a/ydb/public/sdk/python/ydb/experimental.py +++ /dev/null @@ -1,61 +0,0 @@ -from ydb.public.api.protos import ydb_experimental_pb2 -from ydb.public.api.grpc.draft import ydb_experimental_v1_pb2_grpc -from . import _utilities, issues, convert - - -def _execute_stream_query_request_factory(yql_text, parameters=None, settings=None): - request = ydb_experimental_pb2.ExecuteStreamQueryRequest() - request.yql_text = yql_text - request.profile_mode = 1 - return request - - -class StreamQueryResult(object): - def __init__(self, result): - self._result = result - - def is_progress(self): - return self._result.WhichOneof("result") == "ping" - - @property - def result_set(self): - return convert.ResultSet.from_message(self._result.result_set) - - def is_result_set(self): - return self._result.WhichOneof("result") == "result_set" - - -def _wrap_stream_query_response(response): - issues._process_response(response) - return StreamQueryResult(response.result) - - -class ExperimentalClient(object): - def __init__(self, driver): - self.driver = driver - - def async_execute_stream_query(self, yql_text, parameters=None, settings=None): - """ - That is experimental api. Can be used only for tests, not for production. - """ - request = _execute_stream_query_request_factory(yql_text, parameters, settings) - stream_it = self.driver( - request, - ydb_experimental_v1_pb2_grpc.ExperimentalServiceStub, - "ExecuteStreamQuery", - settings=settings, - ) - return _utilities.AsyncResponseIterator(stream_it, _wrap_stream_query_response) - - def execute_stream_query(self, yql_text, parameters=None, settings=None): - """ - That is experimental api. Can be used only for tests, not for production. - """ - request = _execute_stream_query_request_factory(yql_text, parameters, settings) - stream_it = self.driver( - request, - ydb_experimental_v1_pb2_grpc.ExperimentalServiceStub, - "ExecuteStreamQuery", - settings=settings, - ) - return _utilities.SyncResponseIterator(stream_it, _wrap_stream_query_response) diff --git a/ydb/services/ydb/CMakeLists.txt b/ydb/services/ydb/CMakeLists.txt index c2b0781a3a9..487894646ad 100644 --- a/ydb/services/ydb/CMakeLists.txt +++ b/ydb/services/ydb/CMakeLists.txt @@ -33,7 +33,6 @@ target_link_libraries(ydb-services-ydb PUBLIC target_sources(ydb-services-ydb PRIVATE ${CMAKE_SOURCE_DIR}/ydb/services/ydb/ydb_clickhouse_internal.cpp ${CMAKE_SOURCE_DIR}/ydb/services/ydb/ydb_dummy.cpp - ${CMAKE_SOURCE_DIR}/ydb/services/ydb/ydb_experimental.cpp ${CMAKE_SOURCE_DIR}/ydb/services/ydb/ydb_export.cpp ${CMAKE_SOURCE_DIR}/ydb/services/ydb/ydb_import.cpp ${CMAKE_SOURCE_DIR}/ydb/services/ydb/ydb_logstore.cpp diff --git a/ydb/services/ydb/ydb_experimental.cpp b/ydb/services/ydb/ydb_experimental.cpp deleted file mode 100644 index c5904aef474..00000000000 --- a/ydb/services/ydb/ydb_experimental.cpp +++ /dev/null @@ -1,31 +0,0 @@ -#include "ydb_experimental.h" - -#include <ydb/core/grpc_services/grpc_helper.h> -#include <ydb/core/grpc_services/grpc_request_proxy.h> -#include <ydb/core/grpc_services/rpc_calls.h> - -namespace NKikimr { -namespace NGRpcService { - -void TGRpcYdbExperimentalService::SetupIncomingRequests(NGrpc::TLoggerPtr logger) { - auto getCounterBlock = CreateCounterCb(Counters_, ActorSystem_); - -#ifdef ADD_REQUEST -#error ADD_REQUEST macro already defined -#endif -#define ADD_REQUEST(NAME, IN, OUT, ACTION) \ - MakeIntrusive<TGRpcRequest<Ydb::Experimental::IN, Ydb::Experimental::OUT, TGRpcYdbExperimentalService>>(this, &Service_, CQ_, \ - [this](NGrpc::IRequestContextBase *ctx) { \ - NGRpcService::ReportGrpcReqToMon(*ActorSystem_, ctx->GetPeer()); \ - ACTION; \ - }, &Ydb::Experimental::V1::ExperimentalService::AsyncService::Request ## NAME, \ - #NAME, logger, getCounterBlock("experimental", #NAME))->Run(); - - ADD_REQUEST(ExecuteStreamQuery, ExecuteStreamQueryRequest, ExecuteStreamQueryResponse, { - ActorSystem_->Send(GRpcRequestProxyId_, new TEvExperimentalStreamQueryRequest(ctx)); - }) -#undef ADD_REQUEST -} - -} // namespace NGRpcService -} // namespace NKikimr diff --git a/ydb/services/ydb/ydb_experimental.h b/ydb/services/ydb/ydb_experimental.h deleted file mode 100644 index e13f11a7906..00000000000 --- a/ydb/services/ydb/ydb_experimental.h +++ /dev/null @@ -1,24 +0,0 @@ -#pragma once - -#include <library/cpp/actors/core/actorsystem.h> - -#include <library/cpp/grpc/server/grpc_server.h> - -#include <ydb/public/api/grpc/draft/ydb_experimental_v1.grpc.pb.h> -#include <ydb/core/grpc_services/base/base_service.h> - -namespace NKikimr { -namespace NGRpcService { - -class TGRpcYdbExperimentalService - : public TGrpcServiceBase<Ydb::Experimental::V1::ExperimentalService> -{ -public: - using TGrpcServiceBase<Ydb::Experimental::V1::ExperimentalService>::TGrpcServiceBase; - -private: - void SetupIncomingRequests(NGrpc::TLoggerPtr logger); -}; - -} // namespace NGRpcService -} // namespace NKikimr |