C++ YT Wrapper
C++ library for working with YT clusters
Loading...
Searching...
No Matches
client.h
Go to the documentation of this file.
1#pragma once
2
7
27
28#include "fwd.h"
29
31#include "constants.h"
32#include "batch_request.h"
33#include "cypress.h"
34#include "distributed_session.h"
35#include "init.h"
36#include "io.h"
37#include "node.h"
38#include "operation.h"
39
40#include <library/cpp/threading/future/future.h>
41
42#include <util/datetime/base.h>
43#include <util/generic/maybe.h>
44#include <util/system/compiler.h>
45
47namespace NYT {
48
50
53{
55 TString Login;
56
58 TString Realm;
59};
60
62
68{
71
73 TMaybe<TGUID> ObjectId;
74
79 TMaybe<TString> ObjectName;
80
82 TMaybe<TGUID> SubjectId;
83
85 TMaybe<TString> SubjectName;
86};
87
94{
98 TVector<TCheckPermissionResult> Columns;
99};
100
102
106class ILock
107 : public TThrRefBase
108{
109public:
110 virtual ~ILock() = default;
111
113 virtual const TLockId& GetId() const = 0;
114
116 virtual TNodeId GetLockedNodeId() const = 0;
117
123 virtual const ::NThreading::TFuture<void>& GetAcquiredFuture() const = 0;
124
130 void Wait(TDuration timeout = TDuration::Max());
131};
132
134
139 : public TThrRefBase
140 , public ICypressClient
141 , public IIOClient
142 , public IOperationClient
143{
144public:
149 [[nodiscard]] virtual ITransactionPtr StartTransaction(
151
157 const TRichYPath& richPath,
158 i64 cookieCount,
159 const TStartDistributedWriteFileOptions& options = {}) = 0;
160
166 const TRichYPath& richPath,
167 i64 cookieCount,
168 const TStartDistributedWriteTableOptions& options = {}) = 0;
169
177 virtual void AlterTable(
178 const TYPath& path,
179 const TAlterTableOptions& options = TAlterTableOptions()) = 0;
180
185 virtual TBatchRequestPtr CreateBatchRequest() = 0;
186
195 virtual IClientPtr GetParentClient(bool ignoreGlobalTx = false) = 0;
196};
197
199
200
205 : virtual public IClientBase
206{
207public:
209 virtual const TTransactionId& GetId() const = 0;
210
227 virtual ILockPtr Lock(
228 const TYPath& path,
229 ELockMode mode,
230 const TLockOptions& options = TLockOptions()) = 0;
231
242 virtual void Unlock(
243 const TYPath& path,
244 const TUnlockOptions& options = TUnlockOptions()) = 0;
245
252 virtual void Commit(const TCommitTransactionOptions& options = {}) = 0;
253
260 virtual void Abort() = 0;
261
267 virtual void Ping() = 0;
268
274 virtual void Detach();
275};
276
278
281 : virtual public IClientBase
282{
283public:
292 [[nodiscard]] virtual ITransactionPtr AttachTransaction(
293 const TTransactionId& transactionId,
295
300 virtual void MountTable(
301 const TYPath& path,
302 const TMountTableOptions& options = TMountTableOptions()) = 0;
303
308 virtual void UnmountTable(
309 const TYPath& path,
310 const TUnmountTableOptions& options = TUnmountTableOptions()) = 0;
311
316 virtual void RemountTable(
317 const TYPath& path,
318 const TRemountTableOptions& options = TRemountTableOptions()) = 0;
319
329 virtual void FreezeTable(
330 const TYPath& path,
331 const TFreezeTableOptions& options = TFreezeTableOptions()) = 0;
332
340 virtual void UnfreezeTable(
341 const TYPath& path,
342 const TUnfreezeTableOptions& options = TUnfreezeTableOptions()) = 0;
343
348 virtual void ReshardTable(
349 const TYPath& path,
350 const TVector<TKey>& pivotKeys,
351 const TReshardTableOptions& options = TReshardTableOptions()) = 0;
352
357 virtual void ReshardTable(
358 const TYPath& path,
359 i64 tabletCount,
360 const TReshardTableOptions& options = TReshardTableOptions()) = 0;
361
366 virtual void InsertRows(
367 const TYPath& path,
368 const TNode::TListType& rows,
369 const TInsertRowsOptions& options = TInsertRowsOptions()) = 0;
370
375 virtual void DeleteRows(
376 const TYPath& path,
377 const TNode::TListType& keys,
378 const TDeleteRowsOptions& options = TDeleteRowsOptions()) = 0;
379
393 virtual void TrimRows(
394 const TYPath& path,
395 i64 tabletIndex,
396 i64 rowCount,
397 const TTrimRowsOptions& options = TTrimRowsOptions()) = 0;
398
403 virtual TNode::TListType LookupRows(
404 const TYPath& path,
405 const TNode::TListType& keys,
406 const TLookupRowsOptions& options = TLookupRowsOptions()) = 0;
407
412 virtual TNode::TListType SelectRows(
413 const TString& query,
414 const TSelectRowsOptions& options = TSelectRowsOptions()) = 0;
415
422 virtual void AlterTableReplica(
423 const TReplicaId& replicaId,
424 const TAlterTableReplicaOptions& alterTableReplicaOptions) = 0;
425
430 virtual ui64 GenerateTimestamp() = 0;
431
434
440 const TOperationId& operationId,
441 const TGetOperationOptions& options = TGetOperationOptions()) = 0;
442
448 const TString& alias,
449 const TGetOperationOptions& options = TGetOperationOptions()) = 0;
450
456 const TListOperationsOptions& options = TListOperationsOptions()) = 0;
457
463 const TOperationId& operationId,
464 const TUpdateOperationParametersOptions& options) = 0;
465
471 const TOperationId& operationId,
472 const TJobId& jobId,
473 const TGetJobOptions& options = TGetJobOptions()) = 0;
474
480 const TOperationId& operationId,
481 const TListJobsOptions& options = TListJobsOptions()) = 0;
482
489 virtual IFileReaderPtr GetJobInput(
490 const TJobId& jobId,
491 const TGetJobInputOptions& options = TGetJobInputOptions()) = 0;
492
499 virtual IFileReaderPtr GetJobFailContext(
500 const TOperationId& operationId,
501 const TJobId& jobId,
503
516 virtual IFileReaderPtr GetJobStderr(
517 const TOperationId& operationId,
518 const TJobId& jobId,
519 const TGetJobStderrOptions& options = TGetJobStderrOptions()) = 0;
520
529 virtual IFileReaderPtr GetJobTrace(
530 const TOperationId& operationId,
531 const TJobId& jobId,
532 const TGetJobTraceOptions& options = TGetJobTraceOptions()) = 0;
533
545 virtual TNode::TListType SkyShareTable(
546 const std::vector<TYPath>& tablePaths,
547 const TSkyShareTableOptions& options) = 0;
548
561 const TString& user,
562 EPermission permission,
563 const TYPath& path,
564 const TCheckPermissionOptions& options = TCheckPermissionOptions()) = 0;
565
568 virtual TVector<TTabletInfo> GetTabletInfos(
569 const TYPath& path,
570 const TVector<int>& tabletIndexes,
571 const TGetTabletInfosOptions& options = TGetTabletInfosOptions()) = 0;
572
578 virtual const TNode::TMapType& GetDynamicConfiguration(const TString& configProfile);
579
588
595 virtual void SuspendOperation(
596 const TOperationId& operationId,
598
602 virtual void ResumeOperation(
603 const TOperationId& operationId,
604 const TResumeOperationOptions& options = TResumeOperationOptions()) = 0;
605
609
614 const TDistributedWriteTableSession& session,
615 const TPingDistributedWriteTableOptions& options = {}) = 0;
616
621 const TDistributedWriteTableSession& session,
622 const TVector<TWriteTableFragmentResult>& results,
623 const TFinishDistributedWriteTableOptions& options = {}) = 0;
624
626
630
635 const TDistributedWriteFileSession& session,
636 const TPingDistributedWriteFileOptions& options = {}) = 0;
637
642 const TDistributedWriteFileSession& session,
643 const TVector<TWriteFileFragmentResult>& results,
644 const TFinishDistributedWriteFileOptions& options = {}) = 0;
645
647
657 virtual void Shutdown() = 0;
658};
659
662 const TString& serverName,
663 const TCreateClientOptions& options = {});
664
666IClientPtr CreateClient(
667 const TString& serverName,
668 const TCreateClientOptions& options = {});
669
672 const TCreateClientOptions& options = {});
673
675
676} // namespace NYT
Base class for NYT::IClient and NYT::ITransaction.
Definition client.h:143
virtual TDistributedWriteTableSessionWithCookies StartDistributedWriteTableSession(const TRichYPath &richPath, i64 cookieCount, const TStartDistributedWriteTableOptions &options={})=0
Initialize distributed table session and request cookies for participants.
virtual IClientPtr GetParentClient(bool ignoreGlobalTx=false)=0
Get root client.
virtual TBatchRequestPtr CreateBatchRequest()=0
Create batch request object that allows to execute several light requests in parallel.
virtual ITransactionPtr StartTransaction(const TStartTransactionOptions &options=TStartTransactionOptions())=0
Start a [transaction] (https://ytsaurus.tech/docs/en/user-guide/storage/transactions....
virtual void AlterTable(const TYPath &path, const TAlterTableOptions &options=TAlterTableOptions())=0
Change properties of table.
virtual TDistributedWriteFileSessionWithCookies StartDistributedWriteFileSession(const TRichYPath &richPath, i64 cookieCount, const TStartDistributedWriteFileOptions &options={})=0
Initialize distributed file session and request cookies for participants.
Interface containing non-transactional commands.
Definition client.h:282
virtual void TrimRows(const TYPath &path, i64 tabletIndex, i64 rowCount, const TTrimRowsOptions &options=TTrimRowsOptions())=0
Trim rows from the beginning of ordered dynamic table.
virtual void Shutdown()=0
Synchronously terminates all client's background activities.
virtual ITransactionPtr AttachTransaction(const TTransactionId &transactionId, const TAttachTransactionOptions &options=TAttachTransactionOptions())=0
Attach to existing master transaction.
virtual void ReshardTable(const TYPath &path, const TVector< TKey > &pivotKeys, const TReshardTableOptions &options=TReshardTableOptions())=0
Reshard dynamic table (break it into tablets) by given pivot keys.
virtual TListOperationsResult ListOperations(const TListOperationsOptions &options=TListOperationsOptions())=0
List operations satisfying given filters.
virtual ui64 GenerateTimestamp()=0
Generate a monotonously increasing master timestamp.
virtual void CheckClusterLiveness(const TCheckClusterLivenessOptions &options=TCheckClusterLivenessOptions())=0
Check cluster liveness.
virtual void AlterTableReplica(const TReplicaId &replicaId, const TAlterTableReplicaOptions &alterTableReplicaOptions)=0
Change properties of table replica.
virtual void FinishDistributedWriteFileSession(const TDistributedWriteFileSession &session, const TVector< TWriteFileFragmentResult > &results, const TFinishDistributedWriteFileOptions &options={})=0
Merge all write fragments results into file and close distributed session.
virtual void InsertRows(const TYPath &path, const TNode::TListType &rows, const TInsertRowsOptions &options=TInsertRowsOptions())=0
Insert rows into dynamic table.
virtual void PingDistributedWriteFileSession(const TDistributedWriteFileSession &session, const TPingDistributedWriteFileOptions &options={})=0
Ping distributed session to prolong its main transaction lifetime.
virtual TOperationAttributes GetOperation(const TOperationId &operationId, const TGetOperationOptions &options=TGetOperationOptions())=0
Get operation attributes.
virtual void SuspendOperation(const TOperationId &operationId, const TSuspendOperationOptions &options=TSuspendOperationOptions())=0
Suspend operation.
virtual void PingDistributedWriteTableSession(const TDistributedWriteTableSession &session, const TPingDistributedWriteTableOptions &options={})=0
Ping distributed session to prolong its main transaction lifetime.
virtual TNode::TListType SelectRows(const TString &query, const TSelectRowsOptions &options=TSelectRowsOptions())=0
Select rows from dynamic table, using SQL dialect.
virtual const TNode::TMapType & GetDynamicConfiguration(const TString &configProfile)
Get cluster configuration stored in Cypress by profile name (e.g. "default").
virtual void UnfreezeTable(const TYPath &path, const TUnfreezeTableOptions &options=TUnfreezeTableOptions())=0
Switch dynamic table from frozen into mounted state.
virtual void FinishDistributedWriteTableSession(const TDistributedWriteTableSession &session, const TVector< TWriteTableFragmentResult > &results, const TFinishDistributedWriteTableOptions &options={})=0
Merge all write fragments results into table and close distributed session.
virtual void ResumeOperation(const TOperationId &operationId, const TResumeOperationOptions &options=TResumeOperationOptions())=0
Resume previously suspended operation.
virtual IFileReaderPtr GetJobInput(const TJobId &jobId, const TGetJobInputOptions &options=TGetJobInputOptions())=0
Get the input of a running or failed job.
virtual TJobAttributes GetJob(const TOperationId &operationId, const TJobId &jobId, const TGetJobOptions &options=TGetJobOptions())=0
Get job attributes.
virtual TAuthorizationInfo WhoAmI()=0
Return YT username of current client.
virtual IFileReaderPtr GetJobTrace(const TOperationId &operationId, const TJobId &jobId, const TGetJobTraceOptions &options=TGetJobTraceOptions())=0
Get trace of a job.
virtual void MountTable(const TYPath &path, const TMountTableOptions &options=TMountTableOptions())=0
Mount dynamic table.
virtual TNode::TListType LookupRows(const TYPath &path, const TNode::TListType &keys, const TLookupRowsOptions &options=TLookupRowsOptions())=0
Lookup rows with given keys from dynamic table.
virtual void ReshardTable(const TYPath &path, i64 tabletCount, const TReshardTableOptions &options=TReshardTableOptions())=0
Reshard dynamic table, breaking it into given number of tablets.
virtual TNode::TListType SkyShareTable(const std::vector< TYPath > &tablePaths, const TSkyShareTableOptions &options)=0
Create one or several rbtorrents for files in a blob table.
virtual TCheckPermissionResponse CheckPermission(const TString &user, EPermission permission, const TYPath &path, const TCheckPermissionOptions &options=TCheckPermissionOptions())=0
Check if user has permission to access a Cypress node at path.
virtual void UnmountTable(const TYPath &path, const TUnmountTableOptions &options=TUnmountTableOptions())=0
Unmount dynamic table.
virtual IFileReaderPtr GetJobStderr(const TOperationId &operationId, const TJobId &jobId, const TGetJobStderrOptions &options=TGetJobStderrOptions())=0
Get stderr of a running or failed job.
virtual IFileReaderPtr GetJobFailContext(const TOperationId &operationId, const TJobId &jobId, const TGetJobFailContextOptions &options=TGetJobFailContextOptions())=0
Get fail context of a failed job.
virtual void DeleteRows(const TYPath &path, const TNode::TListType &keys, const TDeleteRowsOptions &options=TDeleteRowsOptions())=0
Delete rows from dynamic table.
virtual TVector< TTabletInfo > GetTabletInfos(const TYPath &path, const TVector< int > &tabletIndexes, const TGetTabletInfosOptions &options=TGetTabletInfosOptions())=0
Get information about tablet.
virtual void RemountTable(const TYPath &path, const TRemountTableOptions &options=TRemountTableOptions())=0
Remount dynamic table.
virtual void UpdateOperationParameters(const TOperationId &operationId, const TUpdateOperationParametersOptions &options)=0
Update operation runtime parameters.
virtual TListJobsResult ListJobs(const TOperationId &operationId, const TListJobsOptions &options=TListJobsOptions())=0
virtual void FreezeTable(const TYPath &path, const TFreezeTableOptions &options=TFreezeTableOptions())=0
Switch dynamic table from mounted' into frozen' state.
virtual TOperationAttributes GetOperation(const TString &alias, const TGetOperationOptions &options=TGetOperationOptions())=0
Get operation attributes.
Client interface to execute Cypress-related commands.
Definition cypress.h:22
Interface for creating table and file readers and writer.
Definition io.h:460
Interface representing a lock obtained from NYT::ITransaction::Lock.
Definition client.h:108
virtual TNodeId GetLockedNodeId() const =0
Get cypress node id of locked object.
virtual const TLockId & GetId() const =0
Get cypress node id of lock itself.
void Wait(TDuration timeout=TDuration::Max())
Wait until lock is in "acquired" state.
virtual const ::NThreading::TFuture< void > & GetAcquiredFuture() const =0
Get future that will be set once lock is in "acquired" state.
Interface representing a master transaction.
Definition client.h:206
virtual void Detach()
Detach transaction.
virtual void Unlock(const TYPath &path, const TUnlockOptions &options=TUnlockOptions())=0
Remove all the locks (including pending ones) for this transaction from a Cypress node at path.
virtual ILockPtr Lock(const TYPath &path, ELockMode mode, const TLockOptions &options=TLockOptions())=0
Try to lock given path.
virtual const TTransactionId & GetId() const =0
Get id of transaction.
virtual void Ping()=0
Explicitly ping transaction.
virtual void Commit(const TCommitTransactionOptions &options={})=0
Commit transaction.
virtual void Abort()=0
Abort transaction.
Main namespace of YT client.
Definition abortable_stream.h:7
EPermission
Definition client_method_options.h:1514
ESecurityAction
Whether permission is granted or denied.
Definition client_method_options.h:1545
IClientPtr CreateClient(const TString &serverName, const TCreateClientOptions &options={})
Create a client for particular MapReduce cluster.
IClientPtr CreateClientFromEnv(const TCreateClientOptions &options={})
Create a client for mapreduce cluster specified in YT_PROXY environment variable.
ELockMode
Type of the lock.
Definition client_method_options.h:960
IClientPtr CreateRpcClient(const TString &serverName, const TCreateClientOptions &options={})
Create a rpc client for particular cluster.
Interface of client capable of managing operations.
Definition operation.h:3407
Options for NYT::IClient::AlterTable.
Definition client_method_options.h:1120
Options for NYT::IClient::AlterTableReplica.
Definition client_method_options.h:1462
Options for attaching transaction.
Definition client_method_options.h:932
OAuth info (returned by NYT::IClient::WhoAmI).
Definition client.h:53
TString Login
User's login.
Definition client.h:55
TString Realm
Realm.
Definition client.h:58
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
TVector< TCheckPermissionResult > Columns
Results for the table columns access permissions.
Definition client.h:98
Part of NYT::TCheckPermissionResponse.
Definition client.h:68
TMaybe< TGUID > SubjectId
Id of the subject for whom the access was denied by a "deny" rule.
Definition client.h:82
TMaybe< TGUID > ObjectId
Id of the object whose ACL's "deny" rule forbids the access.
Definition client.h:73
TMaybe< TString > SubjectName
Name of the subject for whom the access was denied by a "deny" rule.
Definition client.h:85
TMaybe< TString > ObjectName
Name of the object whose ACL's "deny" rule forbids the access.
Definition client.h:79
ESecurityAction Action
Was the access granted or not.
Definition client.h:70
Options for NYT::ITransaction::Commit.
Definition client_method_options.h:1029
Options for NYT::CreateClient;.
Definition client_method_options.h:1212
Options for NYT::IClient::DeleteRows.
Definition client_method_options.h:1439
Definition distributed_session.h:94
Definition distributed_session.h:59
Definition distributed_session.h:122
Definition distributed_session.h:87
Options for NYT::IClient::FreezeTable.
Definition client_method_options.h:1105
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::IClient::GetTabletInfos.
Definition client_method_options.h:1696
Options for NYT::IClient::InsertRows.
Definition client_method_options.h:1401
Job attributes.
Definition operation.h:3038
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 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
Operation info.
Definition operation.h:2516
Definition distributed_session.h:117
Definition distributed_session.h:82
Options for NYT::IClient::RemountTable.
Definition client_method_options.h:1089
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::IClient::SkyShareTable.
Definition client_method_options.h:1704
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 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