You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hbase.apache.org by sy...@apache.org on 2015/12/07 17:55:43 UTC
[06/50] [abbrv] hbase git commit: HBASE-14891 Add log for uncaught
exception in RegionServerMetricsWrapperRunnable(Yu Li)
HBASE-14891 Add log for uncaught exception in RegionServerMetricsWrapperRunnable(Yu Li)
Project: http://git-wip-us.apache.org/repos/asf/hbase/repo
Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/999ae691
Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/999ae691
Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/999ae691
Branch: refs/heads/hbase-12439
Commit: 999ae691559a49321138eb7718eb204435639db9
Parents: 71d41e0
Author: chenheng <ch...@apache.org>
Authored: Mon Nov 30 22:30:09 2015 +0800
Committer: chenheng <ch...@apache.org>
Committed: Mon Nov 30 22:30:09 2015 +0800
----------------------------------------------------------------------
.../MetricsRegionServerWrapperImpl.java | 295 ++++++++++---------
1 file changed, 150 insertions(+), 145 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/hbase/blob/999ae691/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.java
----------------------------------------------------------------------
diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.java
index e908be6..108ca6c 100644
--- a/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.java
+++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/regionserver/MetricsRegionServerWrapperImpl.java
@@ -569,155 +569,160 @@ class MetricsRegionServerWrapperImpl
@Override
synchronized public void run() {
- initBlockCache();
- initMobFileCache();
- cacheStats = blockCache.getStats();
-
- HDFSBlocksDistribution hdfsBlocksDistribution =
- new HDFSBlocksDistribution();
- HDFSBlocksDistribution hdfsBlocksDistributionSecondaryRegions =
- new HDFSBlocksDistribution();
-
- long tempNumStores = 0, tempNumStoreFiles = 0, tempMemstoreSize = 0, tempStoreFileSize = 0;
- long tempReadRequestsCount = 0, tempWriteRequestsCount = 0;
- long tempCheckAndMutateChecksFailed = 0;
- long tempCheckAndMutateChecksPassed = 0;
- long tempStorefileIndexSize = 0;
- long tempTotalStaticIndexSize = 0;
- long tempTotalStaticBloomSize = 0;
- long tempNumMutationsWithoutWAL = 0;
- long tempDataInMemoryWithoutWAL = 0;
- double tempPercentFileLocal = 0;
- double tempPercentFileLocalSecondaryRegions = 0;
- long tempFlushedCellsCount = 0;
- long tempCompactedCellsCount = 0;
- long tempMajorCompactedCellsCount = 0;
- long tempFlushedCellsSize = 0;
- long tempCompactedCellsSize = 0;
- long tempMajorCompactedCellsSize = 0;
- long tempCellsCountCompactedToMob = 0;
- long tempCellsCountCompactedFromMob = 0;
- long tempCellsSizeCompactedToMob = 0;
- long tempCellsSizeCompactedFromMob = 0;
- long tempMobFlushCount = 0;
- long tempMobFlushedCellsCount = 0;
- long tempMobFlushedCellsSize = 0;
- long tempMobScanCellsCount = 0;
- long tempMobScanCellsSize = 0;
- long tempBlockedRequestsCount = 0;
-
- for (Region r : regionServer.getOnlineRegionsLocalContext()) {
- tempNumMutationsWithoutWAL += r.getNumMutationsWithoutWAL();
- tempDataInMemoryWithoutWAL += r.getDataInMemoryWithoutWAL();
- tempReadRequestsCount += r.getReadRequestsCount();
- tempWriteRequestsCount += r.getWriteRequestsCount();
- tempCheckAndMutateChecksFailed += r.getCheckAndMutateChecksFailed();
- tempCheckAndMutateChecksPassed += r.getCheckAndMutateChecksPassed();
- tempBlockedRequestsCount += r.getBlockedRequestsCount();
- List<Store> storeList = r.getStores();
- tempNumStores += storeList.size();
- for (Store store : storeList) {
- tempNumStoreFiles += store.getStorefilesCount();
- tempMemstoreSize += store.getMemStoreSize();
- tempStoreFileSize += store.getStorefilesSize();
- tempStorefileIndexSize += store.getStorefilesIndexSize();
- tempTotalStaticBloomSize += store.getTotalStaticBloomSize();
- tempTotalStaticIndexSize += store.getTotalStaticIndexSize();
- tempFlushedCellsCount += store.getFlushedCellsCount();
- tempCompactedCellsCount += store.getCompactedCellsCount();
- tempMajorCompactedCellsCount += store.getMajorCompactedCellsCount();
- tempFlushedCellsSize += store.getFlushedCellsSize();
- tempCompactedCellsSize += store.getCompactedCellsSize();
- tempMajorCompactedCellsSize += store.getMajorCompactedCellsSize();
- if (store instanceof HMobStore) {
- HMobStore mobStore = (HMobStore) store;
- tempCellsCountCompactedToMob += mobStore.getCellsCountCompactedToMob();
- tempCellsCountCompactedFromMob += mobStore.getCellsCountCompactedFromMob();
- tempCellsSizeCompactedToMob += mobStore.getCellsSizeCompactedToMob();
- tempCellsSizeCompactedFromMob += mobStore.getCellsSizeCompactedFromMob();
- tempMobFlushCount += mobStore.getMobFlushCount();
- tempMobFlushedCellsCount += mobStore.getMobFlushedCellsCount();
- tempMobFlushedCellsSize += mobStore.getMobFlushedCellsSize();
- tempMobScanCellsCount += mobStore.getMobScanCellsCount();
- tempMobScanCellsSize += mobStore.getMobScanCellsSize();
+ try {
+ initBlockCache();
+ initMobFileCache();
+ cacheStats = blockCache.getStats();
+
+ HDFSBlocksDistribution hdfsBlocksDistribution =
+ new HDFSBlocksDistribution();
+ HDFSBlocksDistribution hdfsBlocksDistributionSecondaryRegions =
+ new HDFSBlocksDistribution();
+
+ long tempNumStores = 0, tempNumStoreFiles = 0, tempMemstoreSize = 0, tempStoreFileSize = 0;
+ long tempReadRequestsCount = 0, tempWriteRequestsCount = 0;
+ long tempCheckAndMutateChecksFailed = 0;
+ long tempCheckAndMutateChecksPassed = 0;
+ long tempStorefileIndexSize = 0;
+ long tempTotalStaticIndexSize = 0;
+ long tempTotalStaticBloomSize = 0;
+ long tempNumMutationsWithoutWAL = 0;
+ long tempDataInMemoryWithoutWAL = 0;
+ double tempPercentFileLocal = 0;
+ double tempPercentFileLocalSecondaryRegions = 0;
+ long tempFlushedCellsCount = 0;
+ long tempCompactedCellsCount = 0;
+ long tempMajorCompactedCellsCount = 0;
+ long tempFlushedCellsSize = 0;
+ long tempCompactedCellsSize = 0;
+ long tempMajorCompactedCellsSize = 0;
+ long tempCellsCountCompactedToMob = 0;
+ long tempCellsCountCompactedFromMob = 0;
+ long tempCellsSizeCompactedToMob = 0;
+ long tempCellsSizeCompactedFromMob = 0;
+ long tempMobFlushCount = 0;
+ long tempMobFlushedCellsCount = 0;
+ long tempMobFlushedCellsSize = 0;
+ long tempMobScanCellsCount = 0;
+ long tempMobScanCellsSize = 0;
+ long tempBlockedRequestsCount = 0;
+
+ for (Region r : regionServer.getOnlineRegionsLocalContext()) {
+ tempNumMutationsWithoutWAL += r.getNumMutationsWithoutWAL();
+ tempDataInMemoryWithoutWAL += r.getDataInMemoryWithoutWAL();
+ tempReadRequestsCount += r.getReadRequestsCount();
+ tempWriteRequestsCount += r.getWriteRequestsCount();
+ tempCheckAndMutateChecksFailed += r.getCheckAndMutateChecksFailed();
+ tempCheckAndMutateChecksPassed += r.getCheckAndMutateChecksPassed();
+ tempBlockedRequestsCount += r.getBlockedRequestsCount();
+ List<Store> storeList = r.getStores();
+ tempNumStores += storeList.size();
+ for (Store store : storeList) {
+ tempNumStoreFiles += store.getStorefilesCount();
+ tempMemstoreSize += store.getMemStoreSize();
+ tempStoreFileSize += store.getStorefilesSize();
+ tempStorefileIndexSize += store.getStorefilesIndexSize();
+ tempTotalStaticBloomSize += store.getTotalStaticBloomSize();
+ tempTotalStaticIndexSize += store.getTotalStaticIndexSize();
+ tempFlushedCellsCount += store.getFlushedCellsCount();
+ tempCompactedCellsCount += store.getCompactedCellsCount();
+ tempMajorCompactedCellsCount += store.getMajorCompactedCellsCount();
+ tempFlushedCellsSize += store.getFlushedCellsSize();
+ tempCompactedCellsSize += store.getCompactedCellsSize();
+ tempMajorCompactedCellsSize += store.getMajorCompactedCellsSize();
+ if (store instanceof HMobStore) {
+ HMobStore mobStore = (HMobStore) store;
+ tempCellsCountCompactedToMob += mobStore.getCellsCountCompactedToMob();
+ tempCellsCountCompactedFromMob += mobStore.getCellsCountCompactedFromMob();
+ tempCellsSizeCompactedToMob += mobStore.getCellsSizeCompactedToMob();
+ tempCellsSizeCompactedFromMob += mobStore.getCellsSizeCompactedFromMob();
+ tempMobFlushCount += mobStore.getMobFlushCount();
+ tempMobFlushedCellsCount += mobStore.getMobFlushedCellsCount();
+ tempMobFlushedCellsSize += mobStore.getMobFlushedCellsSize();
+ tempMobScanCellsCount += mobStore.getMobScanCellsCount();
+ tempMobScanCellsSize += mobStore.getMobScanCellsSize();
+ }
}
- }
- HDFSBlocksDistribution distro = r.getHDFSBlocksDistribution();
- hdfsBlocksDistribution.add(distro);
- if (r.getRegionInfo().getReplicaId() != HRegionInfo.DEFAULT_REPLICA_ID) {
- hdfsBlocksDistributionSecondaryRegions.add(distro);
+ HDFSBlocksDistribution distro = r.getHDFSBlocksDistribution();
+ hdfsBlocksDistribution.add(distro);
+ if (r.getRegionInfo().getReplicaId() != HRegionInfo.DEFAULT_REPLICA_ID) {
+ hdfsBlocksDistributionSecondaryRegions.add(distro);
+ }
}
+ float localityIndex = hdfsBlocksDistribution.getBlockLocalityIndex(
+ regionServer.getServerName().getHostname());
+ tempPercentFileLocal = Double.isNaN(tempBlockedRequestsCount) ? 0 : (localityIndex * 100);
+
+ float localityIndexSecondaryRegions = hdfsBlocksDistributionSecondaryRegions
+ .getBlockLocalityIndex(regionServer.getServerName().getHostname());
+ tempPercentFileLocalSecondaryRegions = Double.
+ isNaN(localityIndexSecondaryRegions) ? 0 : (localityIndexSecondaryRegions * 100);
+
+ // Compute the number of requests per second
+ long currentTime = EnvironmentEdgeManager.currentTime();
+
+ // assume that it took PERIOD seconds to start the executor.
+ // this is a guess but it's a pretty good one.
+ if (lastRan == 0) {
+ lastRan = currentTime - period;
+ }
+ // If we've time traveled keep the last requests per second.
+ if ((currentTime - lastRan) > 0) {
+ long currentRequestCount = getTotalRequestCount();
+ requestsPerSecond = (currentRequestCount - lastRequestCount) /
+ ((currentTime - lastRan) / 1000.0);
+ lastRequestCount = currentRequestCount;
+ }
+ lastRan = currentTime;
+
+ WALProvider provider = regionServer.walFactory.getWALProvider();
+ WALProvider metaProvider = regionServer.walFactory.getMetaWALProvider();
+ numWALFiles = (provider == null ? 0 : provider.getNumLogFiles()) +
+ (metaProvider == null ? 0 : metaProvider.getNumLogFiles());
+ walFileSize = (provider == null ? 0 : provider.getLogFileSize()) +
+ (provider == null ? 0 : provider.getLogFileSize());
+ // Copy over computed values so that no thread sees half computed values.
+ numStores = tempNumStores;
+ numStoreFiles = tempNumStoreFiles;
+ memstoreSize = tempMemstoreSize;
+ storeFileSize = tempStoreFileSize;
+ readRequestsCount = tempReadRequestsCount;
+ writeRequestsCount = tempWriteRequestsCount;
+ checkAndMutateChecksFailed = tempCheckAndMutateChecksFailed;
+ checkAndMutateChecksPassed = tempCheckAndMutateChecksPassed;
+ storefileIndexSize = tempStorefileIndexSize;
+ totalStaticIndexSize = tempTotalStaticIndexSize;
+ totalStaticBloomSize = tempTotalStaticBloomSize;
+ numMutationsWithoutWAL = tempNumMutationsWithoutWAL;
+ dataInMemoryWithoutWAL = tempDataInMemoryWithoutWAL;
+ percentFileLocal = tempPercentFileLocal;
+ percentFileLocalSecondaryRegions = tempPercentFileLocalSecondaryRegions;
+ flushedCellsCount = tempFlushedCellsCount;
+ compactedCellsCount = tempCompactedCellsCount;
+ majorCompactedCellsCount = tempMajorCompactedCellsCount;
+ flushedCellsSize = tempFlushedCellsSize;
+ compactedCellsSize = tempCompactedCellsSize;
+ majorCompactedCellsSize = tempMajorCompactedCellsSize;
+ cellsCountCompactedToMob = tempCellsCountCompactedToMob;
+ cellsCountCompactedFromMob = tempCellsCountCompactedFromMob;
+ cellsSizeCompactedToMob = tempCellsSizeCompactedToMob;
+ cellsSizeCompactedFromMob = tempCellsSizeCompactedFromMob;
+ mobFlushCount = tempMobFlushCount;
+ mobFlushedCellsCount = tempMobFlushedCellsCount;
+ mobFlushedCellsSize = tempMobFlushedCellsSize;
+ mobScanCellsCount = tempMobScanCellsCount;
+ mobScanCellsSize = tempMobScanCellsSize;
+ mobFileCacheAccessCount = mobFileCache.getAccessCount();
+ mobFileCacheMissCount = mobFileCache.getMissCount();
+ mobFileCacheHitRatio = Double.
+ isNaN(mobFileCache.getHitRatio())?0:mobFileCache.getHitRatio();
+ mobFileCacheEvictedCount = mobFileCache.getEvictedFileCount();
+ mobFileCacheCount = mobFileCache.getCacheSize();
+ blockedRequestsCount = tempBlockedRequestsCount;
+ } catch (Throwable e) {
+ LOG.warn("Caught exception! Will suppress and retry.", e);
}
- float localityIndex = hdfsBlocksDistribution.getBlockLocalityIndex(
- regionServer.getServerName().getHostname());
- tempPercentFileLocal = Double.isNaN(tempBlockedRequestsCount) ? 0 : (localityIndex * 100);
-
- float localityIndexSecondaryRegions = hdfsBlocksDistributionSecondaryRegions
- .getBlockLocalityIndex(regionServer.getServerName().getHostname());
- tempPercentFileLocalSecondaryRegions =
- Double.isNaN(localityIndexSecondaryRegions) ? 0 : (localityIndexSecondaryRegions * 100);
-
- // Compute the number of requests per second
- long currentTime = EnvironmentEdgeManager.currentTime();
-
- // assume that it took PERIOD seconds to start the executor.
- // this is a guess but it's a pretty good one.
- if (lastRan == 0) {
- lastRan = currentTime - period;
- }
- // If we've time traveled keep the last requests per second.
- if ((currentTime - lastRan) > 0) {
- long currentRequestCount = getTotalRequestCount();
- requestsPerSecond = (currentRequestCount - lastRequestCount) /
- ((currentTime - lastRan) / 1000.0);
- lastRequestCount = currentRequestCount;
- }
- lastRan = currentTime;
-
- WALProvider provider = regionServer.walFactory.getWALProvider();
- WALProvider metaProvider = regionServer.walFactory.getMetaWALProvider();
- numWALFiles = (provider == null ? 0 : provider.getNumLogFiles()) +
- (metaProvider == null ? 0 : metaProvider.getNumLogFiles());
- walFileSize = (provider == null ? 0 : provider.getLogFileSize()) +
- (provider == null ? 0 : provider.getLogFileSize());
- // Copy over computed values so that no thread sees half computed values.
- numStores = tempNumStores;
- numStoreFiles = tempNumStoreFiles;
- memstoreSize = tempMemstoreSize;
- storeFileSize = tempStoreFileSize;
- readRequestsCount = tempReadRequestsCount;
- writeRequestsCount = tempWriteRequestsCount;
- checkAndMutateChecksFailed = tempCheckAndMutateChecksFailed;
- checkAndMutateChecksPassed = tempCheckAndMutateChecksPassed;
- storefileIndexSize = tempStorefileIndexSize;
- totalStaticIndexSize = tempTotalStaticIndexSize;
- totalStaticBloomSize = tempTotalStaticBloomSize;
- numMutationsWithoutWAL = tempNumMutationsWithoutWAL;
- dataInMemoryWithoutWAL = tempDataInMemoryWithoutWAL;
- percentFileLocal = tempPercentFileLocal;
- percentFileLocalSecondaryRegions = tempPercentFileLocalSecondaryRegions;
- flushedCellsCount = tempFlushedCellsCount;
- compactedCellsCount = tempCompactedCellsCount;
- majorCompactedCellsCount = tempMajorCompactedCellsCount;
- flushedCellsSize = tempFlushedCellsSize;
- compactedCellsSize = tempCompactedCellsSize;
- majorCompactedCellsSize = tempMajorCompactedCellsSize;
- cellsCountCompactedToMob = tempCellsCountCompactedToMob;
- cellsCountCompactedFromMob = tempCellsCountCompactedFromMob;
- cellsSizeCompactedToMob = tempCellsSizeCompactedToMob;
- cellsSizeCompactedFromMob = tempCellsSizeCompactedFromMob;
- mobFlushCount = tempMobFlushCount;
- mobFlushedCellsCount = tempMobFlushedCellsCount;
- mobFlushedCellsSize = tempMobFlushedCellsSize;
- mobScanCellsCount = tempMobScanCellsCount;
- mobScanCellsSize = tempMobScanCellsSize;
- mobFileCacheAccessCount = mobFileCache.getAccessCount();
- mobFileCacheMissCount = mobFileCache.getMissCount();
- mobFileCacheHitRatio = Double.isNaN(mobFileCache.getHitRatio())?0:mobFileCache.getHitRatio();
- mobFileCacheEvictedCount = mobFileCache.getEvictedFileCount();
- mobFileCacheCount = mobFileCache.getCacheSize();
- blockedRequestsCount = tempBlockedRequestsCount;
}
}