Store ignored source in binary doc values#143784
Conversation
e9f7d99 to
e258a5d
Compare
|
Buildkite benchmark this with elastic-logs-streams |
|
Hmm, all the benchmarks match what we saw earlier, with the exception of dataset size. Somehow, for the contender we went up from ~63Gb -> 83Gb. |
|
Buildkite benchmark this with elastic-logs-streams |
f427cf0 to
7e956bb
Compare
server/src/main/java/org/elasticsearch/index/IndexVersions.java
Outdated
Show resolved
Hide resolved
I confirmed this in the latest benchmark run. |
f825723 to
ae29e1f
Compare
| @@ -0,0 +1,97 @@ | |||
| /* | |||
There was a problem hiding this comment.
I've extracted all ignored source formats into separate classes as IgnoredSourceFieldMapper was getting unwieldy and difficult to read.
d93260b to
a75fe13
Compare
|
Pinging @elastic/es-storage-engine (Team:StorageEngine) |
4f89d21 to
c452ee8
Compare
|
Buildkite benchmark this with elastic-logs-streams |
💚 Build Succeeded
This build ran two elastic-logs-streams benchmarks to evaluate performance impact of this PR. History
|
server/src/main/java/org/elasticsearch/index/IndexSettings.java
Outdated
Show resolved
Hide resolved
server/src/main/java/org/elasticsearch/index/mapper/CoalescedIgnoredSourceLeafLoader.java
Outdated
Show resolved
Hide resolved
server/src/main/java/org/elasticsearch/index/mapper/DocValuesIgnoredSourceLeafLoader.java
Outdated
Show resolved
Hide resolved
server/src/main/java/org/elasticsearch/index/mapper/IgnoredSourceFieldMapper.java
Outdated
Show resolved
Hide resolved
server/src/main/java/org/elasticsearch/index/mapper/LegacyIgnoredSourceLeafLoader.java
Outdated
Show resolved
Hide resolved
server/src/main/java/org/elasticsearch/search/fetch/StoredFieldsSpec.java
Show resolved
Hide resolved
server/src/main/java/org/elasticsearch/index/mapper/IgnoredSourceFieldMapper.java
Outdated
Show resolved
Hide resolved
3fd0177 to
5891623
Compare
# Conflicts: # server/src/main/java/org/elasticsearch/index/IndexVersions.java
…nary_block_size" This reverts commit c452ee8.
…re using binary doc values for ignored source
5891623 to
072bcf3
Compare
…into one function
63b942c to
b61ecd4
Compare
martijnvg
left a comment
There was a problem hiding this comment.
Left another question.
Also org.elasticsearch.index.mapper.BlockSourceReaderTests.testArray(...) needs to be updated with the fact that another ignore source format is being used now.
| // This path is filtered by the include/exclude rules | ||
| continue; | ||
| } | ||
| objectsWithIgnoredFields.computeIfAbsent(nameValue.getParentFieldName(), k -> new ArrayList<>()).add(nameValue); |
There was a problem hiding this comment.
Do we now sometimes need to use nameValue.name() instead of nameValue.getParentFieldName()? Given that the other loadSingleIgnoredField(...) no longer exist, which would do that. I assumed we would need to add a boolean parameter to this method in order to do this. But maybe it isn't needed?
There was a problem hiding this comment.
I decided not to add a boolean parameter as it felt like a hack to get loadIgnoredFields() to behave like loadSingleIgnoredField().
Instead, this is handled here. This is in the function that originally called loadSingleIgnoredField().
| ); | ||
|
|
||
| // index version alone is not enough, TSDB doc values setting must also be enabled. | ||
| assertNotEquals( |
There was a problem hiding this comment.
Maybe assert what format would be expected?
There was a problem hiding this comment.
if the format is changed in the future, that would mean we'd have a failing test that needs to be updated. Ultimately, we just want to know that DOC_VALUES_IGNORED_SOURCE is not used when the criteria for it is not met. Whats used in its place is not important in the context of these tests.
...c/main/java/org/elasticsearch/xpack/core/security/authz/accesscontrol/FieldSubsetReader.java
Outdated
Show resolved
Hide resolved
server/src/main/java/org/elasticsearch/index/mapper/IgnoredSourceFieldMapper.java
Show resolved
Hide resolved
server/src/main/java/org/elasticsearch/index/mapper/IgnoredSourceFieldMapper.java
Outdated
Show resolved
Hide resolved
… added javadocs, added feature flag
|
Since you're adding a feature flag, you'll probably also want to add the |
* Introduce a new ignored source format that uses binary doc values # Conflicts: # server/src/main/java/org/elasticsearch/index/IndexVersions.java * Force enable index.use_time_series_doc_values_format_large_binary_block_size * Revert "Force enable index.use_time_series_doc_values_format_large_binary_block_size" This reverts commit c452ee8. * Addressed feedback * Addressed feedback: check that TSDB doc values format is enabled before using binary doc values for ignored source * Addressed feedback: merge signle value loading and all value loading into one function * Fix test failure, make FilteredIgnoredSourceDocValues final static * Renamed LegacyIgnoredSourceEncoding to SingularIgnoredSourceEncoding, added javadocs, added feature flag --------- Co-authored-by: Martijn van Groningen <martijn.v.groningen@gmail.com>
No description provided.