HBASE-6864 Online snapshots scaffolding [rs]

Distributed Snapshot RegionServer Infrastructure

Changed to make TIMESTAMP fail
Get rid of o.a.h.h.regionserver.snapshot.operation package.
Cleanup RegionServerSnapshotManager constructors
[rs] first cut cleanup of of region server side of online snapshot.
[online] Remove snapshot subprocedure
[rs] Nits in SnapshotSubprocedurePool

[rs] const renames.

HBASE-6864 Online Snapshots scaffolding [hm]

Timestamp Snapshots [master side]

Master side online table snapshot plumbing
  Wire in and test online snapshots
  Wire in Enabled TableSnapshots
  Remove TestSnapshotFromServer -- requires injection framework
  Re add procedure stuff to SnapshotManager
  FS protos

Remove cancel from EnabledTableSnapshotHandler

[master] Repackage Procedure
[online] renamed Procedure getErrorCheckable -> getErrorMonitor

[hm] rename Comms -> RPC
[hm] remove node name from ProcedureCoordinator
[hm] comms -> rpc

[hm] Spacing fixes in EnabledTableSnapshotHandler
[hm] remove manager from inherititing constructor of TakeSnapshotHandler
[hm] spacing nits
[hm] handle changed constroctur (remove dispatcher argument)
[hm] removed unused newOnlineTableSnapshotHandler

[hm] external -> foreign

[online] review fixes matteo's from offline refactor review
[hm] ted hbase-7208 part 3 review fixes.
Hooray, Snapshot manager initialization gets even cleaner!
[hm] Cleaned up a comment
remove server from imports of SnapshotManager

[hm] add warning about race and verifier.
replace Hbasefsck.debuglsr with logFSTree.

[online] change default to LOGROLL snapshot (arg!)
[online] moved .tableinfo copy to master
this final broke some mockito tests.
[online] add more error handling messages

[online] regularizing ForeignException
[online] cleanup exceptions.

fix

[online] fix spacing for review.

[online] renames of ForeignExceptions.

[online] removed Object...

[online?] Move waitForLatch

[online] simplify procedure coordinator.
[online] plumb through ForeignExceptionDispatcher.  Allows handler's FED to be passed in to Procedure.

online scaffolding.
[online] change due to ForeignExceptionListener#receive args
[online] porperly use completion service
[online] fix comments.

fix compile

online - review fixes from ted's review on HBSAE-7321 jira.

online - spacing nits

online - fixes from stack/matteo

online - tweaks

online - regularize stopable/abortable/closeable/cancellable.
Removed extneds Configured from RegionServerSnapshotManager.  Why extend if we never use only the base class/interface?
Fixed serious problem with SnapshotSubprocedurePool
Limited SnasphotSubprocedurePool to package exposed
Improve comments
Fold SnapshotSubprocedurePool into RegionServerSnapshotManager.
Cleanup stop/shutdown/close in RegionServerSnapshotManager
SnapshotManager close -> stop
[online] removed stopped field
moving hregion

Make EnabledTableSnapshotHandler procedure field a function var.

online - removing unused conf variable

Convert tests

remove methods not valid yet (LOGROLL, TIMESTAMP)

Removed TIMESTAMP and GLOBAL from protobufs

Remove LOGROLL, GLOBAL, TIMESTAMP from other code

Add snapshot manager checks.

Removed irrelevant fields.

online nit
HBASE-7321 Simple flush online snapshot

[flush] Add simple flush snapshot.
[flush] bump upto 3 node minicluster

[flush] fixed logroll->flush comment sloppieness.

[flush] command and spacing for review.

[flush] addregion to ss.

flush imports fix

flsuh updates

Flush snapshot fixes from ted's review on HBASE-7321 jira.

flush - Comment cleanup

online - hregion extracted
Pulled out HRegion modification out o fflush online snapshots.
typo fix.

hregion - tweak

Improve logging in FlushSnashotSubprocedure
Add region readlock to prevent closing (and moving) while a region is being snapshotted.
[flush] added comment about read lock.
[flush] cancel -> cancelTasks

flush - updated doc in hregion about exnSnare

[flush] use FSUtils.logFSTree

Made wake millis a function var instead of a rssm field.
HBASE-7291 Log roll snapshot [rs]

- Logrollsnapshot uses external->foreign

logroll move due ot o.a.h.h.ss.operation rm
Add LOGROLL style snapshots to protobuf
Adding log roll snapshot test.
[lr] Remove unused field in SnapshotSubprocedure.
- noticed that SnapshotSubprocedure not used by TimestampSnapshotSubprocedure.
[lr] Update to remove dependency on SnapshotSubprocedure
Parallelize the logrollsnapshotssubprocedure.
End-to-end test showing that log roll works (and it is online)
logroll fixes

Fixed test broken due to new default snapshot type.

[lr] grr.. bad comments in log roll.
[lr] move .tableinfo copy to master
[lr] log roll log rolling timing problem fixed, tets pass.
Tweak to force -- had truncated hlogs on clone/restore.
[lr] imports nits
[lr] add debugging to logroll tracker.
[lr] fix cleaners on logroll tests.
[lr] add debugging to logroll snapshot

[lr] regularlize ForeignException

[lr] ignore logroll tests

[lr] ignore restore logroll tests.

log roll tweaks

lr updates

[lr] SnapshotSubprocedurePool fold in.
[lr] cancel -> cancelTasks

fix log roll rssm
HBASE-6866 Timestamp snapshots [regionserver side]

Timestamp Snapshot on the region
  RegionServer side manager and plumbing
  SS Desc utils nits.
  Flush region ts snapshot regionserver side.
  Online SnapshotSubprocedure
  Fixes for making rs side compile

[rs] Remove releaseBarrier subproc no-op
[rs] repackage procedure
[rs] rename externalErrorMonitor -> monitor
[ts] renamed externalErrorMonitor -> monitor

[rs] procedure is now clean.
[rs] nit fix for online exception handling.
[rs] change from localOperationException -> cancel.
[rs] changed constructor args of Subprocedure

[rs] fix spacing nits.
[rs] Comms->Rpcs
[rs] clean up procedure member
[rs] Fixed naming.

[rs] Folded CheckForSwappedStores into FlushRegionAtTimestampTask

[rs] External -> foreign

Pullout rs infrastructure

[ts] get rid of o.a.h.h.s.operation Move Timestamp flush snapshot
[ts] Rename TimestampSnapshotOperation -> TimestampSnapshotSubprocedure
[ts] minor foling of a method in TimestampSnapshotSubprocedure
Enabled TimestanpSnapshotSubproc in RegionServerSnapshotManager
hregion Nit fix.

[ts] comment they goofiness of tableinfo copy.

[ts] Regularize ForeignException

[ts] renames of ForeignExceptions.

[ts] rm Object...

hregion nit.

ts junk

[ts] tweak due to ForeignExceptionListener#receive change.

Conflicts:

	hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/HRegion.java
	hbase-server/src/test/java/org/apache/hadoop/hbase/client/TestSnapshotFromClient.java

spacing nit

missing files

[ts] SnapshotSubprocPool foldin.

ts - addition for ts snapshots
Ignore TestHCM#testRegionCaching since it hangs frequently
'i' before 'e' except for receive
better proc debug messages
only for snaphots that use logs (global, logroll)
global - snapshot description validation.
Updates that need to be weaved back into timestamp and logroll snapshtos