`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.
This commit is contained in:
parent
5485efa2af
commit
2326a3dccb
|
@ -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);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
Loading…
Reference in New Issue