1
1
#include " flat_stat_table.h"
2
2
#include " flat_table_subset.h"
3
+ #include < util/stream/format.h>
3
4
#include " flat_stat_table_btree_index.h"
4
5
5
6
namespace NKikimr ::NTable {
@@ -108,16 +109,21 @@ void AddBlobsSize(const TPart* part, TChanneledDataSize& stats, const TFrames* f
108
109
}
109
110
}
110
111
111
- bool AddDataSize (const TPartView& part, TStats& stats, IPages* env, TBuildStatsYieldHandler yieldHandler) {
112
+ bool AddDataSize (const TPartView& part, TStats& stats, IPages* env, TBuildStatsYieldHandler yieldHandler, const TString& logPrefix ) {
112
113
bool ready = true ;
113
114
114
115
if (!part.Slices || part.Slices ->empty ()) {
115
116
return true ;
116
117
}
117
118
119
+ auto logAddingGroup = [&](TGroupId groupId){
120
+ LOG_BUILD_STATS (" adding group " << groupId << " " << part->IndexPages .GetBTree (groupId).ToString ());
121
+ };
122
+
118
123
if (part->GroupsCount ) { // main group
119
124
TGroupId groupId{};
120
125
auto channel = part->GetGroupChannel (groupId);
126
+ logAddingGroup (groupId);
121
127
122
128
for (const auto & slice : *part.Slices ) {
123
129
yieldHandler ();
@@ -129,19 +135,25 @@ bool AddDataSize(const TPartView& part, TStats& stats, IPages* env, TBuildStatsY
129
135
if (ready && endDataSize > beginDataSize) {
130
136
stats.DataSize .Add (endDataSize - beginDataSize, channel);
131
137
}
138
+ LOG_BUILD_STATS (" added slice [" << slice.BeginRowId () << " , " << slice.EndRowId () << " ) data size "
139
+ << " (" << HumanReadableSize (endDataSize, SF_BYTES) << " - " << HumanReadableSize (beginDataSize, SF_BYTES) << " ) => " << HumanReadableSize (stats.DataSize .Size , SF_BYTES));
132
140
133
141
if (part->Small ) {
134
142
AddBlobsSize (part.Part .Get (), stats.DataSize , part->Small .Get (), ELargeObj::Outer, slice.BeginRowId (), slice.EndRowId ());
143
+ LOG_BUILD_STATS (" added small blobs data size => " << HumanReadableSize (stats.DataSize .Size , SF_BYTES));
135
144
}
136
145
if (part->Large ) {
137
146
AddBlobsSize (part.Part .Get (), stats.DataSize , part->Large .Get (), ELargeObj::Extern, slice.BeginRowId (), slice.EndRowId ());
147
+ LOG_BUILD_STATS (" added large blobs data size => " << HumanReadableSize (stats.DataSize .Size , SF_BYTES));
138
148
}
139
149
}
140
150
}
141
151
142
152
for (ui32 groupIndex : xrange<ui32>(1 , part->GroupsCount )) {
143
153
TGroupId groupId{groupIndex};
144
154
auto channel = part->GetGroupChannel (groupId);
155
+ logAddingGroup (groupId);
156
+
145
157
for (const auto & slice : *part.Slices ) {
146
158
yieldHandler ();
147
159
@@ -150,6 +162,8 @@ bool AddDataSize(const TPartView& part, TStats& stats, IPages* env, TBuildStatsY
150
162
if (ready && endDataSize > beginDataSize) {
151
163
stats.DataSize .Add (endDataSize - beginDataSize, channel);
152
164
}
165
+ LOG_BUILD_STATS (" added slice [" << slice.BeginRowId () << " , " << slice.EndRowId () << " ) data size "
166
+ << " (" << HumanReadableSize (endDataSize, SF_BYTES) << " - " << HumanReadableSize (beginDataSize, SF_BYTES) << " ) => " << HumanReadableSize (stats.DataSize .Size , SF_BYTES));
153
167
}
154
168
}
155
169
@@ -158,6 +172,8 @@ bool AddDataSize(const TPartView& part, TStats& stats, IPages* env, TBuildStatsY
158
172
if (part->HistoricGroupsCount ) { // main historic group
159
173
TGroupId groupId{0 , true };
160
174
auto channel = part->GetGroupChannel (groupId);
175
+ logAddingGroup (groupId);
176
+
161
177
for (const auto & slice : *part.Slices ) {
162
178
yieldHandler ();
163
179
@@ -169,6 +185,8 @@ bool AddDataSize(const TPartView& part, TStats& stats, IPages* env, TBuildStatsY
169
185
if (ready && endDataSize > beginDataSize) {
170
186
stats.DataSize .Add (endDataSize - beginDataSize, channel);
171
187
}
188
+ LOG_BUILD_STATS (" added slice [" << slice.BeginRowId () << " , " << slice.EndRowId () << " ) data size "
189
+ << " (" << HumanReadableSize (endDataSize, SF_BYTES) << " - " << HumanReadableSize (beginDataSize, SF_BYTES) << " ) => " << HumanReadableSize (stats.DataSize .Size , SF_BYTES));
172
190
if (readySlice && endRowId > beginRowId) {
173
191
historicSlices.emplace_back (beginRowId, endRowId);
174
192
}
@@ -178,6 +196,8 @@ bool AddDataSize(const TPartView& part, TStats& stats, IPages* env, TBuildStatsY
178
196
for (ui32 groupIndex : xrange<ui32>(1 , part->HistoricGroupsCount )) {
179
197
TGroupId groupId{groupIndex, true };
180
198
auto channel = part->GetGroupChannel (groupId);
199
+ logAddingGroup (groupId);
200
+
181
201
for (const auto & slice : historicSlices) {
182
202
yieldHandler ();
183
203
@@ -186,6 +206,8 @@ bool AddDataSize(const TPartView& part, TStats& stats, IPages* env, TBuildStatsY
186
206
if (ready && endDataSize > beginDataSize) {
187
207
stats.DataSize .Add (endDataSize - beginDataSize, channel);
188
208
}
209
+ LOG_BUILD_STATS (" added slice [" << slice.first << " , " << slice.second << " ) data size "
210
+ << " (" << HumanReadableSize (endDataSize, SF_BYTES) << " - " << HumanReadableSize (beginDataSize, SF_BYTES) << " ) => " << HumanReadableSize (stats.DataSize .Size , SF_BYTES));
189
211
}
190
212
}
191
213
@@ -194,14 +216,15 @@ bool AddDataSize(const TPartView& part, TStats& stats, IPages* env, TBuildStatsY
194
216
195
217
}
196
218
197
- bool BuildStatsBTreeIndex (const TSubset& subset, TStats& stats, ui32 histogramBucketsCount, IPages* env, TBuildStatsYieldHandler yieldHandler) {
219
+ bool BuildStatsBTreeIndex (const TSubset& subset, TStats& stats, ui32 histogramBucketsCount, IPages* env, TBuildStatsYieldHandler yieldHandler, const TString& logPrefix ) {
198
220
stats.Clear ();
199
221
200
222
bool ready = true ;
201
223
for (const auto & part : subset.Flatten ) {
224
+ LOG_BUILD_STATS (" adding part " << part->Label .ToString () << " data size (" << HumanReadableSize (part->DataSize (), SF_BYTES) << " in total)" );
202
225
stats.IndexSize .Add (part->IndexesRawSize , part->Label .Channel ());
203
226
stats.ByKeyFilterSize += part->ByKey ? part->ByKey ->Raw .size () : 0 ;
204
- ready &= AddDataSize (part, stats, env, yieldHandler);
227
+ ready &= AddDataSize (part, stats, env, yieldHandler, logPrefix );
205
228
}
206
229
207
230
if (!ready) {
@@ -210,7 +233,7 @@ bool BuildStatsBTreeIndex(const TSubset& subset, TStats& stats, ui32 histogramBu
210
233
211
234
ready &= BuildStatsHistogramsBTreeIndex (subset, stats,
212
235
stats.RowCount / histogramBucketsCount, stats.DataSize .Size / histogramBucketsCount,
213
- env, yieldHandler);
236
+ env, yieldHandler, logPrefix );
214
237
215
238
return ready;
216
239
}
0 commit comments