This patch rewrites incorrectly serialized table descriptors and states
from HBASE-26021 into PBs prior to the incompatible change. The patch
does this as a part of the active HMaster bootstrap.
This approach is _not_ fool proof as it does not handle all the edge cases
and may break certain rolling upgrade semantics. However it does provide a way
out for tables created with 1.7.0 PB definitions and an upgrade path for 1.7.1.
Easiest way is to shutdown the 1.7.0 cluster, reboot with 1.7.1 binaries and
everything should work cleanly. However, rolling upgrade could potentially be
broken as 1.7.0 client may not be compatible with 1.7.1 server.
As noted in the jira, it is not possible that any one upgraded to 1.7.0 yet
because they will run into HBASE-26021, however new clusters may have been
created with 1.7.0 and hence they need an upgrade path.
Tested locally:
- Created a mix of enabled/disabled tables created with 1.7.0
- Upgraded the cluster without this patch, noticed deserialization errors
- Upgraded the cluster with patch and table metadata has been re-serialized
in correct format and table states are preserved.
Signed-off-by: Reid Chan <reidchan@apache.org>
Revert "HBASE-7767 Get rid of ZKTable, and table enable/disable state in ZK (Andrey Stepachev)"
Fixes the ConnectionRegistry and dependencies due to the revert.
Signed-off-by: Viraj Jasani <vjasani@apache.org>
Signed-off-by: Andrew Purtell <apurtell@apache.org>
This patch adds the ability to discover newly added masters
dynamically on the master registry side. The trigger for the
re-fetch is either periodic (5 mins) or any registry RPC failure.
Master server information is cached in masters to avoid repeated
ZK lookups.
Updates the client side connection metrics to maintain a counter
per RPC type so that clients have visibility into counts grouped
by RPC method name.
I didn't add the method to ZK registry interface since there
is a design discussion going on in splittable meta doc. We can
add it later if needed.
Signed-off-by: Nick Dimiduk <ndimiduk@apache.org>
Signed-off-by: Viraj Jasani <vjasani@apache.org>
Signed-off-by: Duo Zhang <zhangduo@apache.org>
Signed-off-by: Andrew Purtell <apurtell@apache.org>
(cherry picked from commit 275a38e153)
(cherry picked from commit bb9121da77)
* HBASE-23304: RPCs needed for client meta information lookup
This patch implements the RPCs needed for the meta information
lookup during connection init. New tests added to cover the RPC
code paths. HBASE-23305 builds on this to implement the client
side logic.
Fixed a bunch of checkstyle nits around the places the patch
touches.
Signed-off-by: Andrew Purtell <apurtell@apache.org>
(cherry picked from commit 4f8fbba0c0)
(cherry picked from commit 488460e840)
Implements `ClusterManager` that relies on the new
`ShellExecEndpointCoprocessor` for remote shell command execution.
Signed-off-by: Bharath Vissapragada <bharathv@apache.org>
Co-authored-by: Nick Dimiduk <ndimiduk@apache.org>
HBASE-6028 Start/Stop compactions at region server level
Add switching on/off of compactions.
Switching off compactions will also interrupt any currently ongoing compactions.
Adds a "compaction_switch" to hbase shell. Switching off compactions will
interrupt any currently ongoing compactions. State set from shell will be
lost on restart. To persist the changes across region servers modify
hbase.regionserver.compaction.enabled in hbase-site.xml and restart.
- Refactor TableName into its own proto module and fix up users
- Move SnapshotDescription from Snapshot.proto back to HBase.proto
- Restore FastLongHistogram and TestFastLongHistogram;
deprecate FastLongHistogram
- Move DeleteQueryTracker back to o.a.h.h.regionserver