Skip to content

Commit feab7d0

Browse files
dnhatnmartijnvg
authored andcommitted
1 parent 499bef6 commit feab7d0

File tree

2 files changed

+10
-1
lines changed

2 files changed

+10
-1
lines changed

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

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,7 @@
2727
import org.elasticsearch.index.mapper.Mapper;
2828
import org.elasticsearch.index.mapper.MapperService;
2929
import org.elasticsearch.index.mapper.SeqNoFieldMapper;
30+
import org.elasticsearch.index.mapper.SourceFieldMapper;
3031
import org.elasticsearch.index.mapper.TimeSeriesIdFieldMapper;
3132
import org.elasticsearch.index.mapper.TimeSeriesRoutingHashFieldMapper;
3233
import org.elasticsearch.index.mapper.vectors.DenseVectorFieldMapper;
@@ -48,12 +49,17 @@ public class PerFieldFormatSupplier {
4849
// TODO: should we just allow all fields to use tsdb doc values codec?
4950
// Avoid using tsdb codec for fields like _seq_no, _primary_term.
5051
// But _tsid and _ts_routing_hash should always use the tsdb codec.
51-
Set<String> includeMetaField = new HashSet<>(3);
52+
Set<String> includeMetaField = new HashSet<>(5);
5253
includeMetaField.add(TimeSeriesIdFieldMapper.NAME);
5354
includeMetaField.add(TimeSeriesRoutingHashFieldMapper.NAME);
5455
if (SEQNO_FIELD_USE_TSDB_DOC_VALUES_FORMAT.isEnabled()) {
5556
includeMetaField.add(SeqNoFieldMapper.NAME);
5657
}
58+
59+
// Values of these doc_values fields can be filtered out in RecoverySourcePruneMergePolicy,
60+
// which leads to inconsistencies between merge stats and actual values.
61+
includeMetaField.add(SourceFieldMapper.RECOVERY_SOURCE_NAME);
62+
includeMetaField.add(SourceFieldMapper.RECOVERY_SOURCE_SIZE_NAME);
5763
INCLUDE_META_FIELDS = Collections.unmodifiableSet(includeMetaField);
5864
}
5965

server/src/test/java/org/elasticsearch/index/codec/PerFieldMapperCodecTests.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
import org.elasticsearch.index.codec.postings.ES812PostingsFormat;
2323
import org.elasticsearch.index.mapper.MapperService;
2424
import org.elasticsearch.index.mapper.SeqNoFieldMapper;
25+
import org.elasticsearch.index.mapper.SourceFieldMapper;
2526
import org.elasticsearch.index.mapper.TimeSeriesIdFieldMapper;
2627
import org.elasticsearch.index.mapper.TimeSeriesRoutingHashFieldMapper;
2728
import org.elasticsearch.test.ESTestCase;
@@ -208,6 +209,8 @@ public void testMetaFields() throws IOException {
208209
PerFieldFormatSupplier perFieldMapperCodec = createFormatSupplier(true, IndexMode.LOGSDB, MAPPING_3);
209210
assertThat((perFieldMapperCodec.useTSDBDocValuesFormat(TimeSeriesIdFieldMapper.NAME)), is(true));
210211
assertThat((perFieldMapperCodec.useTSDBDocValuesFormat(TimeSeriesRoutingHashFieldMapper.NAME)), is(true));
212+
assertThat((perFieldMapperCodec.useTSDBDocValuesFormat(SourceFieldMapper.RECOVERY_SOURCE_NAME)), is(true));
213+
assertThat((perFieldMapperCodec.useTSDBDocValuesFormat(SourceFieldMapper.RECOVERY_SOURCE_SIZE_NAME)), is(true));
211214
}
212215

213216
public void testSeqnoField() throws IOException {

0 commit comments

Comments
 (0)