File tree Expand file tree Collapse file tree 2 files changed +18
-7
lines changed
server/src/main/java/org/elasticsearch/cluster/metadata
x-pack/plugin/core/src/main/java/org/elasticsearch/xpack/core/ilm Expand file tree Collapse file tree 2 files changed +18
-7
lines changed Original file line number Diff line number Diff line change 2828import org .elasticsearch .xcontent .XContentParser ;
2929
3030import java .io .IOException ;
31+ import java .util .ArrayList ;
32+ import java .util .Collections ;
3133import java .util .List ;
3234import java .util .Map ;
3335import java .util .Objects ;
@@ -189,9 +191,14 @@ public List<String> getRequiredComponentTemplates() {
189191 if (ignoreMissingComponentTemplates == null ) {
190192 return componentTemplates ;
191193 }
192- return componentTemplates .stream ()
193- .filter (componentTemplate -> ignoreMissingComponentTemplates .contains (componentTemplate ) == false )
194- .toList ();
194+ // note: this loop is unrolled rather than streaming-style because it's hot enough to show up in a flamegraph
195+ List <String > required = new ArrayList <>(componentTemplates .size ());
196+ for (String template : componentTemplates ) {
197+ if (ignoreMissingComponentTemplates .contains (template ) == false ) {
198+ required .add (template );
199+ }
200+ }
201+ return Collections .unmodifiableList (required );
195202 }
196203
197204 @ Nullable
Original file line number Diff line number Diff line change 2525import java .io .IOException ;
2626import java .util .Collections ;
2727import java .util .EnumSet ;
28+ import java .util .HashMap ;
2829import java .util .Iterator ;
2930import java .util .List ;
3031import java .util .Map ;
@@ -92,10 +93,13 @@ public OperationMode getOperationMode() {
9293 }
9394
9495 public Map <String , LifecyclePolicy > getPolicies () {
95- return policyMetadatas .values ()
96- .stream ()
97- .map (LifecyclePolicyMetadata ::getPolicy )
98- .collect (Collectors .toMap (LifecyclePolicy ::getName , Function .identity ()));
96+ // note: this loop is unrolled rather than streaming-style because it's hot enough to show up in a flamegraph
97+ Map <String , LifecyclePolicy > policies = new HashMap <>(policyMetadatas .size ());
98+ for (LifecyclePolicyMetadata policyMetadata : policyMetadatas .values ()) {
99+ LifecyclePolicy policy = policyMetadata .getPolicy ();
100+ policies .put (policy .getName (), policy );
101+ }
102+ return Collections .unmodifiableMap (policies );
99103 }
100104
101105 @ Override
You can’t perform that action at this time.
0 commit comments