tx_columnshard.proto 9.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354
  1. import "ydb/library/actors/protos/actors.proto";
  2. import "ydb/core/protos/flat_scheme_op.proto";
  3. import "ydb/core/protos/long_tx_service.proto";
  4. import "ydb/core/protos/subdomains.proto";
  5. import "ydb/core/protos/tx.proto";
  6. import "ydb/core/formats/arrow/protos/fields.proto";
  7. package NKikimrTxColumnShard;
  8. option java_package = "ru.yandex.kikimr.proto";
  9. enum EResultStatus {
  10. UNSPECIFIED = 0;
  11. PREPARED = 1;
  12. SUCCESS = 2;
  13. ABORTED = 3;
  14. ERROR = 4;
  15. TIMEOUT = 5;
  16. OUTDATED = 6;
  17. SCHEMA_ERROR = 7;
  18. SCHEMA_CHANGED = 8;
  19. OVERLOADED = 9;
  20. STORAGE_ERROR = 10;
  21. UNKNOWN = 0xFFFF;
  22. }
  23. enum EResultFormat {
  24. FORMAT_ARROW = 1;
  25. }
  26. message TReadStats {
  27. optional uint64 BeginTimestamp = 1;
  28. optional uint64 DurationUsec = 2;
  29. optional uint32 SelectedIndex = 3;
  30. optional uint64 IndexGranules = 4;
  31. optional uint64 IndexPortions = 5;
  32. optional uint64 IndexBatches = 6;
  33. optional uint64 NotIndexedBatches = 7;
  34. optional uint32 SchemaColumns = 8;
  35. optional uint64 DataFilterBytes = 10;
  36. optional uint64 DataAdditionalBytes = 11;
  37. optional uint32 FilterColumns = 12;
  38. optional uint32 AdditionalColumns = 13;
  39. optional uint32 SelectedRows = 14;
  40. optional uint64 CompactedPortionsBytes = 15;
  41. optional uint64 InsertedPortionsBytes = 16;
  42. optional uint64 CommittedPortionsBytes = 17;
  43. }
  44. message TMetadata {
  45. optional uint32 Format = 1; // EResultFormat
  46. optional bytes Schema = 2;
  47. optional TReadStats ReadStats = 3;
  48. optional bytes LogicalMeta = 4; // TLogicalMetadata
  49. }
  50. message TEvictMetadata {
  51. optional string TierName = 1;
  52. }
  53. message TEvWrite {
  54. optional NActorsProto.TActorId Source = 1;
  55. optional uint64 TxInitiator = 2;
  56. optional uint64 WriteId = 3;
  57. optional uint64 TableId = 4;
  58. optional string DedupId = 5;
  59. optional bytes Data = 6;
  60. optional TMetadata Meta = 7;
  61. optional NKikimrLongTxService.TLongTxId LongTxId = 8;
  62. optional uint32 WritePartId = 9 [default = 0];
  63. optional uint32 GranuleShardingVersion = 10;
  64. enum EModificationType {
  65. OPERATION_UPSERT = 1;
  66. OPERATION_INSERT = 2;
  67. OPERATION_UPDATE = 3;
  68. OPERATION_REPLACE = 4;
  69. OPERATION_DELETE = 5;
  70. }
  71. optional EModificationType ModificationType = 11;
  72. }
  73. message TLogicalMetadata {
  74. optional uint32 NumRows = 1;
  75. optional uint64 RawBytes = 4;
  76. optional uint64 DirtyWriteTimeSeconds = 5;
  77. optional string SpecialKeysRawData = 6;
  78. optional TEvWrite.EModificationType ModificationType = 7;
  79. optional NKikimrArrowSchema.TSchemaSubset SchemaSubset = 8;
  80. }
  81. message TEvWriteResult {
  82. optional uint32 Status = 1; // EResultStatus
  83. optional uint64 Origin = 2;
  84. optional uint64 TxInitiator = 3;
  85. optional uint64 WriteId = 4;
  86. optional uint64 TableId = 5;
  87. optional string DedupId = 6;
  88. }
  89. message TEvRead {
  90. message TPredicate {
  91. repeated string ColumnNames = 1;
  92. optional bytes Row = 2; // One row in arrow::RecordBatch
  93. optional bool Inclusive = 3;
  94. }
  95. optional NActorsProto.TActorId Source = 1;
  96. optional uint64 TxInitiator = 2;
  97. optional uint64 PlanStep = 3;
  98. optional uint64 TxId = 4;
  99. optional uint64 TableId = 5;
  100. repeated uint32 ColumnIds = 6;
  101. repeated string ColumnNames = 7;
  102. optional TPredicate GreaterPredicate = 8; // Greater[OrEqual] (or From for range)
  103. optional TPredicate LessPredicate = 9; // Less[OrEqual] (or To for range)
  104. // Serialized Olap program
  105. optional bytes OlapProgram = 10;
  106. optional NKikimrSchemeOp.EOlapProgramType OlapProgramType = 11;
  107. }
  108. message TEvReadResult {
  109. optional uint32 Status = 1; // EResultStatus
  110. optional uint64 Origin = 2;
  111. optional uint64 TxInitiator = 3;
  112. optional uint64 PlanStep = 4;
  113. optional uint64 TxId = 5;
  114. optional uint64 TableId = 6;
  115. optional uint32 Batch = 7;
  116. optional bool Finished = 8;
  117. optional bytes Data = 9;
  118. optional TMetadata Meta = 10;
  119. }
  120. enum ETransactionKind {
  121. TX_KIND_NONE = 0;
  122. TX_KIND_SCHEMA = 1;
  123. TX_KIND_COMMIT = 2;
  124. TX_KIND_TTL = 3; // Immediate (not planned)
  125. TX_KIND_DATA = 4;
  126. TX_KIND_COMMIT_WRITE = 5;
  127. TX_KIND_BACKUP = 6;
  128. TX_KIND_SHARING = 7;
  129. TX_KIND_COMMIT_WRITE_PRIMARY = 8;
  130. TX_KIND_COMMIT_WRITE_SECONDARY = 9;
  131. }
  132. enum ETransactionFlag {
  133. TX_FLAG_IMMEDIATE = 1;
  134. }
  135. message TEvProposeTransaction {
  136. optional NActorsProto.TActorId Source = 1;
  137. optional ETransactionKind TxKind = 2;
  138. optional uint64 TxId = 3;
  139. optional bytes TxBody = 4; // TCommitTxBody for TX_KIND_COMMIT
  140. optional uint64 SchemeShardId = 5;
  141. optional NKikimrSubDomains.TProcessingParams ProcessingParams = 6;
  142. optional uint64 Flags = 7;
  143. optional NKikimrTx.TMessageSeqNo SeqNo = 8;
  144. }
  145. message TEvCheckPlannedTransaction {
  146. optional NActorsProto.TActorId Source = 1;
  147. optional uint64 Step = 2;
  148. optional uint64 TxId = 3;
  149. }
  150. message TEvProposeTransactionResult {
  151. optional EResultStatus Status = 1;
  152. optional ETransactionKind TxKind = 2;
  153. optional uint64 Origin = 3;
  154. optional uint64 TxId = 4;
  155. optional uint64 MinStep = 5;
  156. optional uint64 MaxStep = 6;
  157. optional string StatusMessage = 7;
  158. repeated fixed64 DomainCoordinators = 8;
  159. optional uint64 Step = 9;
  160. }
  161. message TEvCancelTransactionProposal {
  162. optional uint64 TxId = 1;
  163. }
  164. message TEvNotifyTxCompletion {
  165. optional uint64 TxId = 1;
  166. }
  167. message TEvNotifyTxCompletionResult {
  168. optional uint64 Origin = 1;
  169. optional uint64 TxId = 2;
  170. }
  171. message TCommitTxBody {
  172. optional uint64 TxInitiator = 1;
  173. repeated uint64 WriteIds = 2;
  174. }
  175. message TBackupTxBody {
  176. optional NKikimrSchemeOp.TBackupTask BackupTask = 1;
  177. }
  178. message TCommitWriteTxBody {
  179. optional uint64 LockId = 1;
  180. message TPrimary {
  181. repeated uint64 SendingShards = 1;
  182. repeated uint64 ReceivingShards = 2;
  183. repeated uint64 WaitShardsBrokenFlags = 3;
  184. repeated uint64 WaitShardsResultAck = 4;
  185. optional bool TxBroken = 5;
  186. }
  187. message TSecondary {
  188. optional uint64 ArbiterTabletId = 1;
  189. optional bool NeedReceiveBroken = 2;
  190. optional bool ReceiveAck = 3;
  191. optional bool SelfBroken = 4;
  192. optional bool TxBroken = 5;
  193. }
  194. oneof Implementation {
  195. TPrimary PrimaryTabletData = 5;
  196. TSecondary SecondaryTabletData = 6;
  197. }
  198. optional bool Broken = 4 [default = false];
  199. }
  200. message TSchemaPresetVersionInfo {
  201. optional uint64 Id = 1;
  202. optional uint64 SinceStep = 2;
  203. optional uint64 SinceTxId = 3;
  204. optional NKikimrSchemeOp.TColumnTableSchema Schema = 4;
  205. }
  206. message TTtlSettingsPresetVersionInfo {
  207. optional uint64 Id = 1;
  208. optional uint64 SinceStep = 2;
  209. optional uint64 SinceTxId = 3;
  210. optional NKikimrSchemeOp.TColumnDataLifeCycle TtlSettings = 4;
  211. }
  212. message TTableVersionInfo {
  213. optional uint64 PathId = 1;
  214. optional uint64 SinceStep = 2;
  215. optional uint64 SinceTxId = 3;
  216. optional NKikimrSchemeOp.TColumnTableSchema Schema = 4;
  217. optional uint32 SchemaPresetId = 5;
  218. optional NKikimrSchemeOp.TColumnDataLifeCycle TtlSettings = 6;
  219. optional uint32 TtlSettingsPresetId = 7;
  220. optional uint64 SchemaPresetVersionAdj = 8;
  221. optional uint64 TtlSettingsPresetVersionAdj = 9;
  222. }
  223. message TCreateTable {
  224. optional uint64 PathId = 1;
  225. optional NKikimrSchemeOp.TColumnTableSchema Schema = 2;
  226. optional NKikimrSchemeOp.TColumnTableSchemaPreset SchemaPreset = 3;
  227. optional NKikimrSchemeOp.TColumnDataLifeCycle TtlSettings = 4;
  228. optional uint64 SchemaPresetVersionAdj = 6;
  229. }
  230. message TInitShard {
  231. optional uint32 DataChannelCount = 1;
  232. optional uint64 OwnerPathId = 2;
  233. repeated TCreateTable Tables = 3;
  234. optional string OwnerPath = 4;
  235. }
  236. message TAlterTable {
  237. optional uint64 PathId = 1;
  238. optional NKikimrSchemeOp.TColumnTableSchema Schema = 3;
  239. optional NKikimrSchemeOp.TColumnTableSchemaPreset SchemaPreset = 4;
  240. optional NKikimrSchemeOp.TColumnDataLifeCycle TtlSettings = 5;
  241. optional uint64 SchemaPresetVersionAdj = 7;
  242. }
  243. message TDropTable {
  244. optional uint64 PathId = 1;
  245. }
  246. message TEnsureTables {
  247. repeated TCreateTable Tables = 1;
  248. }
  249. message TAlterStore {
  250. optional NKikimrSchemeOp.TAlterColumnStore AlterBody = 1;
  251. repeated uint32 DroppedSchemaPresets = 2;
  252. repeated NKikimrSchemeOp.TColumnTableSchemaPreset SchemaPresets = 3;
  253. repeated uint32 Reserved_4 = 4; // DroppedTtlSettingsPresets, deprecated
  254. repeated NKikimrSchemeOp.TColumnTableTtlSettingsPreset Reserved_5 = 5; // TtlSettingsPresets, deprecated
  255. optional uint64 StorePathId = 6;
  256. }
  257. message TSchemaSeqNo {
  258. optional uint32 Generation = 1;
  259. optional uint64 Round = 2;
  260. }
  261. message TIndexGranuleMeta {
  262. optional uint32 MarkSize = 1; // Composite key mark (granule border) size: count of first PK elements in mark
  263. }
  264. message TSchemaTxBody {
  265. optional TSchemaSeqNo SeqNo = 1;
  266. oneof TxBody {
  267. TInitShard InitShard = 2;
  268. TEnsureTables EnsureTables = 3;
  269. TDropTable DropTable = 4;
  270. TAlterTable AlterTable = 5;
  271. TAlterStore AlterStore = 6;
  272. }
  273. optional NKikimrSchemeOp.TGranuleShardingInfo GranuleShardingInfo = 20;
  274. }
  275. message TTtlTxBody {
  276. optional string TtlColumnName = 1;
  277. optional uint64 UnixTimeSeconds = 2;
  278. optional uint32 TtlPresetId = 3;
  279. optional string TtlPresetName = 4;
  280. repeated uint64 PathIds = 5;
  281. }
  282. message TBlobRange {
  283. optional bytes BlobId = 1;
  284. optional uint64 Offset = 2;
  285. optional uint64 Size = 3;
  286. }
  287. // Read ranges of multiple small blobs directly from Tablet
  288. message TEvReadBlobRanges {
  289. repeated TBlobRange BlobRanges = 1;
  290. }
  291. message TEvReadBlobRangesResult {
  292. message TResult {
  293. optional TBlobRange BlobRange = 1;
  294. optional uint32 Status = 2; // NKikimrProto::EReplyStatus
  295. optional bytes Data = 3;
  296. };
  297. optional uint64 TabletId = 1;
  298. repeated TResult Results = 2;
  299. }
  300. message TInternalOperationData {
  301. repeated uint64 InternalWriteIds = 1;
  302. optional uint32 ModificationType = 2;
  303. }