Skip to content

Commit bb312c5

Browse files
authored
schemeshard: remove schemeshard_utils.h from common dependencies (#12012)
Remove `schemeshard_utils.h` from `schemeshard_impl.h` includes. Move `TShardDeleter` and `TSelfPinger` out of `schemeshard_utils.*`. This is part of "improve schemeshard operation build-time" effort (#10633).
1 parent c381728 commit bb312c5

File tree

43 files changed

+402
-302
lines changed

Some content is hidden

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

43 files changed

+402
-302
lines changed

ydb/core/tx/schemeshard/schemeshard__init.cpp

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
11
#include "schemeshard_impl.h"
2+
#include "schemeshard_utils.h" // for PQGroupReserve
23

4+
#include <ydb/core/protos/table_stats.pb.h> // for TStoragePoolsStats
35
#include <ydb/core/scheme/scheme_types_proto.h>
46
#include <ydb/core/tablet/tablet_exception.h>
57
#include <ydb/core/tablet_flat/flat_cxx_database.h>
6-
#include <ydb/core/tx/schemeshard/schemeshard_utils.h>
78
#include <ydb/core/util/pb.h>
89

910
namespace NKikimr {

ydb/core/tx/schemeshard/schemeshard__operation_alter_cdc_stream.cpp

+2-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,8 @@
22

33
#include "schemeshard__operation_part.h"
44
#include "schemeshard__operation_common.h"
5-
#include "schemeshard_impl.h"
5+
6+
#include "schemeshard_utils.h" // for TransactionTemplate
67

78
#define LOG_D(stream) LOG_DEBUG_S (context.Ctx, NKikimrServices::FLAT_TX_SCHEMESHARD, "[" << context.SS->TabletID() << "] " << stream)
89
#define LOG_I(stream) LOG_INFO_S (context.Ctx, NKikimrServices::FLAT_TX_SCHEMESHARD, "[" << context.SS->TabletID() << "] " << stream)

ydb/core/tx/schemeshard/schemeshard__operation_alter_continuous_backup.cpp

+2
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@
33
#include "schemeshard__operation_part.h"
44
#include "schemeshard_impl.h"
55

6+
#include "schemeshard_utils.h" // for TransactionTemplate
7+
68
#include <ydb/core/tx/schemeshard/backup/constants.h>
79

810
#include <ydb/core/engine/mkql_proto.h>

ydb/core/tx/schemeshard/schemeshard__operation_alter_extsubdomain.cpp

+1
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
#include "schemeshard_impl.h"
33
#include "schemeshard__operation_common.h"
44
#include "schemeshard__operation_common_subdomain.h"
5+
#include "schemeshard_utils.h" // for TransactionTemplate
56

67
#include <ydb/core/base/subdomain.h>
78
#include <ydb/core/base/hive.h>

ydb/core/tx/schemeshard/schemeshard__operation_alter_pq.cpp

+2
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22
#include "schemeshard__operation_common.h"
33
#include "schemeshard_impl.h"
44

5+
#include "schemeshard_utils.h" // for PQGroupReserve
6+
57
#include <ydb/core/base/subdomain.h>
68
#include <ydb/core/mind/hive/hive.h>
79
#include <ydb/core/persqueue/config/config.h>

ydb/core/tx/schemeshard/schemeshard__operation_alter_table.cpp

+2
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22
#include "schemeshard__operation_common.h"
33
#include "schemeshard_impl.h"
44

5+
#include "schemeshard_utils.h" // for TransactionTemplate
6+
57
#include <ydb/core/base/subdomain.h>
68
#include <ydb/core/base/hive.h>
79

ydb/core/tx/schemeshard/schemeshard__operation_apply_build_index.cpp

+2
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@
55

66
#include "schemeshard_impl.h"
77

8+
#include "schemeshard_utils.h" // for TransactionTemplate
9+
810
#include <ydb/core/base/table_index.h>
911
#include <ydb/core/protos/flat_tx_scheme.pb.h>
1012
#include <ydb/core/protos/flat_scheme_op.pb.h>

ydb/core/tx/schemeshard/schemeshard__operation_common_external_table.cpp

+2
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22

33
#include <ydb/core/scheme/scheme_types_proto.h>
44

5+
#include <yql/essentials/minikql/mkql_type_ops.h>
6+
57
#include <utility>
68

79
namespace NKikimr::NSchemeShard::NExternalTable {

ydb/core/tx/schemeshard/schemeshard__operation_consistent_copy_tables.cpp

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
#include "schemeshard__operation_part.h"
22
#include "schemeshard__operation_common.h"
3-
#include "schemeshard_impl.h"
4-
#include "schemeshard_path_element.h"
3+
4+
#include "schemeshard_utils.h" // for TransactionTemplate
55

66
#include <ydb/core/base/path.h>
77
#include <ydb/core/protos/flat_tx_scheme.pb.h>

ydb/core/tx/schemeshard/schemeshard__operation_copy_table.cpp

+2
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44
#include "schemeshard_tx_infly.h"
55
#include "schemeshard_cdc_stream_common.h"
66

7+
#include "schemeshard_utils.h" // for TransactionTemplate
8+
79
#include <ydb/core/mind/hive/hive.h>
810
#include <ydb/core/base/subdomain.h>
911

ydb/core/tx/schemeshard/schemeshard__operation_create_build_index.cpp

+2-3
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,7 @@
11
#include "schemeshard__operation_part.h"
22
#include "schemeshard__operation_common.h"
3-
#include "schemeshard_impl.h"
4-
#include "schemeshard_path_element.h"
5-
#include "schemeshard_utils.h"
3+
4+
#include "schemeshard_utils.h" // for TransactionTemplate
65

76
#include <ydb/core/base/table_vector_index.h>
87
#include <ydb/core/protos/flat_tx_scheme.pb.h>

ydb/core/tx/schemeshard/schemeshard__operation_create_cdc_stream.cpp

+3
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,9 @@
22

33
#include "schemeshard__operation_part.h"
44
#include "schemeshard__operation_common.h"
5+
6+
#include "schemeshard_utils.h" // for TransactionTemplate
7+
58
#include "schemeshard_cdc_stream_common.h"
69
#include "schemeshard_impl.h"
710

ydb/core/tx/schemeshard/schemeshard__operation_create_indexed_table.cpp

+4-5
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,9 @@
11
#include "schemeshard__operation_part.h"
22
#include "schemeshard__operation_common.h"
3-
#include "schemeshard_impl.h"
4-
#include "schemeshard_path_element.h"
5-
#include "schemeshard_utils.h"
63
#include "schemeshard__op_traits.h"
74

5+
#include "schemeshard_utils.h" // for TransactionTemplate
6+
87
#include <ydb/core/protos/flat_tx_scheme.pb.h>
98
#include <ydb/core/protos/flat_scheme_op.pb.h>
109

@@ -274,7 +273,7 @@ TVector<ISubOperation::TPtr> CreateIndexedTable(TOperationId nextId, const TTxTr
274273

275274
*scheme.MutableCreateTable() = std::move(implTableDesc);
276275

277-
return CreateNewTable(NextPartId(nextId, result), scheme);
276+
return CreateNewTable(NextPartId(nextId, result), scheme);
278277
};
279278

280279
const auto& implTableColumns = indexes.at(indexDescription.GetName());
@@ -285,7 +284,7 @@ TVector<ISubOperation::TPtr> CreateIndexedTable(TOperationId nextId, const TTxTr
285284
userLevelDesc = indexDescription.GetIndexImplTableDescriptions(0);
286285
userPostingDesc = indexDescription.GetIndexImplTableDescriptions(1);
287286
}
288-
287+
289288
result.push_back(createIndexImplTable(CalcVectorKmeansTreeLevelImplTableDesc(baseTableDescription.GetPartitionConfig(), userLevelDesc)));
290289
result.push_back(createIndexImplTable(CalcVectorKmeansTreePostingImplTableDesc(baseTableDescription, baseTableDescription.GetPartitionConfig(), implTableColumns, userPostingDesc)));
291290
} else {

ydb/core/tx/schemeshard/schemeshard__operation_create_pq.cpp

+2
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@
33
#include "schemeshard_impl.h"
44
#include "schemeshard__op_traits.h"
55

6+
#include "schemeshard_utils.h" // for PQGroupReserve
7+
68
#include <library/cpp/int128/int128.h>
79

810
#include <ydb/core/base/subdomain.h>

ydb/core/tx/schemeshard/schemeshard__operation_create_restore_incremental_backup.cpp

+2
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22
#include "schemeshard__operation_common.h"
33
#include "schemeshard_impl.h"
44

5+
#include "schemeshard_utils.h" // for TransactionTemplate
6+
57
#include "schemeshard__operation_create_cdc_stream.h"
68

79
#define LOG_D(stream) LOG_DEBUG_S (context.Ctx, NKikimrServices::FLAT_TX_SCHEMESHARD, "[" << context.SS->TabletID() << "] " << stream)

ydb/core/tx/schemeshard/schemeshard__operation_create_table.cpp

+2
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@
33
#include "schemeshard_impl.h"
44
#include "schemeshard__op_traits.h"
55

6+
#include "schemeshard_utils.h" // for IsAllowedKeyType
7+
68
#include <ydb/core/protos/flat_scheme_op.pb.h>
79
#include <ydb/core/protos/datashard_config.pb.h>
810

ydb/core/tx/schemeshard/schemeshard__operation_drop_cdc_stream.cpp

+4-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,10 @@
22

33
#include "schemeshard__operation_part.h"
44
#include "schemeshard__operation_common.h"
5-
#include "schemeshard_impl.h"
5+
6+
#include "schemeshard_utils.h" // for TransactionTemplate
7+
8+
#include "schemeshard__operation_drop_cdc_stream.h"
69

710
#define LOG_D(stream) LOG_DEBUG_S (context.Ctx, NKikimrServices::FLAT_TX_SCHEMESHARD, "[" << context.SS->TabletID() << "] " << stream)
811
#define LOG_I(stream) LOG_INFO_S (context.Ctx, NKikimrServices::FLAT_TX_SCHEMESHARD, "[" << context.SS->TabletID() << "] " << stream)

ydb/core/tx/schemeshard/schemeshard__operation_drop_index.cpp

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
#include "schemeshard__operation_part.h"
22
#include "schemeshard__operation_common.h"
3-
#include "schemeshard_path_element.h"
3+
4+
#include "schemeshard_utils.h" // for TransactionTemplate
45

56
#include "schemeshard_impl.h"
67

ydb/core/tx/schemeshard/schemeshard__operation_drop_pq.cpp

+2
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,8 @@
22
#include "schemeshard__operation_common.h"
33
#include "schemeshard_impl.h"
44

5+
#include "schemeshard_utils.h" // for PQGroupReserve
6+
57
#include <ydb/core/base/subdomain.h>
68
#include <ydb/core/persqueue/events/global.h>
79

ydb/core/tx/schemeshard/schemeshard__operation_move_index.cpp

+2
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44

55
#include "schemeshard_impl.h"
66

7+
#include "schemeshard_utils.h" // for TransactionTemplate
8+
79
#include <ydb/core/base/path.h>
810
#include <ydb/core/mind/hive/hive.h>
911
#include <ydb/core/protos/flat_tx_scheme.pb.h>

ydb/core/tx/schemeshard/schemeshard__operation_move_tables.cpp

+2
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@
44

55
#include "schemeshard_impl.h"
66

7+
#include "schemeshard_utils.h" // for TransactionTemplate
8+
79
#include <ydb/core/base/path.h>
810
#include <ydb/core/protos/flat_tx_scheme.pb.h>
911
#include <ydb/core/protos/flat_scheme_op.pb.h>

ydb/core/tx/schemeshard/schemeshard__operation_part.cpp

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
#include "schemeshard__operation_part.h"
22
#include "schemeshard_impl.h"
3+
#include "schemeshard_utils.h" // for TransactionTemplate
34
#include "schemeshard_path.h"
45

56
#include <ydb/core/base/hive.h>
@@ -164,7 +165,7 @@ ISubOperation::TPtr CascadeDropTableChildren(TVector<ISubOperation::TPtr>& resul
164165
}
165166

166167
for (auto& [implName, implPathId] : child.Base()->GetChildren()) {
167-
Y_ABORT_UNLESS(NTableIndex::IsImplTable(implName)
168+
Y_ABORT_UNLESS(NTableIndex::IsImplTable(implName)
168169
|| implName == "streamImpl"
169170
, "unexpected name %s", implName.c_str());
170171

ydb/core/tx/schemeshard/schemeshard__table_stats.cpp

+1
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
#include <ydb/core/base/appdata.h>
55
#include <ydb/core/base/cputime.h>
66
#include <ydb/core/protos/sys_view.pb.h>
7+
#include <ydb/core/protos/table_stats.pb.h>
78

89
namespace {
910

ydb/core/tx/schemeshard/schemeshard__table_stats_histogram.cpp

+2-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
#include "schemeshard_impl.h"
22
#include <ydb/core/base/appdata.h>
33
#include <ydb/core/tx/tx_proxy/proxy.h>
4+
#include <ydb/core/protos/table_stats.pb.h>
45

56
namespace NKikimr {
67
namespace NSchemeShard {
@@ -44,7 +45,7 @@ TSerializedCellVec ChooseSplitKeyByHistogram(const NKikimrTableStats::THistogram
4445
for (const auto& point : histogram.GetBuckets()) {
4546
ui64 leftSize = Min(point.GetValue(), total);
4647
ui64 rightSize = total - leftSize;
47-
48+
4849
// search for a median point at which abs(leftSize - rightSize) is minimum
4950
ui64 sizesDiff = Max(leftSize, rightSize) - Min(leftSize, rightSize);
5051
if (idxMedDiff > sizesDiff) {

ydb/core/tx/schemeshard/schemeshard_build_index__create.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
#include "schemeshard_build_index_helpers.h"
44
#include "schemeshard_build_index_tx_base.h"
55
#include "schemeshard_impl.h"
6-
#include "schemeshard_utils.h"
6+
#include "schemeshard_utils.h" // for NTableIndex::CommonCheck
77

88
#include <ydb/core/ydb_convert/table_settings.h>
99

ydb/core/tx/schemeshard/schemeshard_build_index__progress.cpp

+1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
#include "schemeshard_build_index.h"
22
#include "schemeshard_impl.h"
3+
#include "schemeshard_utils.h" // for NTableIndex::ExtractInfo
34
#include "schemeshard_build_index_helpers.h"
45
#include "schemeshard_build_index_tx_base.h"
56

ydb/core/tx/schemeshard/schemeshard_impl.cpp

+1
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
#include <ydb/core/base/appdata.h>
1212
#include <ydb/core/base/tx_processing.h>
1313
#include <ydb/core/protos/feature_flags.pb.h>
14+
#include <ydb/core/protos/table_stats.pb.h> // for TStoragePoolsStats
1415
#include <ydb/core/engine/mkql_proto.h>
1516
#include <ydb/core/sys_view/partition_stats/partition_stats.h>
1617
#include <ydb/core/statistics/events.h>

ydb/core/tx/schemeshard/schemeshard_impl.h

+2-1
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,8 @@
1414
#include "schemeshard_domain_links.h"
1515
#include "schemeshard_info_types.h"
1616
#include "schemeshard_tx_infly.h"
17-
#include "schemeshard_utils.h"
17+
#include "schemeshard_self_pinger.h"
18+
#include "schemeshard_shard_deleter.h"
1819
#include "schemeshard_schema.h"
1920
#include "schemeshard__operation.h"
2021
#include "schemeshard__stats.h"

ydb/core/tx/schemeshard/schemeshard_info_types.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
#include "schemeshard_info_types.h"
22
#include "schemeshard_path.h"
3-
#include "schemeshard_utils.h"
3+
#include "schemeshard_utils.h" // for IsValidColumnName
44

55
#include <ydb/core/base/appdata.h>
66
#include <ydb/core/base/tx_processing.h>

ydb/core/tx/schemeshard/schemeshard_path_describer.cpp

+1
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
#include <ydb/core/base/appdata.h>
44
#include <ydb/core/engine/mkql_proto.h>
55
#include <ydb/core/protos/flat_tx_scheme.pb.h>
6+
#include <ydb/core/protos/table_stats.pb.h>
67
#include <ydb/core/scheme/scheme_types_proto.h>
78
#include <ydb/public/api/protos/annotations/sensitive.pb.h>
89

Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
#include "schemeshard_self_pinger.h"
2+
#include "schemeshard.h" // for TEvMeasureSelfResponseTime and TEvWakeupToMeasureSelfResponseTime
3+
4+
#include <ydb/core/protos/counters_schemeshard.pb.h>
5+
6+
namespace NKikimr::NSchemeShard {
7+
8+
void TSelfPinger::Handle(TEvSchemeShard::TEvMeasureSelfResponseTime::TPtr &ev, const NActors::TActorContext &ctx) {
9+
Y_UNUSED(ev);
10+
TInstant now = AppData(ctx)->TimeProvider->Now();
11+
TDuration responseTime = now - SelfPingSentTime;
12+
LastResponseTime = responseTime;
13+
TabletCounters->Simple()[COUNTER_RESPONSE_TIME_USEC].Set(LastResponseTime.MicroSeconds());
14+
if (responseTime.MilliSeconds() > 1000) {
15+
LOG_WARN_S(ctx, NKikimrServices::FLAT_TX_SCHEMESHARD,
16+
"Schemeshard " << TabletId << " response time is " << responseTime.MilliSeconds() << " msec");
17+
}
18+
SelfPingInFlight = false;
19+
if (responseTime > SELF_PING_INTERVAL) {
20+
DoSelfPing(ctx);
21+
} else {
22+
ScheduleSelfPingWakeup(ctx);
23+
}
24+
}
25+
26+
void TSelfPinger::Handle(TEvSchemeShard::TEvWakeupToMeasureSelfResponseTime::TPtr &ev, const NActors::TActorContext &ctx) {
27+
Y_UNUSED(ev);
28+
SelfPingWakeupScheduled = false;
29+
DoSelfPing(ctx);
30+
}
31+
32+
void TSelfPinger::OnAnyEvent(const NActors::TActorContext &ctx) {
33+
TInstant now = AppData(ctx)->TimeProvider->Now();
34+
if (SelfPingInFlight) {
35+
TDuration responseTime = now - SelfPingSentTime;
36+
// Increase measured response time is ping is taking longer than then the previous one
37+
LastResponseTime = Max(LastResponseTime, responseTime);
38+
TabletCounters->Simple()[COUNTER_RESPONSE_TIME_USEC].Set(LastResponseTime.MicroSeconds());
39+
} else if ((now - SelfPingWakeupScheduledTime) > SELF_PING_INTERVAL) {
40+
DoSelfPing(ctx);
41+
}
42+
}
43+
44+
void TSelfPinger::DoSelfPing(const NActors::TActorContext &ctx) {
45+
if (SelfPingInFlight)
46+
return;
47+
48+
ctx.Send(ctx.SelfID, new TEvSchemeShard::TEvMeasureSelfResponseTime);
49+
SelfPingSentTime = AppData(ctx)->TimeProvider->Now();
50+
SelfPingInFlight = true;
51+
}
52+
53+
void TSelfPinger::ScheduleSelfPingWakeup(const NActors::TActorContext &ctx) {
54+
if (SelfPingWakeupScheduled)
55+
return;
56+
57+
ctx.Schedule(SELF_PING_INTERVAL, new TEvSchemeShard::TEvWakeupToMeasureSelfResponseTime);
58+
SelfPingWakeupScheduled = true;
59+
SelfPingWakeupScheduledTime = AppData(ctx)->TimeProvider->Now();
60+
}
61+
62+
} // namespace NKikimr::NSchemeShard

0 commit comments

Comments
 (0)