Преглед на файлове

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 години
родител
ревизия
fed3580644
променени са 1 файла, в които са добавени 2 реда и са изтрити 2 реда
  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;
 
     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);
     }
 
     /**