C++ YT Wrapper
C++ library for working with YT clusters
Loading...
Searching...
No Matches
raw_client.h
1#pragma once
2
3#include "client.h"
5#include "operation.h"
6
7#include <yt/cpp/mapreduce/interface/abortable_stream.h>
8
9#include <yt/cpp/mapreduce/http/context.h>
10
11namespace NYT {
12
14
17 : public TThrRefBase
18 , public IOutputStream
19{
20public:
21 virtual TString GetResponse() const = 0;
22};
23
25
27 : public virtual TThrRefBase
28{
29public:
30 // Cypress
31
32 virtual TNode Get(
33 const TTransactionId& transactionId,
34 const TYPath& path,
35 const TGetOptions& options = {}) = 0;
36
37 virtual TNode TryGet(
38 const TTransactionId& transactionId,
39 const TYPath& path,
40 const TGetOptions& options = {}) = 0;
41
42 virtual void Set(
43 TMutationId& mutationId,
44 const TTransactionId& transactionId,
45 const TYPath& path,
46 const TNode& value,
47 const TSetOptions& options = {}) = 0;
48
49 virtual bool Exists(
50 const TTransactionId& transactionId,
51 const TYPath& path,
52 const TExistsOptions& options = {}) = 0;
53
54 virtual void MultisetAttributes(
55 TMutationId& mutationId,
56 const TTransactionId& transactionId,
57 const TYPath& path,
58 const TNode::TMapType& value,
59 const TMultisetAttributesOptions& options = {}) = 0;
60
61 virtual TNodeId Create(
62 TMutationId& mutatatonId,
63 const TTransactionId& transactionId,
64 const TYPath& path,
65 const ENodeType& type,
66 const TCreateOptions& options = {}) = 0;
67
68 virtual TNodeId CopyWithoutRetries(
69 const TTransactionId& transactionId,
70 const TYPath& sourcePath,
71 const TYPath& destinationPath,
72 const TCopyOptions& options = {}) = 0;
73
74 virtual TNodeId CopyInsideMasterCell(
75 TMutationId& mutationId,
76 const TTransactionId& transactionId,
77 const TYPath& sourcePath,
78 const TYPath& destinationPath,
79 const TCopyOptions& options = {}) = 0;
80
81 virtual TNodeId MoveWithoutRetries(
82 const TTransactionId& transactionId,
83 const TYPath& sourcePath,
84 const TYPath& destinationPath,
85 const TMoveOptions& options = {}) = 0;
86
87 virtual TNodeId MoveInsideMasterCell(
88 TMutationId& mutationId,
89 const TTransactionId& transactionId,
90 const TYPath& sourcePath,
91 const TYPath& destinationPath,
92 const TMoveOptions& options = {}) = 0;
93
94 virtual void Remove(
95 TMutationId& mutationId,
96 const TTransactionId& transactionId,
97 const TYPath& path,
98 const TRemoveOptions& options = {}) = 0;
99
100 virtual TNode::TListType List(
101 const TTransactionId& transactionId,
102 const TYPath& path,
103 const TListOptions& options = {}) = 0;
104
105 virtual TNodeId Link(
106 TMutationId& mutationId,
107 const TTransactionId& transactionId,
108 const TYPath& targetPath,
109 const TYPath& linkPath,
110 const TLinkOptions& options = {}) = 0;
111
112 virtual TLockId Lock(
113 TMutationId& mutationId,
114 const TTransactionId& transactionId,
115 const TYPath& path,
116 ELockMode mode,
117 const TLockOptions& options = {}) = 0;
118
119 virtual void Unlock(
120 TMutationId& mutationId,
121 const TTransactionId& transactionId,
122 const TYPath& path,
123 const TUnlockOptions& options = {}) = 0;
124
125 virtual void Concatenate(
126 const TTransactionId& transactionId,
127 const TVector<TRichYPath>& sourcePaths,
128 const TRichYPath& destinationPath,
129 const TConcatenateOptions& options = {}) = 0;
130
131 // Transactions
132
133 virtual TTransactionId StartTransaction(
134 TMutationId& mutationId,
135 const TTransactionId& parentId,
136 const TStartTransactionOptions& options = {}) = 0;
137
138 virtual void PingTransaction(const TTransactionId& transactionId) = 0;
139
140 virtual void AbortTransaction(
141 TMutationId& mutationId,
142 const TTransactionId& transactionId) = 0;
143
144 virtual void CommitTransaction(
145 TMutationId& mutationId,
146 const TTransactionId& transactionId,
147 const TCommitTransactionOptions& options = {}) = 0;
148
149 // Operations
150
151 virtual TOperationId StartOperation(
152 TMutationId& mutationId,
153 const TTransactionId& transactionId,
154 EOperationType type,
155 const TNode& spec) = 0;
156
157 virtual TOperationAttributes GetOperation(
158 const TOperationId& operationId,
159 const TGetOperationOptions& options = {}) = 0;
160
161 virtual TOperationAttributes GetOperation(
162 const TString& operationId,
163 const TGetOperationOptions& options = {}) = 0;
164
165 virtual void AbortOperation(
166 TMutationId& mutationId,
167 const TOperationId& operationId) = 0;
168
169 virtual void CompleteOperation(
170 TMutationId& mutationId,
171 const TOperationId& operationId) = 0;
172
173 virtual void SuspendOperation(
174 TMutationId& mutationId,
175 const TOperationId& operationId,
176 const TSuspendOperationOptions& options = {}) = 0;
177
178 virtual void ResumeOperation(
179 TMutationId& mutationId,
180 const TOperationId& operationId,
181 const TResumeOperationOptions& options = {}) = 0;
182
183 virtual TListOperationsResult ListOperations(const TListOperationsOptions& options = {}) = 0;
184
185 virtual void UpdateOperationParameters(
186 const TOperationId& operationId,
187 const TUpdateOperationParametersOptions& options = {}) = 0;
188
189 virtual NYson::TYsonString GetJob(
190 const TOperationId& operationId,
191 const TJobId& jobId,
192 const TGetJobOptions& options = {}) = 0;
193
194 virtual TListJobsResult ListJobs(
195 const TOperationId& operationId,
196 const TListJobsOptions& options = {}) = 0;
197
198 virtual IFileReaderPtr GetJobInput(
199 const TJobId& jobId,
200 const TGetJobInputOptions& options = {}) = 0;
201
202 virtual IFileReaderPtr GetJobFailContext(
203 const TOperationId& operationId,
204 const TJobId& jobId,
205 const TGetJobFailContextOptions& options = {}) = 0;
206
207 virtual IFileReaderPtr GetJobStderr(
208 const TOperationId& operationId,
209 const TJobId& jobId,
210 const TGetJobStderrOptions& options = {}) = 0;
211
212 virtual IFileReaderPtr GetJobTrace(
213 const TOperationId& operationId,
214 const TJobId& jobId,
215 const TGetJobTraceOptions& options = {}) = 0;
216
217 // Files
218
219 virtual std::unique_ptr<IAbortableInputStream> ReadFile(
220 const TTransactionId& transactionId,
221 const TRichYPath& path,
222 const TFileReaderOptions& options = {}) = 0;
223
224 virtual std::unique_ptr<IAbortableInputStream> ReadFilePartition(
225 const TString& cookie,
226 const TFilePartitionReaderOptions& options = {}) = 0;
227
228 virtual std::unique_ptr<IOutputStream> WriteFile(
229 const TTransactionId& transactionId,
230 const TRichYPath& path,
231 const TFileWriterOptions& options = {}) = 0;
232
233 // File cache
234
235 virtual TMaybe<TYPath> GetFileFromCache(
236 const TTransactionId& transactionId,
237 const TString& md5Signature,
238 const TYPath& cachePath,
239 const TGetFileFromCacheOptions& options = {}) = 0;
240
241 virtual TYPath PutFileToCache(
242 const TTransactionId& transactionId,
243 const TYPath& filePath,
244 const TString& md5Signature,
245 const TYPath& cachePath,
246 const TPutFileToCacheOptions& options = {}) = 0;
247
248 // Tables
249
250 virtual void MountTable(
251 TMutationId& mutationId,
252 const TYPath& path,
253 const TMountTableOptions& options = {}) = 0;
254
255 virtual void UnmountTable(
256 TMutationId& mutationId,
257 const TYPath& path,
258 const TUnmountTableOptions& options = {}) = 0;
259
260 virtual void RemountTable(
261 TMutationId& mutationId,
262 const TYPath& path,
263 const TRemountTableOptions& options = {}) = 0;
264
265 virtual void ReshardTableByPivotKeys(
266 TMutationId& mutationId,
267 const TYPath& path,
268 const TVector<TKey>& keys,
269 const TReshardTableOptions& options = {}) = 0;
270
271 virtual void ReshardTableByTabletCount(
272 TMutationId& mutationId,
273 const TYPath& path,
274 i64 tabletCount,
275 const TReshardTableOptions& options = {}) = 0;
276
277 virtual void InsertRows(
278 const TYPath& path,
279 const TNode::TListType& rows,
280 const TInsertRowsOptions& options = {}) = 0;
281
282 virtual void TrimRows(
283 const TYPath& path,
284 i64 tabletIndex,
285 i64 rowCount,
286 const TTrimRowsOptions& options = {}) = 0;
287
288 virtual TNode::TListType LookupRows(
289 const TYPath& path,
290 const TNode::TListType& keys,
291 const TLookupRowsOptions& options = {}) = 0;
292
293 virtual TNode::TListType SelectRows(
294 const TString& query,
295 const TSelectRowsOptions& options = {}) = 0;
296
297 virtual void AlterTable(
298 TMutationId& mutationId,
299 const TTransactionId& transactionId,
300 const TYPath& path,
301 const TAlterTableOptions& options = {}) = 0;
302
303 virtual std::unique_ptr<IOutputStream> WriteTable(
304 const TTransactionId& transcationId,
305 const TRichYPath& path,
306 const TMaybe<TFormat>& format,
307 const TTableWriterOptions& options = {}) = 0;
308
309 virtual std::unique_ptr<IAbortableInputStream> ReadTable(
310 const TTransactionId& transactionId,
311 const TRichYPath& path,
312 const TFormat& format,
313 const TTableReaderOptions& options = {}) = 0;
314
315 virtual std::unique_ptr<IAbortableInputStream> ReadTablePartition(
316 const TString& cookie,
317 const TFormat& format,
318 const TTablePartitionReaderOptions& options = {}) = 0;
319
320 virtual std::unique_ptr<IAbortableInputStream> ReadBlobTable(
321 const TTransactionId& transactionId,
322 const TRichYPath& path,
323 const TKey& key,
324 const TBlobTableReaderOptions& options = {}) = 0;
325
326 virtual void AlterTableReplica(
327 TMutationId& mutationId,
328 const TReplicaId& replicaId,
329 const TAlterTableReplicaOptions& options = {}) = 0;
330
331 virtual void DeleteRows(
332 const TYPath& path,
333 const TNode::TListType& keys,
334 const TDeleteRowsOptions& options = {}) = 0;
335
336 virtual void FreezeTable(
337 const TYPath& path,
338 const TFreezeTableOptions& options = {}) = 0;
339
340 virtual void UnfreezeTable(
341 const TYPath& path,
342 const TUnfreezeTableOptions& options = {}) = 0;
343
344 // Distributed API
345
346 virtual TDistributedWriteTableSessionWithCookies StartDistributedWriteTableSession(
347 TMutationId& mutationId,
348 const TTransactionId& transactionId,
349 const TRichYPath& richPath,
350 i64 cookieCount,
351 const TStartDistributedWriteTableOptions& options = {}) = 0;
352
353 virtual void PingDistributedWriteTableSession(
354 const TDistributedWriteTableSession& session,
355 const TPingDistributedWriteTableOptions& options = {}) = 0;
356
357 virtual void FinishDistributedWriteTableSession(
358 TMutationId& mutationId,
359 const TDistributedWriteTableSession& session,
360 const TVector<TWriteTableFragmentResult>& results,
361 const TFinishDistributedWriteTableOptions& options = {}) = 0;
362
363 virtual std::unique_ptr<IOutputStreamWithResponse> WriteTableFragment(
364 const TDistributedWriteTableCookie& cookie,
365 const TMaybe<TFormat>& format,
366 const TTableFragmentWriterOptions& options = {}) = 0;
367
368 virtual TDistributedWriteFileSessionWithCookies StartDistributedWriteFileSession(
369 TMutationId& mutationId,
370 const TTransactionId& transactionId,
371 const TRichYPath& richPath,
372 i64 cookieCount,
373 const TStartDistributedWriteFileOptions& options = {}) = 0;
374
375 virtual void PingDistributedWriteFileSession(
376 const TDistributedWriteFileSession& session,
377 const TPingDistributedWriteFileOptions& options = {}) = 0;
378
379 virtual void FinishDistributedWriteFileSession(
380 TMutationId& mutationId,
381 const TDistributedWriteFileSession& session,
382 const TVector<TWriteFileFragmentResult>& results,
383 const TFinishDistributedWriteFileOptions& options = {}) = 0;
384
385 virtual std::unique_ptr<IOutputStreamWithResponse> WriteFileFragment(
386 const TDistributedWriteFileCookie& cookie,
387 const TFileFragmentWriterOptions& options = {}) = 0;
388
389 // Misc
390
391 virtual TCheckPermissionResponse CheckPermission(
392 const TString& user,
393 EPermission permission,
394 const TYPath& path,
395 const TCheckPermissionOptions& options = {}) = 0;
396
397 virtual TVector<TTabletInfo> GetTabletInfos(
398 const TYPath& path,
399 const TVector<int>& tabletIndexes,
400 const TGetTabletInfosOptions& options = {}) = 0;
401
402 virtual TVector<TTableColumnarStatistics> GetTableColumnarStatistics(
403 const TTransactionId& transactionId,
404 const TVector<TRichYPath>& paths,
405 const TGetTableColumnarStatisticsOptions& options = {}) = 0;
406
407 virtual TMultiTablePartitions GetTablePartitions(
408 const TTransactionId& transactionId,
409 const TVector<TRichYPath>& paths,
410 const TGetTablePartitionsOptions& options = {}) = 0;
411
412 virtual TFilePartitions GetFilePartitions(
413 const TTransactionId& transactionId,
414 const TYPath& path,
415 const TVector<TFileReadRange>& ranges,
416 const TGetFilePartitionsOptions& options = {}) = 0;
417
418 virtual void CheckClusterLiveness(const TCheckClusterLivenessOptions& options = {}) = 0;
419
420 virtual ui64 GenerateTimestamp() = 0;
421
422 // Batch
423
424 virtual IRawBatchRequestPtr CreateRawBatchRequest() = 0;
425
426 // Other
427
428 virtual IRawClientPtr Clone() = 0;
429
430 virtual IRawClientPtr Clone(const TClientContext& context) = 0;
431};
432
434
435} // namespace NYT
Interface for HTTP/RPC output streams that provide a response after the stream is closed.
Definition raw_client.h:19
Definition raw_client.h:28
Main namespace of YT client.
Definition abortable_stream.h:7
EPermission
Definition client_method_options.h:1514
ENodeType
Type of the cypress node.
Definition client_method_options.h:22
ELockMode
Type of the lock.
Definition client_method_options.h:960
EOperationType
Operation type.
Definition operation.h:2445
Options for NYT::IClient::AlterTable.
Definition client_method_options.h:1120
Options for NYT::IClient::AlterTableReplica.
Definition client_method_options.h:1462
Options for NYT::IIOClient::CreateBlobTableReader.
Definition client_method_options.h:368
Options for NYT::IClient::CheckClusterLiveness.
Definition client_method_options.h:1728
Options for NYT::IClient::CheckPermission.
Definition client_method_options.h:1558
Result of NYT::IClient::CheckPermission command.
Definition client.h:94
Options for NYT::ITransaction::Commit.
Definition client_method_options.h:1029
Options for NYT::ICypressClient::Concatenate.
Definition client_method_options.h:347
Options for NYT::ICypressClient::Copy.
Definition client_method_options.h:276
Options for NYT::ICypressClient::Create.
Definition client_method_options.h:126
Options for NYT::IClient::DeleteRows.
Definition client_method_options.h:1439
Definition distributed_session.h:94
Definition distributed_session.h:59
Options for NYT::ICypressClient::Exists.
Definition client_method_options.h:198
Options for writing file fragment in distributed session.
Definition client_method_options.h:677
Options for NYT::IClient::CreateFilePartitionReader.
Definition client_method_options.h:585
File partitions from GetFilePartitions command.
Definition common.h:1351
Options for reading file from YT.
Definition client_method_options.h:569
Options for writing file.
Definition client_method_options.h:647
Definition distributed_session.h:122
Definition distributed_session.h:87
Class representing YT data format.
Definition format.h:38
Options for NYT::IClient::FreezeTable.
Definition client_method_options.h:1105
Options for NYT::IClient::GetFileFromCache.
Definition client_method_options.h:1487
Options for NYT::IClient::GetFilePartitions.
Definition client_method_options.h:1677
Options for NYT::IClient::GetJobFailContext.
Definition operation.h:3148
Options for NYT::IClient::GetJobInput.
Definition operation.h:3139
Options for NYT::IClient::GetJob.
Definition operation.h:3126
Options for NYT::IClient::GetJobStderr.
Definition operation.h:3157
Options for NYT::IClient::GetJobTrace.
Definition operation.h:3187
Options for NYT::IClient::GetOperation call.
Definition operation.h:2393
Options for NYT::ICypressClient::Get.
Definition client_method_options.h:208
Options for NYT::IClient::GetTableColumnarStatistics.
Definition client_method_options.h:1593
Options for NYT::IClient::GetTablePartitions.
Definition client_method_options.h:1626
Options for NYT::IClient::GetTabletInfos.
Definition client_method_options.h:1696
Options for NYT::IClient::InsertRows.
Definition client_method_options.h:1401
Options for NYT::ICypressClient::Link.
Definition client_method_options.h:324
Options for NYT::IClient::ListJobs.
Definition operation.h:2911
Response for NYT::IOperation::ListJobs.
Definition operation.h:3103
Options of NYT::IClient::ListOperations command.
Definition operation.h:2599
Response for NYT::IClient::ListOperations command.
Definition operation.h:2684
Options for NYT::ICypressClient::List.
Definition client_method_options.h:258
Options for locking cypress node.
Definition client_method_options.h:978
Options for NYT::IClient::LookupRows.
Definition client_method_options.h:1143
Options for NYT::IClient::MountTable.
Definition client_method_options.h:1056
Options for NYT::ICypressClient::Move.
Definition client_method_options.h:300
Table partitions from GetTablePartitions command.
Definition common.h:1319
Options for NYT::ICypressClient::MultisetAttributes.
Definition client_method_options.h:242
Operation info.
Definition operation.h:2516
Definition distributed_session.h:117
Definition distributed_session.h:82
Options for NYT::IClient::GetTableColumnarStatistics.
Definition client_method_options.h:1500
Options for NYT::IClient::RemountTable.
Definition client_method_options.h:1089
Options for NYT::ICypressClient::Remove.
Definition client_method_options.h:163
Options for NYT::IClient::ReshardTable.
Definition client_method_options.h:1097
Options for NYT::IOperation::ResumeOperation.
Definition client_method_options.h:493
Path with additional attributes.
Definition common.h:1040
Options for NYT::IClient::SelectRows.
Definition client_method_options.h:1172
Options for NYT::ICypressClient::Set.
Definition client_method_options.h:223
Definition distributed_session.h:103
Definition distributed_session.h:68
Options for NYT::IClient::StartTransaction.
Definition client_method_options.h:886
Options for NYT::IOperation::SuspendOperation.
Definition client_method_options.h:469
Options for writing table fragment in distributed session.
Definition client_method_options.h:878
Options for NYT::IClient::CreatePartitionTableReader.
Definition client_method_options.h:805
Options for NYT::IClient::CreateTableReader.
Definition client_method_options.h:781
Options for NYT::IClient::CreateTableWriter.
Definition client_method_options.h:825
Options for NYT::IClient::TrimRows.
Definition client_method_options.h:1455
Options for NYT::IClient::UnfreezeTable.
Definition client_method_options.h:1113
Options for NYT::ITransaction::Unlock.
Definition client_method_options.h:1017
Options for NYT::IClient::UnmountTable.
Definition client_method_options.h:1074
Options for NYT::IOperation::UpdateParameters.
Definition client_method_options.h:504