[HBASE-8423] Allow Major Compaction to Use Different Compression

Author: nspiegelberg

Summary:
For Titan, ~90% of the disk util is associated with major compacted files
but less than 33% of the get IOPS are due to mc files.  Allowing a
different compaction algorithm for major compacted files will allow us
to get ~30% disk savings.  Latency should be higher, but storefile
querying is sequential, so only 1/3 of the get latency is from disk access to these
files.  Need to deploy this to dark launch to understand get latency increase.

Test Plan: - mvn test -Dtest=TestCompaction

Reviewers: liyintang, aaiyer, manukranthk

Reviewed By: liyintang

CC: hbase-eng@

Differential Revision: https://phabricator.fb.com/D779262

git-svn-id: https://svn.apache.org/repos/asf/hbase/branches/0.89-fb@1475883 13f79535-47bb-0310-9956-ffa450edef68
[HBASE-8307] Making the Histogram thread safe.

Author: manukranthk

Summary: Making the Histogram thread safe by adding synchronization on buckets array in the mutator methods.

Test Plan: Run existing unit tests.

Reviewers: gauravm, liyintang

Reviewed By: liyintang

CC: hbase-eng@, shaneh

Differential Revision: https://phabricator.fb.com/D786880

git-svn-id: https://svn.apache.org/repos/asf/hbase/branches/0.89-fb@1475884 13f79535-47bb-0310-9956-ffa450edef68