C++ YT Wrapper
C++ library for working with YT clusters
Loading...
Searching...
No Matches
NYT::ITransaction Class Referenceabstract

Interface representing a master transaction. More...

#include <client.h>

Inheritance diagram for NYT::ITransaction:
NYT::IClientBase NYT::ICypressClient NYT::IIOClient NYT::IOperationClient

Public Member Functions

virtual const TTransactionId & GetId () const =0
 Get id of transaction.
virtual ILockPtr Lock (const TYPath &path, ELockMode mode, const TLockOptions &options=TLockOptions())=0
 Try to lock given path.
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 void Commit (const TCommitTransactionOptions &options={})=0
 Commit transaction.
virtual void Abort ()=0
 Abort transaction.
virtual void Ping ()=0
 Explicitly ping transaction.
virtual void Detach ()
 Detach transaction.
Public Member Functions inherited from NYT::IClientBase
virtual ITransactionPtr StartTransaction (const TStartTransactionOptions &options=TStartTransactionOptions())=0
 Start a [transaction] (https://ytsaurus.tech/docs/en/user-guide/storage/transactions.html#master_transactions).
virtual TDistributedWriteFileSessionWithCookies StartDistributedWriteFileSession (const TRichYPath &richPath, i64 cookieCount, const TStartDistributedWriteFileOptions &options={})=0
 Initialize distributed file session and request cookies for participants.
virtual TDistributedWriteTableSessionWithCookies StartDistributedWriteTableSession (const TRichYPath &richPath, i64 cookieCount, const TStartDistributedWriteTableOptions &options={})=0
 Initialize distributed table session and request cookies for participants.
virtual void AlterTable (const TYPath &path, const TAlterTableOptions &options=TAlterTableOptions())=0
 Change properties of table.
virtual TBatchRequestPtr CreateBatchRequest ()=0
 Create batch request object that allows to execute several light requests in parallel.
virtual IClientPtr GetParentClient (bool ignoreGlobalTx=false)=0
 Get root client.
Public Member Functions inherited from NYT::ICypressClient
virtual TNodeId Create (const TYPath &path, ENodeType type, const TCreateOptions &options=TCreateOptions())=0
 Create Cypress node of given type.
template<typename TRowType>
TNodeId CreateTable (const TYPath &path, const TSortColumns &sortColumns=TSortColumns(), const TCreateOptions &options=TCreateOptions())
 Create table with schema inferred from the template argument.
virtual void Remove (const TYPath &path, const TRemoveOptions &options=TRemoveOptions())=0
 Remove Cypress node.
virtual bool Exists (const TYPath &path, const TExistsOptions &options=TExistsOptions())=0
 Check if Cypress node exists.
virtual TNode Get (const TYPath &path, const TGetOptions &options=TGetOptions())=0
 Get Cypress node contents.
virtual void Set (const TYPath &path, const TNode &value, const TSetOptions &options=TSetOptions())=0
 Set Cypress node contents.
virtual void MultisetAttributes (const TYPath &path, const TNode::TMapType &attributes, const TMultisetAttributesOptions &options=TMultisetAttributesOptions())=0
 Set multiple attributes for cypress path.
virtual TNode::TListType List (const TYPath &path, const TListOptions &options=TListOptions())=0
 List Cypress map or attribute node keys.
virtual TNodeId Copy (const TYPath &sourcePath, const TYPath &destinationPath, const TCopyOptions &options=TCopyOptions())=0
 Copy Cypress node.
virtual TNodeId Move (const TYPath &sourcePath, const TYPath &destinationPath, const TMoveOptions &options=TMoveOptions())=0
 Move Cypress node (equivalent to copy-then-remove).
virtual TNodeId Link (const TYPath &targetPath, const TYPath &linkPath, const TLinkOptions &options=TLinkOptions())=0
 Create link to Cypress node.
virtual void Concatenate (const TVector< TRichYPath > &sourcePaths, const TRichYPath &destinationPath, const TConcatenateOptions &options=TConcatenateOptions())=0
 Concatenate several tables into one.
virtual void Concatenate (const TVector< TYPath > &sourcePaths, const TYPath &destinationPath, const TConcatenateOptions &options=TConcatenateOptions())
 Concatenate several tables into one.
virtual TRichYPath CanonizeYPath (const TRichYPath &path)=0
 Canonize YPath, moving all the complex YPath features to attributes.
virtual TVector< TTableColumnarStatistics > GetTableColumnarStatistics (const TVector< TRichYPath > &paths, const TGetTableColumnarStatisticsOptions &options={})=0
 Get statistics for given sets of columns in given table ranges.
virtual TMultiTablePartitions GetTablePartitions (const TVector< TRichYPath > &paths, const TGetTablePartitionsOptions &options)=0
 Divide input tables into disjoint partitions.
virtual TFilePartitions GetFilePartitions (const TYPath &path, const TVector< TFileReadRange > &ranges, const TGetFilePartitionsOptions &options={})=0
 Split a file into partitions according to the given byte ranges.
virtual TMaybe< TYPath > GetFileFromCache (const TString &md5Signature, const TYPath &cachePath, const TGetFileFromCacheOptions &options=TGetFileFromCacheOptions())=0
 Get file from file cache.
virtual TYPath PutFileToCache (const TYPath &filePath, const TString &md5Signature, const TYPath &cachePath, const TPutFileToCacheOptions &options=TPutFileToCacheOptions())=0
 Put file to file cache.
Public Member Functions inherited from NYT::IIOClient
virtual IFileReaderPtr CreateFileReader (const TRichYPath &path, const TFileReaderOptions &options=TFileReaderOptions())=0
 Create a reader for file at path.
virtual IFileReaderPtr CreateFilePartitionReader (const TString &cookie, const TFilePartitionReaderOptions &options={})=0
 Create a reader of file partition.
virtual IFileWriterPtr CreateFileWriter (const TRichYPath &path, const TFileWriterOptions &options=TFileWriterOptions())=0
 Create a writer for file at path.
virtual IFileFragmentWriterPtr CreateFileFragmentWriter (const TDistributedWriteFileCookie &cookie, const TFileFragmentWriterOptions &options=TFileFragmentWriterOptions())=0
 Create a fragment writer for given distributed file session cookie.
template<class T>
TTableReaderPtr< T > CreateTableReader (const TRichYPath &path, const TTableReaderOptions &options=TTableReaderOptions())
 Create a typed reader for table at path.
template<class T>
TTableWriterPtr< T > CreateTableWriter (const TRichYPath &path, const TTableWriterOptions &options=TTableWriterOptions())
 Create a typed writer for table at path.
virtual TTableWriterPtr<::google::protobuf::Message > CreateTableWriter (const TRichYPath &path, const ::google::protobuf::Descriptor &descriptor, const TTableWriterOptions &options=TTableWriterOptions())=0
 Create a writer to write protobuf messages with specified descriptor.
template<class T>
ITableFragmentWriterPtr< T > CreateTableFragmentWriter (const TDistributedWriteTableCookie &cookie, const TTableFragmentWriterOptions &options={})
 Create a fragment table writer for given distributed table session cookie.
virtual TRawTableReaderPtr CreateRawReader (const TRichYPath &path, const TFormat &format, const TTableReaderOptions &options=TTableReaderOptions())=0
 Create a reader to read a table using specified format.
virtual TRawTableWriterPtr CreateRawWriter (const TRichYPath &path, const TFormat &format, const TTableWriterOptions &options=TTableWriterOptions())=0
 Create a reader to write a table using specified format.
virtual TRawTableReaderPtr CreateRawTablePartitionReader (const TString &cookie, const TFormat &format, const TTablePartitionReaderOptions &options={})=0
 Create raw reader of table partition.
template<class T>
TTableReaderPtr< T > CreateTablePartitionReader (const TString &cookie, const TTablePartitionReaderOptions &options={})
 Create reader of table partition.
virtual IFileReaderPtr CreateBlobTableReader (const TYPath &path, const TKey &blobId, const TBlobTableReaderOptions &options=TBlobTableReaderOptions())=0
 Create a reader for blob table at path.
Public Member Functions inherited from NYT::IOperationClient
IOperationPtr Map (const TMapOperationSpec &spec, ::TIntrusivePtr< IMapperBase > mapper, const TOperationOptions &options=TOperationOptions())
 Run Map operation.
IOperationPtr Map (::TIntrusivePtr< IMapperBase > mapper, const TOneOrMany< TStructuredTablePath > &input, const TOneOrMany< TStructuredTablePath > &output, const TMapOperationSpec &spec=TMapOperationSpec(), const TOperationOptions &options=TOperationOptions())
 Run Map operation.
virtual IOperationPtr RawMap (const TRawMapOperationSpec &spec, ::TIntrusivePtr< IRawJob > rawJob, const TOperationOptions &options=TOperationOptions())=0
 Run raw Map operation.
IOperationPtr Reduce (const TReduceOperationSpec &spec, ::TIntrusivePtr< IReducerBase > reducer, const TOperationOptions &options=TOperationOptions())
 Run Reduce operation.
IOperationPtr Reduce (::TIntrusivePtr< IReducerBase > reducer, const TOneOrMany< TStructuredTablePath > &input, const TOneOrMany< TStructuredTablePath > &output, const TSortColumns &reduceBy, const TReduceOperationSpec &spec=TReduceOperationSpec(), const TOperationOptions &options=TOperationOptions())
 Run Reduce operation.
virtual IOperationPtr RawReduce (const TRawReduceOperationSpec &spec, ::TIntrusivePtr< IRawJob > rawJob, const TOperationOptions &options=TOperationOptions())=0
 Run raw Reduce operation.
IOperationPtr MapReduce (const TMapReduceOperationSpec &spec, ::TIntrusivePtr< IMapperBase > mapper, ::TIntrusivePtr< IReducerBase > reducer, const TOperationOptions &options=TOperationOptions())
 Run JoinReduce operation.
IOperationPtr MapReduce (const TMapReduceOperationSpec &spec, ::TIntrusivePtr< IMapperBase > mapper, ::TIntrusivePtr< IReducerBase > reduceCombiner, ::TIntrusivePtr< IReducerBase > reducer, const TOperationOptions &options=TOperationOptions())
 Run MapReduce operation.
IOperationPtr MapReduce (::TIntrusivePtr< IMapperBase > mapper, ::TIntrusivePtr< IReducerBase > reducer, const TOneOrMany< TStructuredTablePath > &input, const TOneOrMany< TStructuredTablePath > &output, const TSortColumns &reduceBy, TMapReduceOperationSpec spec=TMapReduceOperationSpec(), const TOperationOptions &options=TOperationOptions())
 Run MapReduce operation.
IOperationPtr MapReduce (::TIntrusivePtr< IMapperBase > mapper, ::TIntrusivePtr< IReducerBase > reduceCombiner, ::TIntrusivePtr< IReducerBase > reducer, const TOneOrMany< TStructuredTablePath > &input, const TOneOrMany< TStructuredTablePath > &output, const TSortColumns &reduceBy, TMapReduceOperationSpec spec=TMapReduceOperationSpec(), const TOperationOptions &options=TOperationOptions())
 Run MapReduce operation.
virtual IOperationPtr RawMapReduce (const TRawMapReduceOperationSpec &spec, ::TIntrusivePtr< IRawJob > mapper, ::TIntrusivePtr< IRawJob > reduceCombiner, ::TIntrusivePtr< IRawJob > reducer, const TOperationOptions &options=TOperationOptions())=0
 Run raw MapReduce operation.
virtual IOperationPtr Sort (const TSortOperationSpec &spec, const TOperationOptions &options=TOperationOptions())=0
 Run Sort operation.
IOperationPtr Sort (const TOneOrMany< TRichYPath > &input, const TRichYPath &output, const TSortColumns &sortBy, const TSortOperationSpec &spec=TSortOperationSpec(), const TOperationOptions &options=TOperationOptions())
 Run Sort operation.
virtual IOperationPtr Merge (const TMergeOperationSpec &spec, const TOperationOptions &options=TOperationOptions())=0
 Run Merge operation.
virtual IOperationPtr Erase (const TEraseOperationSpec &spec, const TOperationOptions &options=TOperationOptions())=0
 Run Erase operation.
virtual IOperationPtr RemoteCopy (const TRemoteCopyOperationSpec &spec, const TOperationOptions &options=TOperationOptions())=0
 Run RemoteCopy operation.
virtual IOperationPtr RunVanilla (const TVanillaOperationSpec &spec, const TOperationOptions &options=TOperationOptions())=0
 Run Vanilla operation.
virtual void AbortOperation (const TOperationId &operationId)=0
 Abort operation.
virtual void CompleteOperation (const TOperationId &operationId)=0
 Complete operation.
virtual void WaitForOperation (const TOperationId &operationId)=0
 Wait for operation to finish.
virtual EOperationBriefState CheckOperation (const TOperationId &operationId)=0
 Check and return operation status.
virtual IOperationPtr AttachOperation (const TOperationId &operationId)=0
 Create an operation object given operation id.

Detailed Description

Interface representing a master transaction.

See also
YT doc

Member Function Documentation

◆ Abort()

virtual void NYT::ITransaction::Abort ( )
pure virtual

Abort transaction.

All changes made by current transaction are lost.

See also
YT doc

◆ Commit()

virtual void NYT::ITransaction::Commit ( const TCommitTransactionOptions & options = {})
pure virtual

Commit transaction.

All changes that are made by transactions become visible globally or to parent transaction.

See also
YT doc

◆ Detach()

virtual void NYT::ITransaction::Detach ( )
virtual

Detach transaction.

Stop any activities connected with it: pinging, aborting on crashes etc. Forget about the transaction totally.

◆ Lock()

virtual ILockPtr NYT::ITransaction::Lock ( const TYPath & path,
ELockMode mode,
const TLockOptions & options = TLockOptions() )
pure virtual

Try to lock given path.

Lock will be held until transaction is committed/aborted or NYT::ITransaction::Unlock method is called. Lock modes:

  • LM_EXCLUSIVE: if exclusive lock is taken no other transaction can take exclusive or shared lock.
  • LM_SHARED: if shared lock is taken other transactions can take shared lock but not exclusive.
  • LM_SNAPSHOT: snapshot lock always succeeds, when snapshot lock is taken current transaction snapshots object. It will not see changes that occurred to it in other transactions.

Exclusive/shared lock can be waitable or not. If nonwaitable lock cannot be taken exception is thrown. If waitable lock cannot be taken it is created in pending state and client can wait until it actually taken. Check NYT::TLockOptions::Waitable and NYT::ILock::GetAcquiredFuture for more details.

See also
YT doc

◆ Ping()

virtual void NYT::ITransaction::Ping ( )
pure virtual

Explicitly ping transaction.

User usually does not need this method (as transactions are pinged automatically, see NYT::TStartTransactionOptions::AutoPingable).

See also
YT doc

◆ Unlock()

virtual void NYT::ITransaction::Unlock ( const TYPath & path,
const TUnlockOptions & options = TUnlockOptions() )
pure virtual

Remove all the locks (including pending ones) for this transaction from a Cypress node at path.

If the locked version of the node differs from the original one, an error will be thrown.

Command is successful even if the node has no locks. Only explicit (created by NYT::ITransaction::Lock) locks are removed.

See also
YT doc

The documentation for this class was generated from the following file: