mirror of
https://github.com/elastic/elasticsearch.git
synced 2025-06-28 17:34:17 -04:00
Provide document size reporter with MapperService (#109794)
Instead of indexMode a mapper service is necessary to reliably determine if an index is a timeseries datastream
This commit is contained in:
parent
a3f4d51f7c
commit
b80b739993
12 changed files with 45 additions and 20 deletions
5
docs/changelog/109794.yaml
Normal file
5
docs/changelog/109794.yaml
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
pr: 109794
|
||||||
|
summary: Provide document size reporter with `MapperService`
|
||||||
|
area: Infra/Metrics
|
||||||
|
type: bug
|
||||||
|
issues: []
|
|
@ -12,7 +12,7 @@ import org.elasticsearch.action.index.IndexRequest;
|
||||||
import org.elasticsearch.action.ingest.PutPipelineRequest;
|
import org.elasticsearch.action.ingest.PutPipelineRequest;
|
||||||
import org.elasticsearch.common.bytes.BytesArray;
|
import org.elasticsearch.common.bytes.BytesArray;
|
||||||
import org.elasticsearch.common.bytes.BytesReference;
|
import org.elasticsearch.common.bytes.BytesReference;
|
||||||
import org.elasticsearch.index.IndexMode;
|
import org.elasticsearch.index.mapper.MapperService;
|
||||||
import org.elasticsearch.ingest.common.IngestCommonPlugin;
|
import org.elasticsearch.ingest.common.IngestCommonPlugin;
|
||||||
import org.elasticsearch.plugins.IngestPlugin;
|
import org.elasticsearch.plugins.IngestPlugin;
|
||||||
import org.elasticsearch.plugins.Plugin;
|
import org.elasticsearch.plugins.Plugin;
|
||||||
|
@ -102,7 +102,7 @@ public class DocumentSizeObserverWithPipelinesIT extends ESIntegTestCase {
|
||||||
@Override
|
@Override
|
||||||
public DocumentSizeReporter newDocumentSizeReporter(
|
public DocumentSizeReporter newDocumentSizeReporter(
|
||||||
String indexName,
|
String indexName,
|
||||||
IndexMode indexMode,
|
MapperService mapperService,
|
||||||
DocumentSizeAccumulator documentSizeAccumulator
|
DocumentSizeAccumulator documentSizeAccumulator
|
||||||
) {
|
) {
|
||||||
return DocumentSizeReporter.EMPTY_INSTANCE;
|
return DocumentSizeReporter.EMPTY_INSTANCE;
|
||||||
|
|
|
@ -81,7 +81,8 @@ public class IndexingMemoryControllerIT extends ESSingleNodeTestCase {
|
||||||
config.getLeafSorter(),
|
config.getLeafSorter(),
|
||||||
config.getRelativeTimeInNanosSupplier(),
|
config.getRelativeTimeInNanosSupplier(),
|
||||||
config.getIndexCommitListener(),
|
config.getIndexCommitListener(),
|
||||||
config.isPromotableToPrimary()
|
config.isPromotableToPrimary(),
|
||||||
|
config.getMapperService()
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -9,10 +9,10 @@
|
||||||
package org.elasticsearch.plugins.internal;
|
package org.elasticsearch.plugins.internal;
|
||||||
|
|
||||||
import org.elasticsearch.action.index.IndexRequest;
|
import org.elasticsearch.action.index.IndexRequest;
|
||||||
import org.elasticsearch.index.IndexMode;
|
|
||||||
import org.elasticsearch.index.IndexSettings;
|
import org.elasticsearch.index.IndexSettings;
|
||||||
import org.elasticsearch.index.engine.EngineFactory;
|
import org.elasticsearch.index.engine.EngineFactory;
|
||||||
import org.elasticsearch.index.engine.InternalEngine;
|
import org.elasticsearch.index.engine.InternalEngine;
|
||||||
|
import org.elasticsearch.index.mapper.MapperService;
|
||||||
import org.elasticsearch.index.mapper.ParsedDocument;
|
import org.elasticsearch.index.mapper.ParsedDocument;
|
||||||
import org.elasticsearch.plugins.EnginePlugin;
|
import org.elasticsearch.plugins.EnginePlugin;
|
||||||
import org.elasticsearch.plugins.IngestPlugin;
|
import org.elasticsearch.plugins.IngestPlugin;
|
||||||
|
@ -104,7 +104,7 @@ public class DocumentSizeObserverIT extends ESIntegTestCase {
|
||||||
|
|
||||||
DocumentSizeReporter documentParsingReporter = documentParsingProvider.newDocumentSizeReporter(
|
DocumentSizeReporter documentParsingReporter = documentParsingProvider.newDocumentSizeReporter(
|
||||||
shardId.getIndexName(),
|
shardId.getIndexName(),
|
||||||
IndexMode.STANDARD,
|
config().getMapperService(),
|
||||||
DocumentSizeAccumulator.EMPTY_INSTANCE
|
DocumentSizeAccumulator.EMPTY_INSTANCE
|
||||||
);
|
);
|
||||||
documentParsingReporter.onIndexingCompleted(index.parsedDoc());
|
documentParsingReporter.onIndexingCompleted(index.parsedDoc());
|
||||||
|
@ -136,7 +136,7 @@ public class DocumentSizeObserverIT extends ESIntegTestCase {
|
||||||
@Override
|
@Override
|
||||||
public DocumentSizeReporter newDocumentSizeReporter(
|
public DocumentSizeReporter newDocumentSizeReporter(
|
||||||
String indexName,
|
String indexName,
|
||||||
IndexMode indexMode,
|
MapperService mapperService,
|
||||||
DocumentSizeAccumulator documentSizeAccumulator
|
DocumentSizeAccumulator documentSizeAccumulator
|
||||||
) {
|
) {
|
||||||
return new TestDocumentSizeReporter(indexName);
|
return new TestDocumentSizeReporter(indexName);
|
||||||
|
|
|
@ -24,6 +24,7 @@ import org.elasticsearch.core.Nullable;
|
||||||
import org.elasticsearch.core.TimeValue;
|
import org.elasticsearch.core.TimeValue;
|
||||||
import org.elasticsearch.index.IndexSettings;
|
import org.elasticsearch.index.IndexSettings;
|
||||||
import org.elasticsearch.index.codec.CodecService;
|
import org.elasticsearch.index.codec.CodecService;
|
||||||
|
import org.elasticsearch.index.mapper.MapperService;
|
||||||
import org.elasticsearch.index.seqno.RetentionLeases;
|
import org.elasticsearch.index.seqno.RetentionLeases;
|
||||||
import org.elasticsearch.index.shard.ShardId;
|
import org.elasticsearch.index.shard.ShardId;
|
||||||
import org.elasticsearch.index.store.Store;
|
import org.elasticsearch.index.store.Store;
|
||||||
|
@ -51,6 +52,7 @@ public final class EngineConfig {
|
||||||
private volatile boolean enableGcDeletes = true;
|
private volatile boolean enableGcDeletes = true;
|
||||||
private final TimeValue flushMergesAfter;
|
private final TimeValue flushMergesAfter;
|
||||||
private final String codecName;
|
private final String codecName;
|
||||||
|
private final MapperService mapperService;
|
||||||
private final IndexStorePlugin.SnapshotCommitSupplier snapshotCommitSupplier;
|
private final IndexStorePlugin.SnapshotCommitSupplier snapshotCommitSupplier;
|
||||||
private final ThreadPool threadPool;
|
private final ThreadPool threadPool;
|
||||||
private final Engine.Warmer warmer;
|
private final Engine.Warmer warmer;
|
||||||
|
@ -163,7 +165,8 @@ public final class EngineConfig {
|
||||||
Comparator<LeafReader> leafSorter,
|
Comparator<LeafReader> leafSorter,
|
||||||
LongSupplier relativeTimeInNanosSupplier,
|
LongSupplier relativeTimeInNanosSupplier,
|
||||||
Engine.IndexCommitListener indexCommitListener,
|
Engine.IndexCommitListener indexCommitListener,
|
||||||
boolean promotableToPrimary
|
boolean promotableToPrimary,
|
||||||
|
MapperService mapperService
|
||||||
) {
|
) {
|
||||||
this.shardId = shardId;
|
this.shardId = shardId;
|
||||||
this.indexSettings = indexSettings;
|
this.indexSettings = indexSettings;
|
||||||
|
@ -176,6 +179,7 @@ public final class EngineConfig {
|
||||||
this.codecService = codecService;
|
this.codecService = codecService;
|
||||||
this.eventListener = eventListener;
|
this.eventListener = eventListener;
|
||||||
codecName = indexSettings.getValue(INDEX_CODEC_SETTING);
|
codecName = indexSettings.getValue(INDEX_CODEC_SETTING);
|
||||||
|
this.mapperService = mapperService;
|
||||||
// We need to make the indexing buffer for this shard at least as large
|
// We need to make the indexing buffer for this shard at least as large
|
||||||
// as the amount of memory that is available for all engines on the
|
// as the amount of memory that is available for all engines on the
|
||||||
// local node so that decisions to flush segments to disk are made by
|
// local node so that decisions to flush segments to disk are made by
|
||||||
|
@ -436,4 +440,8 @@ public final class EngineConfig {
|
||||||
public boolean getUseCompoundFile() {
|
public boolean getUseCompoundFile() {
|
||||||
return useCompoundFile;
|
return useCompoundFile;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public MapperService getMapperService() {
|
||||||
|
return mapperService;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -3491,7 +3491,8 @@ public class IndexShard extends AbstractIndexShardComponent implements IndicesCl
|
||||||
isTimeBasedIndex ? TIMESERIES_LEAF_READERS_SORTER : null,
|
isTimeBasedIndex ? TIMESERIES_LEAF_READERS_SORTER : null,
|
||||||
relativeTimeInNanosSupplier,
|
relativeTimeInNanosSupplier,
|
||||||
indexCommitListener,
|
indexCommitListener,
|
||||||
routingEntry().isPromotableToPrimary()
|
routingEntry().isPromotableToPrimary(),
|
||||||
|
mapperService()
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -8,7 +8,7 @@
|
||||||
|
|
||||||
package org.elasticsearch.plugins.internal;
|
package org.elasticsearch.plugins.internal;
|
||||||
|
|
||||||
import org.elasticsearch.index.IndexMode;
|
import org.elasticsearch.index.mapper.MapperService;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* An interface to provide instances of document parsing observer and reporter
|
* An interface to provide instances of document parsing observer and reporter
|
||||||
|
@ -36,7 +36,7 @@ public interface DocumentParsingProvider {
|
||||||
*/
|
*/
|
||||||
default DocumentSizeReporter newDocumentSizeReporter(
|
default DocumentSizeReporter newDocumentSizeReporter(
|
||||||
String indexName,
|
String indexName,
|
||||||
IndexMode indexMode,
|
MapperService mapperService,
|
||||||
DocumentSizeAccumulator documentSizeAccumulator
|
DocumentSizeAccumulator documentSizeAccumulator
|
||||||
) {
|
) {
|
||||||
return DocumentSizeReporter.EMPTY_INSTANCE;
|
return DocumentSizeReporter.EMPTY_INSTANCE;
|
||||||
|
|
|
@ -3639,7 +3639,8 @@ public class InternalEngineTests extends EngineTestCase {
|
||||||
null,
|
null,
|
||||||
config.getRelativeTimeInNanosSupplier(),
|
config.getRelativeTimeInNanosSupplier(),
|
||||||
null,
|
null,
|
||||||
true
|
true,
|
||||||
|
config.getMapperService()
|
||||||
);
|
);
|
||||||
expectThrows(EngineCreationFailureException.class, () -> new InternalEngine(brokenConfig));
|
expectThrows(EngineCreationFailureException.class, () -> new InternalEngine(brokenConfig));
|
||||||
|
|
||||||
|
@ -7320,7 +7321,8 @@ public class InternalEngineTests extends EngineTestCase {
|
||||||
config.getLeafSorter(),
|
config.getLeafSorter(),
|
||||||
config.getRelativeTimeInNanosSupplier(),
|
config.getRelativeTimeInNanosSupplier(),
|
||||||
config.getIndexCommitListener(),
|
config.getIndexCommitListener(),
|
||||||
config.isPromotableToPrimary()
|
config.isPromotableToPrimary(),
|
||||||
|
config.getMapperService()
|
||||||
);
|
);
|
||||||
try (InternalEngine engine = createEngine(configWithWarmer)) {
|
try (InternalEngine engine = createEngine(configWithWarmer)) {
|
||||||
assertThat(warmedUpReaders, empty());
|
assertThat(warmedUpReaders, empty());
|
||||||
|
|
|
@ -4820,7 +4820,8 @@ public class IndexShardTests extends IndexShardTestCase {
|
||||||
config.getLeafSorter(),
|
config.getLeafSorter(),
|
||||||
config.getRelativeTimeInNanosSupplier(),
|
config.getRelativeTimeInNanosSupplier(),
|
||||||
config.getIndexCommitListener(),
|
config.getIndexCommitListener(),
|
||||||
config.isPromotableToPrimary()
|
config.isPromotableToPrimary(),
|
||||||
|
config.getMapperService()
|
||||||
);
|
);
|
||||||
return new InternalEngine(configWithWarmer);
|
return new InternalEngine(configWithWarmer);
|
||||||
});
|
});
|
||||||
|
|
|
@ -156,7 +156,8 @@ public class RefreshListenersTests extends ESTestCase {
|
||||||
null,
|
null,
|
||||||
System::nanoTime,
|
System::nanoTime,
|
||||||
null,
|
null,
|
||||||
true
|
true,
|
||||||
|
null
|
||||||
);
|
);
|
||||||
engine = new InternalEngine(config);
|
engine = new InternalEngine(config);
|
||||||
EngineTestCase.recoverFromTranslog(engine, (e, s) -> 0, Long.MAX_VALUE);
|
EngineTestCase.recoverFromTranslog(engine, (e, s) -> 0, Long.MAX_VALUE);
|
||||||
|
|
|
@ -268,7 +268,8 @@ public abstract class EngineTestCase extends ESTestCase {
|
||||||
config.getLeafSorter(),
|
config.getLeafSorter(),
|
||||||
config.getRelativeTimeInNanosSupplier(),
|
config.getRelativeTimeInNanosSupplier(),
|
||||||
config.getIndexCommitListener(),
|
config.getIndexCommitListener(),
|
||||||
config.isPromotableToPrimary()
|
config.isPromotableToPrimary(),
|
||||||
|
config.getMapperService()
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -299,7 +300,8 @@ public abstract class EngineTestCase extends ESTestCase {
|
||||||
config.getLeafSorter(),
|
config.getLeafSorter(),
|
||||||
config.getRelativeTimeInNanosSupplier(),
|
config.getRelativeTimeInNanosSupplier(),
|
||||||
config.getIndexCommitListener(),
|
config.getIndexCommitListener(),
|
||||||
config.isPromotableToPrimary()
|
config.isPromotableToPrimary(),
|
||||||
|
config.getMapperService()
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -330,7 +332,8 @@ public abstract class EngineTestCase extends ESTestCase {
|
||||||
config.getLeafSorter(),
|
config.getLeafSorter(),
|
||||||
config.getRelativeTimeInNanosSupplier(),
|
config.getRelativeTimeInNanosSupplier(),
|
||||||
config.getIndexCommitListener(),
|
config.getIndexCommitListener(),
|
||||||
config.isPromotableToPrimary()
|
config.isPromotableToPrimary(),
|
||||||
|
config.getMapperService()
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -854,7 +857,8 @@ public abstract class EngineTestCase extends ESTestCase {
|
||||||
null,
|
null,
|
||||||
this::relativeTimeInNanos,
|
this::relativeTimeInNanos,
|
||||||
indexCommitListener,
|
indexCommitListener,
|
||||||
true
|
true,
|
||||||
|
null
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -893,7 +897,8 @@ public abstract class EngineTestCase extends ESTestCase {
|
||||||
config.getLeafSorter(),
|
config.getLeafSorter(),
|
||||||
config.getRelativeTimeInNanosSupplier(),
|
config.getRelativeTimeInNanosSupplier(),
|
||||||
config.getIndexCommitListener(),
|
config.getIndexCommitListener(),
|
||||||
config.isPromotableToPrimary()
|
config.isPromotableToPrimary(),
|
||||||
|
config.getMapperService()
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -252,7 +252,8 @@ public class FollowingEngineTests extends ESTestCase {
|
||||||
null,
|
null,
|
||||||
System::nanoTime,
|
System::nanoTime,
|
||||||
null,
|
null,
|
||||||
true
|
true,
|
||||||
|
null
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue