Skip to content

Commit f846275

Browse files
Remove track_postings_in_memory_bytes feature flag (#133583)
Follow-up to #129969 to remove the feature flag.
1 parent b3a06fb commit f846275

File tree

4 files changed

+11
-9
lines changed

4 files changed

+11
-9
lines changed

server/src/main/java/org/elasticsearch/index/codec/TrackingPostingsInMemoryBytesCodec.java

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@
2424
import org.apache.lucene.index.TermsEnum;
2525
import org.apache.lucene.internal.hppc.IntHashSet;
2626
import org.apache.lucene.util.BytesRef;
27-
import org.elasticsearch.common.util.FeatureFlag;
2827

2928
import java.io.IOException;
3029
import java.util.function.IntConsumer;
@@ -34,8 +33,6 @@
3433
* {@link org.apache.lucene.codecs.lucene90.blocktree.FieldReader} keeps an in-memory reference to the min and max term.
3534
*/
3635
public class TrackingPostingsInMemoryBytesCodec extends FilterCodec {
37-
public static final FeatureFlag TRACK_POSTINGS_IN_MEMORY_BYTES = new FeatureFlag("track_postings_in_memory_bytes");
38-
3936
public static final String IN_MEMORY_POSTINGS_BYTES_KEY = "es.postings.in_memory_bytes";
4037

4138
public TrackingPostingsInMemoryBytesCodec(Codec delegate) {

server/src/main/java/org/elasticsearch/index/engine/Engine.java

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -44,6 +44,7 @@
4444
import org.elasticsearch.action.support.PlainActionFuture;
4545
import org.elasticsearch.action.support.SubscribableListener;
4646
import org.elasticsearch.action.support.UnsafePlainActionFuture;
47+
import org.elasticsearch.cluster.node.DiscoveryNode;
4748
import org.elasticsearch.cluster.service.ClusterApplierService;
4849
import org.elasticsearch.common.bytes.BytesReference;
4950
import org.elasticsearch.common.logging.Loggers;
@@ -161,6 +162,8 @@ public abstract class Engine implements Closeable {
161162
private final RefCounted ensureOpenRefs = AbstractRefCounted.of(() -> drainOnCloseListener.onResponse(null));
162163
private final Releasable releaseEnsureOpenRef = ensureOpenRefs::decRef; // reuse this to avoid allocation for each op
163164

165+
private final boolean isStateless;
166+
164167
/*
165168
* on {@code lastWriteNanos} we use System.nanoTime() to initialize this since:
166169
* - we use the value for figuring out if the shard / engine is active so if we startup and no write has happened yet we still
@@ -189,6 +192,8 @@ protected Engine(EngineConfig engineConfig) {
189192
this.pauseIndexingOnThrottle = IndexingMemoryController.PAUSE_INDEXING_ON_THROTTLE.get(
190193
engineConfig.getIndexSettings().getSettings()
191194
);
195+
196+
this.isStateless = DiscoveryNode.isStateless(engineConfig.getIndexSettings().getNodeSettings());
192197
}
193198

194199
/**
@@ -266,7 +271,7 @@ protected final DocsStats docsStats(IndexReader indexReader) {
266271
*/
267272
public ShardFieldStats shardFieldStats() {
268273
try (var searcher = acquireSearcher("shard_field_stats", Engine.SearcherScope.INTERNAL)) {
269-
return shardFieldStats(searcher.getLeafContexts());
274+
return shardFieldStats(searcher.getLeafContexts(), isStateless);
270275
}
271276
}
272277

@@ -279,7 +284,7 @@ public FieldInfos shardFieldInfos() {
279284
}
280285
}
281286

282-
protected static ShardFieldStats shardFieldStats(List<LeafReaderContext> leaves) {
287+
protected static ShardFieldStats shardFieldStats(List<LeafReaderContext> leaves, boolean isStateless) {
283288
int numSegments = 0;
284289
int totalFields = 0;
285290
long usages = 0;
@@ -296,7 +301,7 @@ protected static ShardFieldStats shardFieldStats(List<LeafReaderContext> leaves)
296301
} else {
297302
usages = -1;
298303
}
299-
boolean trackPostingsMemoryEnabled = TrackingPostingsInMemoryBytesCodec.TRACK_POSTINGS_IN_MEMORY_BYTES.isEnabled();
304+
boolean trackPostingsMemoryEnabled = isStateless;
300305
boolean trackLiveDocsMemoryEnabled = ShardFieldStats.TRACK_LIVE_DOCS_IN_MEMORY_BYTES.isEnabled();
301306
if (trackLiveDocsMemoryEnabled || trackPostingsMemoryEnabled) {
302307
SegmentReader segmentReader = Lucene.tryUnwrapSegmentReader(leaf.reader());

server/src/main/java/org/elasticsearch/index/engine/InternalEngine.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,7 @@
4646
import org.elasticsearch.action.support.PlainActionFuture;
4747
import org.elasticsearch.action.support.SubscribableListener;
4848
import org.elasticsearch.cluster.metadata.DataStream;
49+
import org.elasticsearch.cluster.node.DiscoveryNode;
4950
import org.elasticsearch.cluster.service.ClusterApplierService;
5051
import org.elasticsearch.common.ReferenceDocs;
5152
import org.elasticsearch.common.Strings;
@@ -2807,7 +2808,7 @@ private IndexWriterConfig getIndexWriterConfig() {
28072808
iwc.setRAMBufferSizeMB(engineConfig.getIndexingBufferSize().getMbFrac());
28082809

28092810
Codec codec = engineConfig.getCodec();
2810-
if (TrackingPostingsInMemoryBytesCodec.TRACK_POSTINGS_IN_MEMORY_BYTES.isEnabled()) {
2811+
if (DiscoveryNode.isStateless(engineConfig.getIndexSettings().getNodeSettings())) {
28112812
codec = new TrackingPostingsInMemoryBytesCodec(codec);
28122813
}
28132814
iwc.setCodec(codec);

server/src/test/java/org/elasticsearch/index/shard/IndexShardTests.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,6 @@
8080
import org.elasticsearch.index.IndexVersion;
8181
import org.elasticsearch.index.MergePolicyConfig;
8282
import org.elasticsearch.index.codec.CodecService;
83-
import org.elasticsearch.index.codec.TrackingPostingsInMemoryBytesCodec;
8483
import org.elasticsearch.index.engine.CommitStats;
8584
import org.elasticsearch.index.engine.DocIdSeqNoAndSource;
8685
import org.elasticsearch.index.engine.Engine;
@@ -1887,7 +1886,7 @@ public void testShardFieldStats() throws IOException {
18871886
assertThat(stats.fieldUsages(), equalTo(0L));
18881887
assertThat(stats.postingsInMemoryBytes(), equalTo(0L));
18891888

1890-
boolean postingsBytesTrackingEnabled = TrackingPostingsInMemoryBytesCodec.TRACK_POSTINGS_IN_MEMORY_BYTES.isEnabled();
1889+
boolean postingsBytesTrackingEnabled = DiscoveryNode.isStateless(shard.indexSettings().getNodeSettings());
18911890

18921891
// index some documents
18931892
int numDocs = between(2, 10);

0 commit comments

Comments
 (0)