raw_client.h 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340
  1. #pragma once
  2. #include "client.h"
  3. #include "client_method_options.h"
  4. #include "operation.h"
  5. namespace NYT {
  6. ////////////////////////////////////////////////////////////////////////////////
  7. class IRawClient
  8. : public virtual TThrRefBase
  9. {
  10. public:
  11. // Cypress
  12. virtual TNode Get(
  13. const TTransactionId& transactionId,
  14. const TYPath& path,
  15. const TGetOptions& options = {}) = 0;
  16. virtual TNode TryGet(
  17. const TTransactionId& transactionId,
  18. const TYPath& path,
  19. const TGetOptions& options = {}) = 0;
  20. virtual void Set(
  21. TMutationId& mutationId,
  22. const TTransactionId& transactionId,
  23. const TYPath& path,
  24. const TNode& value,
  25. const TSetOptions& options = {}) = 0;
  26. virtual bool Exists(
  27. const TTransactionId& transactionId,
  28. const TYPath& path,
  29. const TExistsOptions& options = {}) = 0;
  30. virtual void MultisetAttributes(
  31. TMutationId& mutationId,
  32. const TTransactionId& transactionId,
  33. const TYPath& path,
  34. const TNode::TMapType& value,
  35. const TMultisetAttributesOptions& options = {}) = 0;
  36. virtual TNodeId Create(
  37. TMutationId& mutatatonId,
  38. const TTransactionId& transactionId,
  39. const TYPath& path,
  40. const ENodeType& type,
  41. const TCreateOptions& options = {}) = 0;
  42. virtual TNodeId CopyWithoutRetries(
  43. const TTransactionId& transactionId,
  44. const TYPath& sourcePath,
  45. const TYPath& destinationPath,
  46. const TCopyOptions& options = {}) = 0;
  47. virtual TNodeId CopyInsideMasterCell(
  48. TMutationId& mutationId,
  49. const TTransactionId& transactionId,
  50. const TYPath& sourcePath,
  51. const TYPath& destinationPath,
  52. const TCopyOptions& options = {}) = 0;
  53. virtual TNodeId MoveWithoutRetries(
  54. const TTransactionId& transactionId,
  55. const TYPath& sourcePath,
  56. const TYPath& destinationPath,
  57. const TMoveOptions& options = {}) = 0;
  58. virtual TNodeId MoveInsideMasterCell(
  59. TMutationId& mutationId,
  60. const TTransactionId& transactionId,
  61. const TYPath& sourcePath,
  62. const TYPath& destinationPath,
  63. const TMoveOptions& options = {}) = 0;
  64. virtual void Remove(
  65. TMutationId& mutationId,
  66. const TTransactionId& transactionId,
  67. const TYPath& path,
  68. const TRemoveOptions& options = {}) = 0;
  69. virtual TNode::TListType List(
  70. const TTransactionId& transactionId,
  71. const TYPath& path,
  72. const TListOptions& options = {}) = 0;
  73. virtual TNodeId Link(
  74. TMutationId& mutationId,
  75. const TTransactionId& transactionId,
  76. const TYPath& targetPath,
  77. const TYPath& linkPath,
  78. const TLinkOptions& options = {}) = 0;
  79. virtual TLockId Lock(
  80. TMutationId& mutationId,
  81. const TTransactionId& transactionId,
  82. const TYPath& path,
  83. ELockMode mode,
  84. const TLockOptions& options = {}) = 0;
  85. virtual void Unlock(
  86. TMutationId& mutationId,
  87. const TTransactionId& transactionId,
  88. const TYPath& path,
  89. const TUnlockOptions& options = {}) = 0;
  90. virtual void Concatenate(
  91. const TTransactionId& transactionId,
  92. const TVector<TRichYPath>& sourcePaths,
  93. const TRichYPath& destinationPath,
  94. const TConcatenateOptions& options = {}) = 0;
  95. // Transactions
  96. virtual TTransactionId StartTransaction(
  97. TMutationId& mutationId,
  98. const TTransactionId& parentId,
  99. const TStartTransactionOptions& options = {}) = 0;
  100. virtual void PingTransaction(const TTransactionId& transactionId) = 0;
  101. virtual void AbortTransaction(
  102. TMutationId& mutationId,
  103. const TTransactionId& transactionId) = 0;
  104. virtual void CommitTransaction(
  105. TMutationId& mutationId,
  106. const TTransactionId& transactionId) = 0;
  107. // Operations
  108. virtual TOperationId StartOperation(
  109. TMutationId& mutationId,
  110. const TTransactionId& transactionId,
  111. EOperationType type,
  112. const TNode& spec) = 0;
  113. virtual TOperationAttributes GetOperation(
  114. const TOperationId& operationId,
  115. const TGetOperationOptions& options = {}) = 0;
  116. virtual TOperationAttributes GetOperation(
  117. const TString& operationId,
  118. const TGetOperationOptions& options = {}) = 0;
  119. virtual void AbortOperation(
  120. TMutationId& mutationId,
  121. const TOperationId& operationId) = 0;
  122. virtual void CompleteOperation(
  123. TMutationId& mutationId,
  124. const TOperationId& operationId) = 0;
  125. virtual void SuspendOperation(
  126. TMutationId& mutationId,
  127. const TOperationId& operationId,
  128. const TSuspendOperationOptions& options = {}) = 0;
  129. virtual void ResumeOperation(
  130. TMutationId& mutationId,
  131. const TOperationId& operationId,
  132. const TResumeOperationOptions& options = {}) = 0;
  133. virtual TListOperationsResult ListOperations(const TListOperationsOptions& options = {}) = 0;
  134. virtual void UpdateOperationParameters(
  135. const TOperationId& operationId,
  136. const TUpdateOperationParametersOptions& options = {}) = 0;
  137. virtual NYson::TYsonString GetJob(
  138. const TOperationId& operationId,
  139. const TJobId& jobId,
  140. const TGetJobOptions& options = {}) = 0;
  141. virtual TListJobsResult ListJobs(
  142. const TOperationId& operationId,
  143. const TListJobsOptions& options = {}) = 0;
  144. virtual IFileReaderPtr GetJobInput(
  145. const TJobId& jobId,
  146. const TGetJobInputOptions& options = {}) = 0;
  147. virtual IFileReaderPtr GetJobFailContext(
  148. const TOperationId& operationId,
  149. const TJobId& jobId,
  150. const TGetJobFailContextOptions& options = {}) = 0;
  151. virtual IFileReaderPtr GetJobStderr(
  152. const TOperationId& operationId,
  153. const TJobId& jobId,
  154. const TGetJobStderrOptions& options = {}) = 0;
  155. virtual std::vector<TJobTraceEvent> GetJobTrace(
  156. const TOperationId& operationId,
  157. const TGetJobTraceOptions& options = {}) = 0;
  158. // Files
  159. virtual std::unique_ptr<IInputStream> ReadFile(
  160. const TTransactionId& transactionId,
  161. const TRichYPath& path,
  162. const TFileReaderOptions& options = {}) = 0;
  163. // File cache
  164. virtual TMaybe<TYPath> GetFileFromCache(
  165. const TTransactionId& transactionId,
  166. const TString& md5Signature,
  167. const TYPath& cachePath,
  168. const TGetFileFromCacheOptions& options = {}) = 0;
  169. virtual TYPath PutFileToCache(
  170. const TTransactionId& transactionId,
  171. const TYPath& filePath,
  172. const TString& md5Signature,
  173. const TYPath& cachePath,
  174. const TPutFileToCacheOptions& options = {}) = 0;
  175. // Tables
  176. virtual void MountTable(
  177. TMutationId& mutationId,
  178. const TYPath& path,
  179. const TMountTableOptions& options = {}) = 0;
  180. virtual void UnmountTable(
  181. TMutationId& mutationId,
  182. const TYPath& path,
  183. const TUnmountTableOptions& options = {}) = 0;
  184. virtual void RemountTable(
  185. TMutationId& mutationId,
  186. const TYPath& path,
  187. const TRemountTableOptions& options = {}) = 0;
  188. virtual void ReshardTableByPivotKeys(
  189. TMutationId& mutationId,
  190. const TYPath& path,
  191. const TVector<TKey>& keys,
  192. const TReshardTableOptions& options = {}) = 0;
  193. virtual void ReshardTableByTabletCount(
  194. TMutationId& mutationId,
  195. const TYPath& path,
  196. i64 tabletCount,
  197. const TReshardTableOptions& options = {}) = 0;
  198. virtual void InsertRows(
  199. const TYPath& path,
  200. const TNode::TListType& rows,
  201. const TInsertRowsOptions& options = {}) = 0;
  202. virtual void TrimRows(
  203. const TYPath& path,
  204. i64 tabletIndex,
  205. i64 rowCount,
  206. const TTrimRowsOptions& options = {}) = 0;
  207. virtual TNode::TListType LookupRows(
  208. const TYPath& path,
  209. const TNode::TListType& keys,
  210. const TLookupRowsOptions& options = {}) = 0;
  211. virtual TNode::TListType SelectRows(
  212. const TString& query,
  213. const TSelectRowsOptions& options = {}) = 0;
  214. virtual void AlterTable(
  215. TMutationId& mutationId,
  216. const TTransactionId& transactionId,
  217. const TYPath& path,
  218. const TAlterTableOptions& options = {}) = 0;
  219. virtual std::unique_ptr<IInputStream> ReadTable(
  220. const TTransactionId& transactionId,
  221. const TRichYPath& path,
  222. const TMaybe<TFormat>& format,
  223. const TTableReaderOptions& options = {}) = 0;
  224. virtual std::unique_ptr<IInputStream> ReadBlobTable(
  225. const TTransactionId& transactionId,
  226. const TRichYPath& path,
  227. const TKey& key,
  228. const TBlobTableReaderOptions& options = {}) = 0;
  229. virtual void AlterTableReplica(
  230. TMutationId& mutationId,
  231. const TReplicaId& replicaId,
  232. const TAlterTableReplicaOptions& options = {}) = 0;
  233. virtual void DeleteRows(
  234. const TYPath& path,
  235. const TNode::TListType& keys,
  236. const TDeleteRowsOptions& options = {}) = 0;
  237. virtual void FreezeTable(
  238. const TYPath& path,
  239. const TFreezeTableOptions& options = {}) = 0;
  240. virtual void UnfreezeTable(
  241. const TYPath& path,
  242. const TUnfreezeTableOptions& options = {}) = 0;
  243. // Misc
  244. virtual TCheckPermissionResponse CheckPermission(
  245. const TString& user,
  246. EPermission permission,
  247. const TYPath& path,
  248. const TCheckPermissionOptions& options = {}) = 0;
  249. virtual TVector<TTabletInfo> GetTabletInfos(
  250. const TYPath& path,
  251. const TVector<int>& tabletIndexes,
  252. const TGetTabletInfosOptions& options = {}) = 0;
  253. virtual TVector<TTableColumnarStatistics> GetTableColumnarStatistics(
  254. const TTransactionId& transactionId,
  255. const TVector<TRichYPath>& paths,
  256. const TGetTableColumnarStatisticsOptions& options = {}) = 0;
  257. virtual TMultiTablePartitions GetTablePartitions(
  258. const TTransactionId& transactionId,
  259. const TVector<TRichYPath>& paths,
  260. const TGetTablePartitionsOptions& options = {}) = 0;
  261. virtual ui64 GenerateTimestamp() = 0;
  262. // Batch
  263. virtual IRawBatchRequestPtr CreateRawBatchRequest() = 0;
  264. virtual IRawClientPtr Clone() = 0;
  265. };
  266. ////////////////////////////////////////////////////////////////////////////////
  267. } // namespace NYT