public CoordinatorStats() { perTierStats = new HashMap<>(); perDataSourceStats = new HashMap<>(); globalStats = new Object2LongOpenHashMap<>(); }
public void addToTieredStat(final String statName, final String tier, final long value) { perTierStats.computeIfAbsent(statName, ignored -> new Object2LongOpenHashMap<>()) .addTo(tier, value); }
public void addToDataSourceStat(String statName, String dataSource, long value) { perDataSourceStats.computeIfAbsent(statName, k -> new Object2LongOpenHashMap<>()) .addTo(dataSource, value); }
@Override public Object2LongOpenHashMap<String> remainingSegmentSizeBytes() { final Object2LongOpenHashMap<String> resultMap = new Object2LongOpenHashMap<>(); resultMap.defaultReturnValue(UNKNOWN_REMAINING_SEGMENT_SIZE); for (QueueEntry entry : queue) { final VersionedIntervalTimeline<String, DataSegment> timeline = dataSources.get(entry.getDataSource()); final Interval interval = new Interval(timeline.first().getInterval().getStart(), entry.interval.getEnd()); final List<TimelineObjectHolder<String, DataSegment>> holders = timeline.lookup(interval); resultMap.put( entry.getDataSource(), holders.stream() .flatMap(holder -> StreamSupport.stream(holder.getObject().spliterator(), false)) .mapToLong(chunk -> chunk.getObject().getSize()) .sum() ); } return resultMap; }
name -> new Object2LongOpenHashMap<>() ); final Object2LongOpenHashMap<String> myStat = perDataSourceStats.computeIfAbsent( statName, k -> new Object2LongOpenHashMap<>() );
public Map<String, ? extends Object2LongMap<String>> getReplicationStatus() { final Map<String, Object2LongOpenHashMap<String>> retVal = new HashMap<>(); if (segmentReplicantLookup == null) { return retVal; } final DateTime now = DateTimes.nowUtc(); for (final DataSegment segment : getAvailableDataSegments()) { final List<Rule> rules = metadataRuleManager.getRulesWithDefault(segment.getDataSource()); for (final Rule rule : rules) { if (!(rule instanceof LoadRule && rule.appliesTo(segment, now))) { continue; } ((LoadRule) rule) .getTieredReplicants() .forEach((final String tier, final Integer ruleReplicants) -> { int currentReplicants = segmentReplicantLookup.getLoadedReplicants(segment.getId(), tier); retVal .computeIfAbsent(tier, ignored -> new Object2LongOpenHashMap<>()) .addTo(segment.getDataSource(), Math.max(ruleReplicants - currentReplicants, 0)); }); break; // only the first matching rule applies } } return retVal; }
private List<LocalRegion> getAllSortedRegionList() { List<LocalRegion> allRegionList = getAllRegionList(); // Capture the sizes so that they do not change while sorting final Object2LongOpenHashMap<LocalRegion> sizes = new Object2LongOpenHashMap<>(allRegionList.size()); for (LocalRegion region : allRegionList) { long size = region instanceof BucketRegion ? ((BucketRegion) region).getSizeForEviction() : region.size(); sizes.put(region, size); } // Sort with respect to other PR buckets also in case of multiple PRs allRegionList.sort((region1, region2) -> { long numEntries1 = sizes.get(region1); long numEntries2 = sizes.get(region2); if (numEntries1 > numEntries2) { return -1; } else if (numEntries1 < numEntries2) { return 1; } return 0; }); return allRegionList; }
public Object2LongMap<String> getSegmentAvailability() { final Object2LongOpenHashMap<String> retVal = new Object2LongOpenHashMap<>(); if (segmentReplicantLookup == null) { return retVal; } for (DataSegment segment : getAvailableDataSegments()) { if (segmentReplicantLookup.getLoadedReplicants(segment.getId()) == 0) { retVal.addTo(segment.getDataSource(), 1); } else { retVal.addTo(segment.getDataSource(), 0); } } return retVal; }
final Object2LongOpenHashMap<String> pendingDeleteSizes = new Object2LongOpenHashMap<>();
/** * Creates a new empty {@link FrequencyDistribution}. */ public FrequencyDistribution() { freqDist = new Object2LongOpenHashMap<T>(); n = 0; }
public CoordinatorStats() { perTierStats = Maps.newHashMap(); globalStats = new Object2LongOpenHashMap<>(); }
public CoordinatorStats() { perTierStats = new HashMap<>(); perDataSourceStats = new HashMap<>(); globalStats = new Object2LongOpenHashMap<>(); }
public void addToTieredStat(final String statName, final String tier, final long value) { perTierStats.computeIfAbsent(statName, ignored -> new Object2LongOpenHashMap<>()) .addTo(tier, value); }
public void addToTieredStat(final String statName, final String tier, final long value) { perTierStats.computeIfAbsent(statName, ignored -> new Object2LongOpenHashMap<>()) .addTo(tier, value); }
public void addToDataSourceStat(String statName, String dataSource, long value) { perDataSourceStats.computeIfAbsent(statName, k -> new Object2LongOpenHashMap<>()) .addTo(dataSource, value); }
@Override public Object2LongOpenHashMap<String> remainingSegmentSizeBytes() { final Object2LongOpenHashMap<String> resultMap = new Object2LongOpenHashMap<>(); resultMap.defaultReturnValue(UNKNOWN_REMAINING_SEGMENT_SIZE); for (QueueEntry entry : queue) { final VersionedIntervalTimeline<String, DataSegment> timeline = dataSources.get(entry.getDataSource()); final Interval interval = new Interval(timeline.first().getInterval().getStart(), entry.interval.getEnd()); final List<TimelineObjectHolder<String, DataSegment>> holders = timeline.lookup(interval); resultMap.put( entry.getDataSource(), holders.stream() .flatMap(holder -> StreamSupport.stream(holder.getObject().spliterator(), false)) .mapToLong(chunk -> chunk.getObject().getSize()) .sum() ); } return resultMap; }
public CoordinatorStats accumulate(final CoordinatorStats stats) { stats.perTierStats.forEach( (final String statName, final Object2LongOpenHashMap<String> urStat) -> { final Object2LongOpenHashMap<String> myStat = perTierStats.computeIfAbsent( statName, ignored -> new Object2LongOpenHashMap<>() ); for (final Object2LongMap.Entry<String> entry : urStat.object2LongEntrySet()) { myStat.addTo(entry.getKey(), entry.getLongValue()); } } ); for (final Object2LongMap.Entry<String> entry : stats.globalStats.object2LongEntrySet()) { globalStats.addTo(entry.getKey(), entry.getLongValue()); } return this; } }
public Map<String, ? extends Object2LongMap<String>> getReplicationStatus() { final Map<String, Object2LongOpenHashMap<String>> retVal = Maps.newHashMap(); if (segmentReplicantLookup == null) { return retVal; } final DateTime now = DateTimes.nowUtc(); for (final DataSegment segment : getAvailableDataSegments()) { final List<Rule> rules = metadataRuleManager.getRulesWithDefault(segment.getDataSource()); for (final Rule rule : rules) { if (!(rule instanceof LoadRule && rule.appliesTo(segment, now))) { continue; } ((LoadRule) rule) .getTieredReplicants() .forEach((final String tier, final Integer ruleReplicants) -> { int currentReplicants = segmentReplicantLookup.getLoadedReplicants(segment.getIdentifier(), tier); retVal .computeIfAbsent(tier, ignored -> new Object2LongOpenHashMap<>()) .addTo(segment.getDataSource(), Math.max(ruleReplicants - currentReplicants, 0)); }); break; // only the first matching rule applies } } return retVal; }
public Object2LongMap<String> getSegmentAvailability() { final Object2LongOpenHashMap<String> retVal = new Object2LongOpenHashMap<>(); if (segmentReplicantLookup == null) { return retVal; } for (DataSegment segment : getAvailableDataSegments()) { if (segmentReplicantLookup.getLoadedReplicants(segment.getIdentifier()) == 0) { retVal.addTo(segment.getDataSource(), 1); } else { retVal.addTo(segment.getDataSource(), 0); } } return retVal; }
public Object2LongMap<String> getSegmentAvailability() { final Object2LongOpenHashMap<String> retVal = new Object2LongOpenHashMap<>(); if (segmentReplicantLookup == null) { return retVal; } for (DataSegment segment : getAvailableDataSegments()) { if (segmentReplicantLookup.getLoadedReplicants(segment.getIdentifier()) == 0) { retVal.addTo(segment.getDataSource(), 1); } else { retVal.addTo(segment.getDataSource(), 0); } } return retVal; }