Get desktop application:
View/edit binary Protocol Buffers messages
* The get request. Perform a single Get operation.
* The mutate request. Perform a single Mutate operation. Optionally, you can specify a condition. The mutate will take place only if the condition is met. Otherwise, the mutate will be ignored. In the response result, parameter processed is used to indicate if the mutate actually happened.
used for mutate to indicate processed only
* A scan request. Initially, it should specify a scan. Later on, you can use the scanner id returned to fetch result batches with a different scan request. The scanner will remain open if there are more results, and it's not asked to be closed explicitly. You can fetch the results and ask the scanner to be closed to save a trip if you are not interested in remaining results.
* The scan response. If there are no more results, more_results will be false. If it is not specified, it means there are more.
This field is filled in if we are doing cellblocks. A cellblock is made up of all Cells serialized out as one cellblock BUT responses from a server have their Cells grouped by Result. So we can reconstitute the Results on the client-side, this field is a list of counts of Cells in each Result that makes up the response. For example, if this field has 3, 3, 3 in it, then we know that on the client, we are to make three Results each of three Cells each.
If cells are not carried in an accompanying cellblock, then they are pb'd here. This field is mutually exclusive with cells_per_result (since the Cells will be inside the pb'd Result)
This field is filled in if we are doing cellblocks. In the event that a row could not fit all of its cells into a single RPC chunk, the results will be returned as partials, and reconstructed into a complete result on the client side. This field is a list of flags indicating whether or not the result that the cells belong to is a partial result. For example, if this field has false, false, true in it, then we know that on the client side, we need to make another RPC request since the last result was only a partial.
A server may choose to limit the number of results returned to the client for reasons such as the size in bytes or quantity of results accumulated. This field will true when more results exist in the current region.
This field is filled in if the server is sending back a heartbeat message. Heartbeat messages are sent back to the client to prevent the scanner from timing out. Seeing a heartbeat message communicates to the Client that the server would have continued to scan had the time limit not been reached.
* Atomically bulk load multiple HFiles (say from different column families) into an open region.
* Execute a list of actions on a given region in order. Nothing prevents a request to contains a set of RegionAction on the same region. For this reason, the matching between the MultiRequest and the MultiResponse is not done by the region specifier but by keeping the order of the RegionActionResult vs. the order of the RegionAction.
used for mutate to indicate processed only
* Used by the client to get the number of regions that have received the updated schema
* Get list of TableDescriptors for requested tables.
* Get the list of table names.
* Return cluster status.
(message has no fields)
* return true if master is available
(message has no fields)
* Adds a column to the specified table.
(message has no fields)
* Deletes a column from the specified table. Table must be disabled.
(message has no fields)
* Modifies an existing column on the specified table.
(message has no fields)
* Move the region region to the destination server.
(message has no fields)
* Master dispatch merging the regions
* Dispatch merging the specified regions.
(message has no fields)
* Assign a region to a server chosen at random.
(message has no fields)
* Unassign a region from current hosting regionserver. Region will then be assigned to a regionserver chosen at random. Region could be reassigned back to the same server. Use MoveRegion if you want to control the region movement.
(message has no fields)
* Offline a region from the assignment manager's in-memory state. The region should be in a closed state and there will be no attempt to automatically reassign the region as in unassign. This is a special method, and should only be used by experts or hbck.
(message has no fields)
* Deletes a table
* Truncate a table
(message has no fields)
* Puts the table on-line (only needed if table has been previously taken offline)
* Take table offline
* Modify a table's metadata
(message has no fields)
* Creates a new table asynchronously
* Shutdown an HBase cluster.
(message has no fields)
(message has no fields)
* Stop HBase Master only. Does not shutdown the cluster.
(message has no fields)
(message has no fields)
* Run the balancer. Will run the balancer and if regions to move, it will go ahead and do the reassignments. Can NOT run for various reasons. Check logs.
(message has no fields)
* Turn the load balancer on or off. If synchronous is true, it waits until current balance() call, if outstanding, to return.
* Query whether the Region Balancer is running.
(message has no fields)
* Get a run of the catalog janitor
(message has no fields)
* Enable the catalog janitor on or off.
* Query whether the catalog janitor is enabled.
(message has no fields)
* Call a master coprocessor endpoint
* Create a snapshot for the given table.
* Get completed snapshots. Returns a list of snapshot descriptors for completed snapshots
(message has no fields)
* Delete an existing snapshot. This method can also be used to clean up an aborted snapshot.
(message has no fields)
* Determine if the snapshot is done yet.
if you don't send the snapshot, then you will get it back in the response (if the snapshot is done) so you can check the snapshot
* Restore a snapshot
(message has no fields)
* Determine if the snapshot restore is done yet.
* Execute a distributed procedure.
* Execute a distributed procedure with return data.
* Determine if the procedure is done yet.
* Modify a namespace's metadata
(message has no fields)
* Creates a new namespace synchronously
(message has no fields)
* Deletes namespace synchronously
(message has no fields)
* Get a namespace descriptor by name
* returns a list of namespaces
(message has no fields)
* returns a list of tables for a given namespace
* returns a list of tables for a given namespace
* Apply the new quota settings
(message has no fields)
* Returns the timestamp of the last major compaction
* Returns the timestamp of the last major compaction
(message has no fields)
Either a Get or a Mutation
Used in:
If part of a multi action, useful aligning result with what was originally submitted.
* The protocol buffer version of Authorizations.
Used in:
Used in:
Used in:
, , ,Used in:
, , ,* Protocol buffer version of Cell.
Used in:
Optional Cell block Message. Included in client RequestHeader
Used in:
,Length of the following cell block. Could calculate it but convenient having it too hand.
* The type of the key in a Cell
Used in:
,MAXIMUM is used when searching; you look from maximum on down.
* The protocol buffer version of CellVisibility.
* Content of the '/hbase/hbaseid', cluster id, znode. Also cluster of the ${HBASE_ROOTDIR}/hbase.id file.
Used in:
This is the cluster id, a uuid as a String
Used in:
* Content of the '/hbase/running', cluster state, znode.
If this znode is present, cluster is up. Currently the data is cluster start_date.
* Container for a list of column qualifier names of a family.
Used in:
,* Column Family Schema Inspired by the rest ColumSchemaMessage
Used in:
, ,Used in:
, ,Used in:
, , , ,Comparison operators
Used in:
, ,* Condition to check if the value of a given cell (row, family, qualifier) matches a value via a given comparator. Condition is used in check and mutate operations.
Used in:
,This is sent on connection setup after the connection preamble is sent.
Cell block codec we will use sending over optional cell blocks. Server throws exception if cannot deal. Null means no codec'ing going on so we are pb all the time (SLOW!!!)
Compressor we will use if cell block is compressed. Server will throw exception if not supported. Class must implement hadoop's CompressionCodec Interface. Can't compress if no codec.
* Consistency defines the expected consistency level for an operation.
Used in:
,Used in:
,Used in:
,Used as request type in: ClientService.ExecRegionServerService, ClientService.ExecService, MasterService.ExecMasterService
Used as response type in: ClientService.ExecRegionServerService, ClientService.ExecService, MasterService.ExecMasterService
Used in:
(message has no fields)
At the RPC layer, this message is used to carry the server side exception to the RPC client.
Used in:
Class name of the exception thrown from the server
Exception stack trace from the server side
Optional hostname. Filled in for some exceptions such as region moved where exception gives clue on where the region may have moved.
Set if we are NOT to retry on receipt of this exception
Used as request type in: MasterService.ExecProcedure, MasterService.ExecProcedureWithRet
Used as response type in: MasterService.ExecProcedure, MasterService.ExecProcedureWithRet
* Protocol buffer for favored nodes
Used in:
, , , , ,(message has no fields)
Used in:
(message has no fields)
* Exception sent across the wire when a remote task needs to notify other tasks that it failed and why
Used in:
* Cause of a remote failure for a generic exception. Contains all the information for a generic exception as well as optional info about the error for generic info passing (which should be another protobuffed class).
Used in:
* The protocol buffer version of Get. Unless existence_only is specified, return all the requested data for the row that matches exactly, or the one that immediately precedes it if closest_row_before is specified.
Used in:
,The result isn't asked for, just check for the existence.
If the row to get doesn't exist, return the closest row before.
Used in:
* The ${HBASE_ROOTDIR}/hbase.version file content
Used in:
* Protocol buffer version of KeyValue. It doesn't have those transient parameters
Used in:
Used as response type in: MasterService.getLastMajorCompactionTimestamp, MasterService.getLastMajorCompactionTimestampForRegion
* Content of the master znode.
The ServerName of the current Master
Major RPC version so that clients can know what version the master can accept.
* Content of the meta-region-server znode.
The ServerName hosting the meta region currently, or destination server, if meta region is in transition.
The major version of the rpc the server speaks. This is used so that clients connecting to the cluster can have prior knowledge of what version to send to a RegionServer. AsyncHBase will use this to detect versions.
State of the region transition. OPEN means fully operational 'hbase:meta'
(message has no fields)
(message has no fields)
* A specific mutation inside a mutate request. It can be an append, increment, put or delete based on the mutation type. It can be fully filled in or only metadata present because data is being carried elsewhere outside of pb.
Used in:
, ,For some mutations, a result may be returned, in which case, time range can be specified for potential performance gain
The below count is set when the associated cells are NOT part of this protobuf message; they are passed alongside and then this Message is a placeholder with metadata. The count is needed to know how many to peel off the block of Cells as ours. NOTE: This is different from the pb managed cell_count of the 'cell' field above which is non-null when the cells are pb'd.
Used in:
Used in:
Used in:
Used in:
Used in:
Used in:
, , , , , ,Used in:
, , , ,Used in:
, , ,(message has no fields)
* Description of the distributed procedure to take
Used in:
, ,the unique signature of the procedure
the procedure instance name
Used in:
(message has no fields)
Used to pass through the information necessary to continue a trace after an RPC is made. All we need is the traceid (so we know the overarching trace this message is a part of), and the id of the current span when this message was sent, so we know what span caused the new span we will create when this message is received.
Used in:
* Reference file content used when we split an hfile under a region.
Used in:
* Actions to run against a Region.
Used in:
When set, run mutations as atomic unit.
* The result of a RegionAction.
Used in:
If the operation failed globally for this region, this exception is set
Used in:
* Protocol buffer version of HRegionInfo.
Used in:
Used in:
* the region specifier
* the number of stores for the region
* the number of storefiles for the region
* the total size of the store files for the region, uncompressed, in MB
* the current total size of the store files for the region, in MB
* the current size of the memstore for the region, in MB
* The current total size of root-level store file indexes for the region, in MB. The same as {@link #rootIndexSizeKB} but in MB.
* the current total read requests made to region
* the current total write requests made to region
* the total compacting key values in currently running compaction
* the completed count of key values in currently running compaction
* The current total size of root-level indexes for the region, in KB.
* The total size of all index blocks, not just the root level, in KB.
* The total size of all Bloom filter blocks, not just loaded into the block cache, in KB.
* the most recent sequence Id from cache flush
* The current data locality for region in the regionserver
* the most recent sequence Id of store from cache flush
Statistics about the current load on the region
Used in:
Percent load on the memstore. Guaranteed to be positive, between 0 and 100.
Percent JVM heap occupancy. Guaranteed to be positive, between 0 and 100. We can move this to "ServerLoadStats" should we develop them.
* Description of the region server info
* Container protocol buffer to specify a region. You can specify region by region name, or the hash of the region name, which is known as encoded region name.
Used in:
, , , , , , , , , , , , , ,Used in:
<tablename>,<startkey>,<regionId>.<encodedName>
hash of <tablename>,<startkey>,<regionId>
Used in:
Used in:
,region is in an offline state
sent rpc to server to open but has not begun
server has begun to open but not yet done
server opened region and updated meta
sent rpc to server to close but has not begun
server has begun to close but not yet done
server closed region and updated meta
server started split of a region
server completed split of a region
failed to open, and won't retry any more
failed to close, and won't retry any more
server started merge a region
server completed merge of a region
new region to be created when RS splits a parent
region but hasn't be created yet, or master doesn't know it's already created
new region to be created when RS merges two
* contains a sequence id of a region which should be the minimum of its store sequence ids and list of sequence ids of the region's stores
* What we write under unassigned up in zookeeper as a region moves through open/close, etc., regions. Details a region in transition.
Code for EventType gotten by doing o.a.h.h.EventHandler.EventType.getCode()
Full regionname in bytes
The region server where the transition will happen or is happening
* Used by replication. Holds the current position in an WAL file.
Used in:
Used in:
* Used by replication. Used to lock a region server during failover.
* Used by replication. Holds a replication peer key.
clusterkey is the concatenation of the slave cluster's hbase.zookeeper.quorum:hbase.zookeeper.property.clientPort:zookeeper.znode.parent
* Used by replication. Holds whether enabled or disabled
Used in:
Header sent making a request.
Monotonically increasing call_id to keep track of RPC requests and their response
If true, then a pb Message param follows.
If present, then an encoded data block follows.
0 is NORMAL priority. 200 is HIGH. If no priority, treat it as NORMAL. See HConstants.
If present, then request threw an exception and no response message (else we presume one)
If present, then an encoded data block follows.
Used in:
, , ,Result includes the Cells or else it just has a count of Cells that are carried otherwise.
The below count is set when the associated cells are not part of this protobuf message; they are passed alongside and then this Message is just a placeholder with metadata. The count is needed to know how many to peel off the block of Cells as ours. NOTE: This is different from the pb managed cell_count of the 'cell' field above which is non-null when the cells are pb'd.
used for Get to check existence only. Not set if existence_only was not set to true in the query.
Whether or not the results are coming from possibly stale data
Whether or not the entire result could be returned. Results will be split when the RPC chunk size limit is reached. Partial results contain only a subset of the cells for a row and must be combined with a result containing the remaining cells to form a complete result
* Either a Result or an Exception NameBytesPair (keyed by exception name whose value is the exception stringified) or maybe empty if no result and no exception.
Used in:
If part of a multi call, save original index of the list of all passed so can align this response w/ original request.
result if this was a coprocessor service call
current load on the region
Used in:
* Instead of get from a table, you can scan it with optional filters. You can specify the row key range, time range, the columns/families to scan and so on. This scan is used the first time in a scan request. The response of the initial scan will return a scanner id, which should be used to fetch result batches later on before it is closed.
Used in:
DO NOT add defaults to load_column_families_on_demand.
Used in:
* Number of requests since last report.
* Total Number of requests from the start of the region server.
* the amount of used heap, in MB.
* the maximum allowable size of the heap, in MB.
* Information on the load of individual regions.
* Regionserver-level coprocessors, e.g., WALObserver implementations. Region-level coprocessors, on the other hand, are stored inside RegionLoad objects.
* Time when incremental (non-total) counts began being calculated (e.g. number_of_requests) time is measured as the difference, measured in milliseconds, between the current time and midnight, January 1, 1970 UTC.
* Time when report was generated. time is measured as the difference, measured in milliseconds, between the current time and midnight, January 1, 1970 UTC.
* The port number that this region server is hosing an info server on.
* The replicationLoadSource for the replication Source status of this region server.
* The replicationLoadSink for the replication Sink status of this region server.
* Protocol buffer version of ServerName
Used in:
, , , , , , , ,Used in:
* Description of the snapshot to take
Used in:
, , , , , ,not needed for delete, but checked for in taking snapshot
Used in:
* WAL SplitLog directory znodes have this for content. Used doing distributed WAL splitting. Holds current state and name of server that originated split.
Used in:
Used in:
* Protobuf version of a java.lang.StackTraceElement so we can serialize exceptions.
Used in:
* sequence Id of a store
Used in:
,* The znode that holds state of table.
This is the table's state. If no znode for a table, its state is presumed enabled. See o.a.h.h.zookeeper.ZKTable class for more.
Table's current state
Used in:
* Metadata associated with a table lock in zookeeper
* Table Name
Used in:
, , , , , , , , , , , , , , , ,* Table Schema Inspired by the rest TableSchema
Used in:
, , ,Used in:
Used in:
Used in:
* A range of time. Both from and to are Java time stamp in milliseconds. If you don't specify a time range, it means all time. By default, if not specified, from = 0, and to = Long.MAX_VALUE
Used in:
, ,Used in:
Used in:
,User Information proto. Included in ConnectionHeader on connection setup
Used in:
Rpc client version info proto. Included in ConnectionHeader on connection setup
Used in: