1
1
#pragma once
2
2
3
+ #include < util/digest/numeric.h>
3
4
#include < util/generic/maybe.h>
4
5
#include < util/generic/string.h>
5
6
#include < vector>
@@ -50,9 +51,6 @@ struct TError {
50
51
TString ErrorMessage;
51
52
};
52
53
53
- struct TStatistics {
54
- };
55
-
56
54
struct TYtTableRef {
57
55
TString Path;
58
56
TString Cluster;
@@ -63,24 +61,104 @@ struct TFmrTableRef {
63
61
TString TableId;
64
62
};
65
63
64
+ struct TTableRange {
65
+ TString PartId;
66
+ ui64 MinChunk = 0 ;
67
+ ui64 MaxChunk;
68
+ };
69
+
70
+ struct TFmrTableInputRef {
71
+ TString TableId;
72
+ std::vector<TTableRange> TableRanges;
73
+ };
74
+
75
+ struct TFmrTableOutputRef {
76
+ TString TableId;
77
+ TString PartId;
78
+
79
+ bool operator ==(const TFmrTableOutputRef&) const = default ;
80
+ };
81
+
82
+ struct TTableStats {
83
+ ui64 Chunks = 0 ;
84
+ ui64 Rows;
85
+ ui64 DataWeight;
86
+ };
87
+
88
+ } // namespace NYql::NFmr
89
+
90
+ namespace std {
91
+ template <>
92
+ struct hash <NYql::NFmr::TFmrTableOutputRef> {
93
+ size_t operator ()(const NYql::NFmr::TFmrTableOutputRef& ref) const {
94
+ return CombineHashes (hash<TString>()(ref.TableId ), hash<TString>()(ref.PartId ));
95
+ }
96
+ };
97
+ }
98
+
99
+ namespace NYql ::NFmr {
100
+
101
+ struct TStatistics {
102
+ std::unordered_map<TFmrTableOutputRef, TTableStats> OutputTables;
103
+ };
104
+
105
+ // пока оставляем и со старым названием, чтобы тесты не падали, но после рефактора надо будет убрать
66
106
using TTableRef = std::variant<TYtTableRef, TFmrTableRef>;
67
107
68
- struct TUploadTaskParams {
108
+ using TOperationTableRef = std::variant<TYtTableRef, TFmrTableRef>;
109
+
110
+ using TTaskTableRef = std::variant<TYtTableRef, TFmrTableInputRef, TFmrTableOutputRef>;
111
+
112
+ struct TUploadOperationParams {
113
+ TFmrTableRef Input;
114
+ TYtTableRef Output;
115
+ };
116
+
117
+ struct TUploadTaskParams { // DEPRECATED TODO REMOVE
69
118
TFmrTableRef Input;
70
119
TYtTableRef Output;
71
120
};
72
121
73
- struct TDownloadTaskParams {
122
+ struct TUploadTaskParamsNew {
123
+ TFmrTableInputRef Input;
124
+ TYtTableRef Output;
125
+ };
126
+
127
+ struct TDownloadOperationParams {
128
+ TYtTableRef Input;
129
+ TFmrTableRef Output;
130
+ };
131
+
132
+ struct TDownloadTaskParams { // DEPRECATED TODO REMOVE
74
133
TYtTableRef Input;
75
134
TFmrTableRef Output;
76
135
};
77
136
78
- struct TMergeTaskParams {
79
- std::vector<TTableRef> Input;
137
+ struct TDownloadTaskParamsNew {
138
+ TYtTableRef Input;
139
+ TFmrTableOutputRef Output;
140
+ };
141
+
142
+ struct TMergeOperationParams {
143
+ std::vector<TOperationTableRef> Input;
80
144
TFmrTableRef Output;
81
145
};
82
146
83
- using TTaskParams = std::variant<TUploadTaskParams, TDownloadTaskParams, TMergeTaskParams>;
147
+ struct TMergeTaskParams { // DEPRECATED TODO REMOVE
148
+ std::vector<TOperationTableRef> Input;
149
+ TFmrTableRef Output;
150
+ };
151
+
152
+ struct TMergeTaskParamsNew {
153
+ std::vector<TTaskTableRef> Input;
154
+ TFmrTableOutputRef Output;
155
+ };
156
+
157
+ using TOperationParams = std::variant<TUploadOperationParams, TDownloadOperationParams, TMergeOperationParams>;
158
+
159
+ using TTaskParams = std::variant<TUploadTaskParams, TDownloadTaskParams, TMergeTaskParams>; // DEPRECATED TODO REMOVE
160
+
161
+ using TTaskParamsNew = std::variant<TUploadTaskParamsNew, TDownloadTaskParamsNew, TMergeTaskParamsNew>;
84
162
85
163
struct TTask : public TThrRefBase {
86
164
TTask () = default ;
@@ -110,6 +188,7 @@ struct TTaskState: public TThrRefBase {
110
188
ETaskStatus TaskStatus;
111
189
TString TaskId;
112
190
TMaybe<TFmrError> TaskErrorMessage;
191
+ TStatistics Stats;
113
192
114
193
using TPtr = TIntrusivePtr<TTaskState>;
115
194
};
0 commit comments