Browse Source

Remove String interning from `o.e.index.Index`. (#40350)

`Index` interns its name and uuid. My guess is that the main goal is to avoid
having duplicate strings in the representation of the cluster state. However
I doubt it helps much given that we have many other objects in the cluster state
that we don't try to reuse, and interning has some cost. When looking into
 #40263 my profiler pointed to string interning because of the `Index` object
that is created in `QueryShardContext` as one of the bottlenecks of the
`can_match` phase.
Adrien Grand 6 years ago
parent
commit
fed3580644
1 changed files with 2 additions and 2 deletions
  1. 2 2
      server/src/main/java/org/elasticsearch/index/Index.java

+ 2 - 2
server/src/main/java/org/elasticsearch/index/Index.java

@@ -50,8 +50,8 @@ public class Index implements Writeable, ToXContentObject {
     private final String uuid;
     private final String uuid;
 
 
     public Index(String name, String uuid) {
     public Index(String name, String uuid) {
-        this.name = Objects.requireNonNull(name).intern();
-        this.uuid = Objects.requireNonNull(uuid).intern();
+        this.name = Objects.requireNonNull(name);
+        this.uuid = Objects.requireNonNull(uuid);
     }
     }
 
 
     /**
     /**