public DatabaseStats getBtreeStatsUncached() throws Exception { // fast stats does not provide detailed Btree structure. // This is invasive and will affect performance. return database.getStats(new StatsConfig().setFast(false)); }
public DatabaseStats getStats(boolean setFast) { try { StatsConfig config = new StatsConfig(); config.setFast(setFast); return this.getBdbDatabase().getStats(config); } catch(DatabaseException e) { this.bdbEnvironmentStats.reportException(e); logger.error(e); throw new VoldemortException(e); } }
public void showStats(Formatter f) { openDatabase(); try { DatabaseStats dstats = database.getStats(null); f.format("primary stats %n%s%n", dstats); } catch (DatabaseException e) { e.printStackTrace(); } }
public void showStats(Formatter f) { openDatabase(); try { DatabaseStats dstats = database.getStats(null); f.format("primary stats %n%s%n", dstats); } catch (DatabaseException e) { e.printStackTrace(); } }
@Override public BackendStats getEntryStatistics(BackendStatsConfig config) { StatsConfig statsConfig = new StatsConfig() .setFast(config.onlyCollectFast()) .setClear(config.resetStatsAfterCollection()) ; final long start = System.currentTimeMillis(); BDBBackendStats stats = new BDBBackendStats(config, start); stats.db = _store.getStats(statsConfig); stats.env = _store.getEnvironment().getStats(statsConfig); // don't accept "0 msecs" as answer :) stats.setTimeTakenMsecs(Math.max(1L, System.currentTimeMillis() - start)); return stats; }
protected BackendStats _getStats(Database db, BackendStatsConfig config, boolean includeEnvStats) { StatsConfig statsConfig = new StatsConfig() .setFast(config.onlyCollectFast()) .setClear(config.resetStatsAfterCollection()) ; /* 16-May-2013, tatu: Would be great to be able to remove/clear deprecated * entries here... alas, no mutators, so need to leave them as is, * for now. */ // Should we require creationTime to be accessed via TimeMaster? BDBBackendStats stats = new BDBBackendStats(config, System.currentTimeMillis()); final long start = System.currentTimeMillis(); stats.db = db.getStats(statsConfig); if (includeEnvStats) { stats.env = db.getEnvironment().getStats(statsConfig); } // let's not accept "no time taken" as valid, always at least 1 msec: final long taken = System.currentTimeMillis() - start; stats.setTimeTakenMsecs(Math.max(1L, taken)); return stats; }
public static Map<String,Object> getDatabaseStatistics(Environment environment, String database, boolean reset) { DatabaseConfig dbConfig = new DatabaseConfig(); dbConfig.setReadOnly(true); DbInternal.setUseExistingConfig(dbConfig, true); try (Database db = environment.openDatabase(null, database, dbConfig)) { StatsConfig config = new StatsConfig(); config.setClear(reset); config.setFast(false); BtreeStats stats = (BtreeStats) db.getStats(config); Map<String, Object> results = new TreeMap<>(); results.put(BTREE_BIN_COUNT.getName(), stats.getBottomInternalNodeCount()); results.put(BTREE_DELETED_LN_COUNT.getName(), stats.getDeletedLeafNodeCount()); results.put(BTREE_IN_COUNT.getName(), stats.getInternalNodeCount()); results.put(BTREE_LN_COUNT.getName(), stats.getLeafNodeCount()); results.put(BTREE_MAINTREE_MAXDEPTH.getName(), stats.getMainTreeMaxDepth()); results.put(BTREE_INS_BYLEVEL.getName(), Arrays.asList(stats.getINsByLevel())); results.put(BTREE_BINS_BYLEVEL.getName(), Arrays.asList(stats.getBINsByLevel())); results.put(BTREE_BIN_ENTRIES_HISTOGRAM.getName(), Arrays.asList(stats.getBINEntriesHistogram())); results.put(BTREE_RELATCHES_REQUIRED.getName(), stats.getRelatches()); results.put(BTREE_ROOT_SPLITS.getName(), stats.getRootSplits()); return results; } }
/** * Helper to get statistics for a given database. * * @param params operation parameters * @return DatabaseStats object */ private DatabaseStats getDatabaseStats(Object[] params) throws IllegalArgumentException, DatabaseException { if ((params == null) || (params.length < 3)) { return null; } String dbName = (String)params[2]; Database db = null; try { DatabaseConfig dbConfig = new DatabaseConfig(); dbConfig.setReadOnly(true); DbInternal.setUseExistingConfig(dbConfig, true); db = env.openDatabase(null, dbName, dbConfig); return db.getStats(getStatsConfig(params)); } finally { if (db != null) { db.close(); } } }
return db.getStats(getStatsConfig(params)); } finally { if (db != null) {