@Override
public Histogram loadHistogram(String detailsId, Date from, Date to, String instance, String type, String lastGroupId){
List<GroupEntity> allGroups = findGroupsInRange(from, to, instance, type);
List<GroupEntity> tailGroups = tailAfter(allGroups, lastGroupId);
List<GroupEntity> groups = limitHistogramSize(tailGroups);
lastGroupId = (groups.size() == tailGroups.size()) ? null : groups.get(HISTOGRAM_PAGE-1).getId();
List<String> groupIds = extractGroupIds(groups);
List<StatEntity> stats = loadGroupStats(groupIds, detailsId, true);
Histogram result = createHistogram(groups, stats);
result.setId(detailsId);
result.setInfo(storageInfo(null));
result.setLastGroupId(lastGroupId);
result.setStartDate(allGroups.stream().map(GroupEntity::getStartDate).min(Date::compareTo).orElseGet(() -> new Date()));
result.setEndDate(allGroups.stream().map(GroupEntity::getEndDate).max(Date::compareTo).orElseGet(() -> new Date()));
return result;
}