Skip to content

Commit a6cde48

Browse files
committed
Experiment with using tsdb doc values codec for _seq_no.
Running metricsgenreceiver without this change: ``` "_seq_no": { "total": "369.9mb", "total_in_bytes": 387962443, "inverted_index": { "total": "0b", "total_in_bytes": 0 }, "stored_fields": "0b", "stored_fields_in_bytes": 0, "doc_values": "369.9mb", "doc_values_in_bytes": 387962443, "points": "0b", "points_in_bytes": 0, "norms": "0b", "norms_in_bytes": 0, "term_vectors": "0b", "term_vectors_in_bytes": 0, "knn_vectors": "0b", "knn_vectors_in_bytes": 0 } ``` and running metricsgenreceiver with this change: ``` "_seq_no": { "total": "212.3mb", "total_in_bytes": 222616293, "inverted_index": { "total": "0b", "total_in_bytes": 0 }, "stored_fields": "0b", "stored_fields_in_bytes": 0, "doc_values": "212.3mb", "doc_values_in_bytes": 222616293, "points": "0b", "points_in_bytes": 0, "norms": "0b", "norms_in_bytes": 0, "term_vectors": "0b", "term_vectors_in_bytes": 0, "knn_vectors": "0b", "knn_vectors_in_bytes": 0 } ``` metricsgenreceiver config: ``` receivers: metricsgen: start_now_minus: 72h interval: 5s interval_jitter_std_dev: 1ms real_time: false exit_after_end: true seed: 123 scenarios: - path: builtin/hostmetrics scale: 100 ```
1 parent 8672dba commit a6cde48

File tree

1 file changed

+6
-1
lines changed

1 file changed

+6
-1
lines changed

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

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
import org.elasticsearch.index.mapper.IdFieldMapper;
2626
import org.elasticsearch.index.mapper.Mapper;
2727
import org.elasticsearch.index.mapper.MapperService;
28+
import org.elasticsearch.index.mapper.SeqNoFieldMapper;
2829
import org.elasticsearch.index.mapper.vectors.DenseVectorFieldMapper;
2930

3031
/**
@@ -122,9 +123,13 @@ boolean useTSDBDocValuesFormat(final String field) {
122123
}
123124

124125
private boolean excludeFields(String fieldName) {
126+
// TODO: should we just allow all fields to use tsdb doc values codec?
125127
// Avoid using tsdb codec for fields like _seq_no, _primary_term.
126128
// But _tsid and _ts_routing_hash should always use the tsdb codec.
127-
return fieldName.startsWith("_") && fieldName.equals("_tsid") == false && fieldName.equals("_ts_routing_hash") == false;
129+
return fieldName.startsWith("_")
130+
&& fieldName.equals("_tsid") == false
131+
&& fieldName.equals("_ts_routing_hash") == false
132+
&& fieldName.equals(SeqNoFieldMapper.NAME) == false;
128133
}
129134

130135
private boolean isTimeSeriesModeIndex() {

0 commit comments

Comments
 (0)