diff --git a/CHANGELOG.md b/CHANGELOG.md index 1bdc331eb2..1a0919474e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,11 @@ and this project adheres to [Semantic Versioning](http://semver.org/). ## [Unreleased] +## [2.6.7] - 2018-05-15 + +### Fixed +- Improved performance of listing subscriptions with their status + ## [2.6.6] - 2018-05-08 ### Added diff --git a/src/main/java/org/zalando/nakadi/service/subscription/SubscriptionService.java b/src/main/java/org/zalando/nakadi/service/subscription/SubscriptionService.java index 440dc1d2ba..70abc66fd9 100644 --- a/src/main/java/org/zalando/nakadi/service/subscription/SubscriptionService.java +++ b/src/main/java/org/zalando/nakadi/service/subscription/SubscriptionService.java @@ -330,7 +330,14 @@ private SubscriptionEventTypeStats getEventTypeStats(final Optional subscriptionNode, final EventType eventType) { final List resultPartitions = new ArrayList<>(); - for (final String partition: getPartitionsList(eventType)) { + + final List partitionsList = subscriptionNode.map( + node -> node.getPartitions().stream() + .map(Partition::getPartition) + .collect(Collectors.toList())) + .orElseGet(() -> getPartitionsList(eventType)); + + for (final String partition : partitionsList) { resultPartitions.add(getPartitionStats(subscriptionNode, eventType.getName(), partition, null)); } resultPartitions.sort(Comparator.comparing(SubscriptionEventTypeStats.Partition::getPartition));