github.com/tsuna/gohbase@v0.0.0-20250731002811-4ffcadfba63e/pb/Master.proto (about) 1 /** 2 * Licensed to the Apache Software Foundation (ASF) under one 3 * or more contributor license agreements. See the NOTICE file 4 * distributed with this work for additional information 5 * regarding copyright ownership. The ASF licenses this file 6 * to you under the Apache License, Version 2.0 (the 7 * "License"); you may not use this file except in compliance 8 * with the License. You may obtain a copy of the License at 9 * 10 * http://www.apache.org/licenses/LICENSE-2.0 11 * 12 * Unless required by applicable law or agreed to in writing, software 13 * distributed under the License is distributed on an "AS IS" BASIS, 14 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 15 * See the License for the specific language governing permissions and 16 * limitations under the License. 17 */ 18 19 // All to do with the Master. Includes schema management since these 20 // changes are run by the Master process. 21 syntax = "proto2"; 22 package pb; 23 24 option java_package = "org.apache.hadoop.hbase.protobuf.generated"; 25 option java_outer_classname = "MasterProtos"; 26 option java_generic_services = true; 27 option java_generate_equals_and_hash = true; 28 option optimize_for = SPEED; 29 option go_package = "../pb"; 30 31 import "HBase.proto"; 32 import "Client.proto"; 33 import "ClusterStatus.proto"; 34 import "ErrorHandling.proto"; 35 import "Procedure.proto"; 36 import "Quota.proto"; 37 38 /* Column-level protobufs */ 39 40 message AddColumnRequest { 41 required TableName table_name = 1; 42 required ColumnFamilySchema column_families = 2; 43 optional uint64 nonce_group = 3 [default = 0]; 44 optional uint64 nonce = 4 [default = 0]; 45 } 46 47 message AddColumnResponse { 48 } 49 50 message DeleteColumnRequest { 51 required TableName table_name = 1; 52 required bytes column_name = 2; 53 optional uint64 nonce_group = 3 [default = 0]; 54 optional uint64 nonce = 4 [default = 0]; 55 } 56 57 message DeleteColumnResponse { 58 } 59 60 message ModifyColumnRequest { 61 required TableName table_name = 1; 62 required ColumnFamilySchema column_families = 2; 63 optional uint64 nonce_group = 3 [default = 0]; 64 optional uint64 nonce = 4 [default = 0]; 65 } 66 67 message ModifyColumnResponse { 68 } 69 70 /* Region-level Protos */ 71 72 message MoveRegionRequest { 73 required RegionSpecifier region = 1; 74 optional ServerName dest_server_name = 2; 75 } 76 77 message MoveRegionResponse { 78 } 79 80 /** 81 * Dispatch merging the specified regions. 82 */ 83 message DispatchMergingRegionsRequest { 84 required RegionSpecifier region_a = 1; 85 required RegionSpecifier region_b = 2; 86 optional bool forcible = 3 [default = false]; 87 } 88 89 message DispatchMergingRegionsResponse { 90 } 91 92 message AssignRegionRequest { 93 required RegionSpecifier region = 1; 94 } 95 96 message AssignRegionResponse { 97 } 98 99 message UnassignRegionRequest { 100 required RegionSpecifier region = 1; 101 optional bool force = 2 [default = false]; 102 } 103 104 message UnassignRegionResponse { 105 } 106 107 message OfflineRegionRequest { 108 required RegionSpecifier region = 1; 109 } 110 111 message OfflineRegionResponse { 112 } 113 114 /* Table-level protobufs */ 115 116 message CreateTableRequest { 117 required TableSchema table_schema = 1; 118 repeated bytes split_keys = 2; 119 optional uint64 nonce_group = 3 [default = 0]; 120 optional uint64 nonce = 4 [default = 0]; 121 } 122 123 message CreateTableResponse { 124 optional uint64 proc_id = 1; 125 } 126 127 message DeleteTableRequest { 128 required TableName table_name = 1; 129 optional uint64 nonce_group = 2 [default = 0]; 130 optional uint64 nonce = 3 [default = 0]; 131 } 132 133 message DeleteTableResponse { 134 optional uint64 proc_id = 1; 135 } 136 137 message TruncateTableRequest { 138 required TableName tableName = 1; 139 optional bool preserveSplits = 2 [default = false]; 140 optional uint64 nonce_group = 3 [default = 0]; 141 optional uint64 nonce = 4 [default = 0]; 142 } 143 144 message TruncateTableResponse { 145 } 146 147 message EnableTableRequest { 148 required TableName table_name = 1; 149 optional uint64 nonce_group = 2 [default = 0]; 150 optional uint64 nonce = 3 [default = 0]; 151 } 152 153 message EnableTableResponse { 154 optional uint64 proc_id = 1; 155 } 156 157 message DisableTableRequest { 158 required TableName table_name = 1; 159 optional uint64 nonce_group = 2 [default = 0]; 160 optional uint64 nonce = 3 [default = 0]; 161 } 162 163 message DisableTableResponse { 164 optional uint64 proc_id = 1; 165 } 166 167 message ModifyTableRequest { 168 required TableName table_name = 1; 169 required TableSchema table_schema = 2; 170 optional uint64 nonce_group = 3 [default = 0]; 171 optional uint64 nonce = 4 [default = 0]; 172 } 173 174 message ModifyTableResponse { 175 } 176 177 /* Namespace-level protobufs */ 178 179 message CreateNamespaceRequest { 180 required NamespaceDescriptor namespaceDescriptor = 1; 181 optional uint64 nonce_group = 2 [default = 0]; 182 optional uint64 nonce = 3 [default = 0]; 183 } 184 185 message CreateNamespaceResponse { 186 } 187 188 message DeleteNamespaceRequest { 189 required string namespaceName = 1; 190 optional uint64 nonce_group = 2 [default = 0]; 191 optional uint64 nonce = 3 [default = 0]; 192 } 193 194 message DeleteNamespaceResponse { 195 } 196 197 message ModifyNamespaceRequest { 198 required NamespaceDescriptor namespaceDescriptor = 1; 199 optional uint64 nonce_group = 2 [default = 0]; 200 optional uint64 nonce = 3 [default = 0]; 201 } 202 203 message ModifyNamespaceResponse { 204 } 205 206 message GetNamespaceDescriptorRequest { 207 required string namespaceName = 1; 208 } 209 210 message GetNamespaceDescriptorResponse { 211 required NamespaceDescriptor namespaceDescriptor = 1; 212 } 213 214 message ListNamespaceDescriptorsRequest { 215 } 216 217 message ListNamespaceDescriptorsResponse { 218 repeated NamespaceDescriptor namespaceDescriptor = 1; 219 } 220 221 message ListTableDescriptorsByNamespaceRequest { 222 required string namespaceName = 1; 223 } 224 225 message ListTableDescriptorsByNamespaceResponse { 226 repeated TableSchema tableSchema = 1; 227 } 228 229 message ListTableNamesByNamespaceRequest { 230 required string namespaceName = 1; 231 } 232 233 message ListTableNamesByNamespaceResponse { 234 repeated TableName tableName = 1; 235 } 236 237 /* Cluster-level protobufs */ 238 239 240 message ShutdownRequest { 241 } 242 243 message ShutdownResponse { 244 } 245 246 message StopMasterRequest { 247 } 248 249 message StopMasterResponse { 250 } 251 252 message BalanceRequest { 253 optional bool force = 1; 254 } 255 256 message BalanceResponse { 257 required bool balancer_ran = 1; 258 } 259 260 message SetBalancerRunningRequest { 261 required bool on = 1; 262 optional bool synchronous = 2; 263 } 264 265 message SetBalancerRunningResponse { 266 optional bool prev_balance_value = 1; 267 } 268 269 message IsBalancerEnabledRequest { 270 } 271 272 message IsBalancerEnabledResponse { 273 required bool enabled = 1; 274 } 275 276 enum MasterSwitchType { 277 SPLIT = 0; 278 MERGE = 1; 279 } 280 281 message SetSplitOrMergeEnabledRequest { 282 required bool enabled = 1; 283 optional bool synchronous = 2; 284 repeated MasterSwitchType switch_types = 3; 285 } 286 287 message SetSplitOrMergeEnabledResponse { 288 repeated bool prev_value = 1; 289 } 290 291 message IsSplitOrMergeEnabledRequest { 292 required MasterSwitchType switch_type = 1; 293 } 294 295 message IsSplitOrMergeEnabledResponse { 296 required bool enabled = 1; 297 } 298 299 message NormalizeRequest { 300 } 301 302 message NormalizeResponse { 303 required bool normalizer_ran = 1; 304 } 305 306 message SetNormalizerRunningRequest { 307 required bool on = 1; 308 } 309 310 message SetNormalizerRunningResponse { 311 optional bool prev_normalizer_value = 1; 312 } 313 314 message IsNormalizerEnabledRequest { 315 } 316 317 message IsNormalizerEnabledResponse { 318 required bool enabled = 1; 319 } 320 321 message RunCatalogScanRequest { 322 } 323 324 message RunCatalogScanResponse { 325 optional int32 scan_result = 1; 326 } 327 328 message EnableCatalogJanitorRequest { 329 required bool enable = 1; 330 } 331 332 message EnableCatalogJanitorResponse { 333 optional bool prev_value = 1; 334 } 335 336 message IsCatalogJanitorEnabledRequest { 337 } 338 339 message IsCatalogJanitorEnabledResponse { 340 required bool value = 1; 341 } 342 343 message SnapshotRequest { 344 required SnapshotDescription snapshot = 1; 345 } 346 347 message SnapshotResponse { 348 required int64 expected_timeout = 1; 349 } 350 351 message GetCompletedSnapshotsRequest { 352 } 353 354 message GetCompletedSnapshotsResponse { 355 repeated SnapshotDescription snapshots = 1; 356 } 357 358 message DeleteSnapshotRequest { 359 required SnapshotDescription snapshot = 1; 360 } 361 362 message DeleteSnapshotResponse { 363 } 364 365 message RestoreSnapshotRequest { 366 required SnapshotDescription snapshot = 1; 367 } 368 369 message RestoreSnapshotResponse { 370 } 371 372 /* if you don't send the snapshot, then you will get it back 373 * in the response (if the snapshot is done) so you can check the snapshot 374 */ 375 message IsSnapshotDoneRequest { 376 optional SnapshotDescription snapshot = 1; 377 } 378 379 message IsSnapshotDoneResponse { 380 optional bool done = 1 [default = false]; 381 optional SnapshotDescription snapshot = 2; 382 } 383 384 message IsRestoreSnapshotDoneRequest { 385 optional SnapshotDescription snapshot = 1; 386 } 387 388 message IsRestoreSnapshotDoneResponse { 389 optional bool done = 1 [default = false]; 390 } 391 392 message GetSchemaAlterStatusRequest { 393 required TableName table_name = 1; 394 } 395 396 message GetSchemaAlterStatusResponse { 397 optional uint32 yet_to_update_regions = 1; 398 optional uint32 total_regions = 2; 399 } 400 401 message GetTableDescriptorsRequest { 402 repeated TableName table_names = 1; 403 optional string regex = 2; 404 optional bool include_sys_tables = 3 [default=false]; 405 optional string namespace = 4; 406 } 407 408 message GetTableDescriptorsResponse { 409 repeated TableSchema table_schema = 1; 410 } 411 412 message GetTableNamesRequest { 413 optional string regex = 1; 414 optional bool include_sys_tables = 2 [default=false]; 415 optional string namespace = 3; 416 } 417 418 message GetTableNamesResponse { 419 repeated TableName table_names = 1; 420 } 421 422 message GetClusterStatusRequest { 423 } 424 425 message GetClusterStatusResponse { 426 required ClusterStatus cluster_status = 1; 427 } 428 429 message IsMasterRunningRequest { 430 } 431 432 message IsMasterRunningResponse { 433 required bool is_master_running = 1; 434 } 435 436 message ExecProcedureRequest { 437 required ProcedureDescription procedure = 1; 438 } 439 440 message ExecProcedureResponse { 441 optional int64 expected_timeout = 1; 442 optional bytes return_data = 2; 443 } 444 445 message IsProcedureDoneRequest { 446 optional ProcedureDescription procedure = 1; 447 } 448 449 message IsProcedureDoneResponse { 450 optional bool done = 1 [default = false]; 451 optional ProcedureDescription snapshot = 2; 452 } 453 454 message GetProcedureResultRequest { 455 required uint64 proc_id = 1; 456 } 457 458 message GetProcedureResultResponse { 459 enum State { 460 NOT_FOUND = 0; 461 RUNNING = 1; 462 FINISHED = 2; 463 } 464 465 required State state = 1; 466 optional uint64 start_time = 2; 467 optional uint64 last_update = 3; 468 optional bytes result = 4; 469 optional ForeignExceptionMessage exception = 5; 470 } 471 472 message AbortProcedureRequest { 473 required uint64 proc_id = 1; 474 optional bool mayInterruptIfRunning = 2 [default = true]; 475 } 476 477 message AbortProcedureResponse { 478 required bool is_procedure_aborted = 1; 479 } 480 481 message ListProceduresRequest { 482 } 483 484 message ListProceduresResponse { 485 repeated Procedure procedure = 1; 486 } 487 488 message SetQuotaRequest { 489 optional string user_name = 1; 490 optional string user_group = 2; 491 optional string namespace = 3; 492 optional TableName table_name = 4; 493 494 optional bool remove_all = 5; 495 optional bool bypass_globals = 6; 496 optional ThrottleRequest throttle = 7; 497 } 498 499 message SetQuotaResponse { 500 } 501 502 message MajorCompactionTimestampRequest { 503 required TableName table_name = 1; 504 } 505 506 message MajorCompactionTimestampForRegionRequest { 507 required RegionSpecifier region = 1; 508 } 509 510 message MajorCompactionTimestampResponse { 511 required int64 compaction_timestamp = 1; 512 } 513 514 message SecurityCapabilitiesRequest { 515 } 516 517 message SecurityCapabilitiesResponse { 518 enum Capability { 519 SIMPLE_AUTHENTICATION = 0; 520 SECURE_AUTHENTICATION = 1; 521 AUTHORIZATION = 2; 522 CELL_AUTHORIZATION = 3; 523 CELL_VISIBILITY = 4; 524 } 525 526 repeated Capability capabilities = 1; 527 } 528 529 service MasterService { 530 /** Used by the client to get the number of regions that have received the updated schema */ 531 rpc GetSchemaAlterStatus(GetSchemaAlterStatusRequest) 532 returns(GetSchemaAlterStatusResponse); 533 534 /** Get list of TableDescriptors for requested tables. */ 535 rpc GetTableDescriptors(GetTableDescriptorsRequest) 536 returns(GetTableDescriptorsResponse); 537 538 /** Get the list of table names. */ 539 rpc GetTableNames(GetTableNamesRequest) 540 returns(GetTableNamesResponse); 541 542 /** Return cluster status. */ 543 rpc GetClusterStatus(GetClusterStatusRequest) 544 returns(GetClusterStatusResponse); 545 546 /** return true if master is available */ 547 rpc IsMasterRunning(IsMasterRunningRequest) returns(IsMasterRunningResponse); 548 549 /** Adds a column to the specified table. */ 550 rpc AddColumn(AddColumnRequest) 551 returns(AddColumnResponse); 552 553 /** Deletes a column from the specified table. Table must be disabled. */ 554 rpc DeleteColumn(DeleteColumnRequest) 555 returns(DeleteColumnResponse); 556 557 /** Modifies an existing column on the specified table. */ 558 rpc ModifyColumn(ModifyColumnRequest) 559 returns(ModifyColumnResponse); 560 561 /** Move the region region to the destination server. */ 562 rpc MoveRegion(MoveRegionRequest) 563 returns(MoveRegionResponse); 564 565 /** Master dispatch merging the regions */ 566 rpc DispatchMergingRegions(DispatchMergingRegionsRequest) 567 returns(DispatchMergingRegionsResponse); 568 569 /** Assign a region to a server chosen at random. */ 570 rpc AssignRegion(AssignRegionRequest) 571 returns(AssignRegionResponse); 572 573 /** 574 * Unassign a region from current hosting regionserver. Region will then be 575 * assigned to a regionserver chosen at random. Region could be reassigned 576 * back to the same server. Use MoveRegion if you want 577 * to control the region movement. 578 */ 579 rpc UnassignRegion(UnassignRegionRequest) 580 returns(UnassignRegionResponse); 581 582 /** 583 * Offline a region from the assignment manager's in-memory state. The 584 * region should be in a closed state and there will be no attempt to 585 * automatically reassign the region as in unassign. This is a special 586 * method, and should only be used by experts or hbck. 587 */ 588 rpc OfflineRegion(OfflineRegionRequest) 589 returns(OfflineRegionResponse); 590 591 /** Deletes a table */ 592 rpc DeleteTable(DeleteTableRequest) 593 returns(DeleteTableResponse); 594 595 /** Truncate a table */ 596 rpc truncateTable(TruncateTableRequest) 597 returns(TruncateTableResponse); 598 599 /** Puts the table on-line (only needed if table has been previously taken offline) */ 600 rpc EnableTable(EnableTableRequest) 601 returns(EnableTableResponse); 602 603 /** Take table offline */ 604 rpc DisableTable(DisableTableRequest) 605 returns(DisableTableResponse); 606 607 /** Modify a table's metadata */ 608 rpc ModifyTable(ModifyTableRequest) 609 returns(ModifyTableResponse); 610 611 /** Creates a new table asynchronously */ 612 rpc CreateTable(CreateTableRequest) 613 returns(CreateTableResponse); 614 615 /** Shutdown an HBase cluster. */ 616 rpc Shutdown(ShutdownRequest) 617 returns(ShutdownResponse); 618 619 /** Stop HBase Master only. Does not shutdown the cluster. */ 620 rpc StopMaster(StopMasterRequest) 621 returns(StopMasterResponse); 622 623 /** 624 * Run the balancer. Will run the balancer and if regions to move, it will 625 * go ahead and do the reassignments. Can NOT run for various reasons. 626 * Check logs. 627 */ 628 rpc Balance(BalanceRequest) 629 returns(BalanceResponse); 630 631 /** 632 * Turn the load balancer on or off. 633 * If synchronous is true, it waits until current balance() call, if outstanding, to return. 634 */ 635 rpc SetBalancerRunning(SetBalancerRunningRequest) 636 returns(SetBalancerRunningResponse); 637 638 /** 639 * Query whether the Region Balancer is running. 640 */ 641 rpc IsBalancerEnabled(IsBalancerEnabledRequest) 642 returns(IsBalancerEnabledResponse); 643 644 /** 645 * Turn the split or merge switch on or off. 646 * If synchronous is true, it waits until current operation call, if outstanding, to return. 647 */ 648 rpc SetSplitOrMergeEnabled(SetSplitOrMergeEnabledRequest) 649 returns(SetSplitOrMergeEnabledResponse); 650 651 /** 652 * Query whether the split or merge switch is on/off. 653 */ 654 rpc IsSplitOrMergeEnabled(IsSplitOrMergeEnabledRequest) 655 returns(IsSplitOrMergeEnabledResponse); 656 657 /** 658 * Run region normalizer. Can NOT run for various reasons. Check logs. 659 */ 660 rpc Normalize(NormalizeRequest) 661 returns(NormalizeResponse); 662 663 /** 664 * Turn region normalizer on or off. 665 */ 666 rpc SetNormalizerRunning(SetNormalizerRunningRequest) 667 returns(SetNormalizerRunningResponse); 668 669 /** 670 * Query whether region normalizer is enabled. 671 */ 672 rpc IsNormalizerEnabled(IsNormalizerEnabledRequest) 673 returns(IsNormalizerEnabledResponse); 674 675 /** Get a run of the catalog janitor */ 676 rpc RunCatalogScan(RunCatalogScanRequest) 677 returns(RunCatalogScanResponse); 678 679 /** 680 * Enable the catalog janitor on or off. 681 */ 682 rpc EnableCatalogJanitor(EnableCatalogJanitorRequest) 683 returns(EnableCatalogJanitorResponse); 684 685 /** 686 * Query whether the catalog janitor is enabled. 687 */ 688 rpc IsCatalogJanitorEnabled(IsCatalogJanitorEnabledRequest) 689 returns(IsCatalogJanitorEnabledResponse); 690 691 /** 692 * Call a master coprocessor endpoint 693 */ 694 rpc ExecMasterService(CoprocessorServiceRequest) 695 returns(CoprocessorServiceResponse); 696 697 /** 698 * Create a snapshot for the given table. 699 */ 700 rpc Snapshot(SnapshotRequest) returns(SnapshotResponse); 701 702 /** 703 * Get completed snapshots. 704 * Returns a list of snapshot descriptors for completed snapshots 705 */ 706 rpc GetCompletedSnapshots(GetCompletedSnapshotsRequest) returns(GetCompletedSnapshotsResponse); 707 708 /** 709 * Delete an existing snapshot. This method can also be used to clean up an aborted snapshot. 710 */ 711 rpc DeleteSnapshot(DeleteSnapshotRequest) returns(DeleteSnapshotResponse); 712 713 /** 714 * Determine if the snapshot is done yet. 715 */ 716 rpc IsSnapshotDone(IsSnapshotDoneRequest) returns(IsSnapshotDoneResponse); 717 718 /** 719 * Restore a snapshot 720 */ 721 rpc RestoreSnapshot(RestoreSnapshotRequest) returns(RestoreSnapshotResponse); 722 723 /** 724 * Determine if the snapshot restore is done yet. 725 */ 726 rpc IsRestoreSnapshotDone(IsRestoreSnapshotDoneRequest) returns(IsRestoreSnapshotDoneResponse); 727 728 /** 729 * Execute a distributed procedure. 730 */ 731 rpc ExecProcedure(ExecProcedureRequest) returns(ExecProcedureResponse); 732 733 /** 734 * Execute a distributed procedure with return data. 735 */ 736 rpc ExecProcedureWithRet(ExecProcedureRequest) returns(ExecProcedureResponse); 737 738 /** 739 * Determine if the procedure is done yet. 740 */ 741 rpc IsProcedureDone(IsProcedureDoneRequest) returns(IsProcedureDoneResponse); 742 743 /** return true if master is available */ 744 /** rpc IsMasterRunning(IsMasterRunningRequest) returns(IsMasterRunningResponse); */ 745 746 /** Modify a namespace's metadata */ 747 rpc ModifyNamespace(ModifyNamespaceRequest) 748 returns(ModifyNamespaceResponse); 749 750 /** Creates a new namespace synchronously */ 751 rpc CreateNamespace(CreateNamespaceRequest) 752 returns(CreateNamespaceResponse); 753 754 /** Deletes namespace synchronously */ 755 rpc DeleteNamespace(DeleteNamespaceRequest) 756 returns(DeleteNamespaceResponse); 757 758 /** Get a namespace descriptor by name */ 759 rpc GetNamespaceDescriptor(GetNamespaceDescriptorRequest) 760 returns(GetNamespaceDescriptorResponse); 761 762 /** returns a list of namespaces */ 763 rpc ListNamespaceDescriptors(ListNamespaceDescriptorsRequest) 764 returns(ListNamespaceDescriptorsResponse); 765 766 /** returns a list of tables for a given namespace*/ 767 rpc ListTableDescriptorsByNamespace(ListTableDescriptorsByNamespaceRequest) 768 returns(ListTableDescriptorsByNamespaceResponse); 769 770 /** returns a list of tables for a given namespace*/ 771 rpc ListTableNamesByNamespace(ListTableNamesByNamespaceRequest) 772 returns(ListTableNamesByNamespaceResponse); 773 774 /** Apply the new quota settings */ 775 rpc SetQuota(SetQuotaRequest) returns(SetQuotaResponse); 776 777 /** Returns the timestamp of the last major compaction */ 778 rpc getLastMajorCompactionTimestamp(MajorCompactionTimestampRequest) 779 returns(MajorCompactionTimestampResponse); 780 781 /** Returns the timestamp of the last major compaction */ 782 rpc getLastMajorCompactionTimestampForRegion(MajorCompactionTimestampForRegionRequest) 783 returns(MajorCompactionTimestampResponse); 784 785 rpc getProcedureResult(GetProcedureResultRequest) 786 returns(GetProcedureResultResponse); 787 788 /** Returns the security capabilities in effect on the cluster */ 789 rpc getSecurityCapabilities(SecurityCapabilitiesRequest) 790 returns(SecurityCapabilitiesResponse); 791 792 /** Abort a procedure */ 793 rpc AbortProcedure(AbortProcedureRequest) 794 returns(AbortProcedureResponse); 795 796 /** returns a list of procedures */ 797 rpc ListProcedures(ListProceduresRequest) 798 returns(ListProceduresResponse); 799 }