Switch XContentBuilder from BytesStreamOutput to ByteArrayOutputStream#28945
Merged
dakrone merged 1 commit intoelastic:masterfrom Mar 8, 2018
Merged
Switch XContentBuilder from BytesStreamOutput to ByteArrayOutputStream#28945dakrone merged 1 commit intoelastic:masterfrom
dakrone merged 1 commit intoelastic:masterfrom
Conversation
This switches the underlying byte output representation used by default in `XContentBuilder` from `BytesStreamOutput` to a `ByteArrayOutputStream` (an `OutputStream` can still be specified manually) This is groundwork to allow us to decouple `XContent*` from the rest of the ES core code so that it may be factored into a separate jar. Since `BytesStreamOutput` was not using the recycling instance of `BigArrays`, this should not affect the circuit breaking capabilities elsewhere in the system. Relates to elastic#28504
Member
Author
|
/cc @elastic/es-core-infra |
nik9000
approved these changes
Mar 8, 2018
Member
nik9000
left a comment
There was a problem hiding this comment.
Makes sense to me. It is certainly worth looking at the benchmarks after this. I expect if we lose performance we can switch the hot parts to the ctor which takes an OutputStream and project BytesStreamOutput
| if (bos instanceof ByteArrayOutputStream) { | ||
| return new BytesArray(((ByteArrayOutputStream) bos).toByteArray()); | ||
| } else { | ||
| return ((BytesStream) bos).bytes(); |
Member
There was a problem hiding this comment.
A problem for another PR, I assume.
dakrone
added a commit
that referenced
this pull request
Mar 8, 2018
#28945) This switches the underlying byte output representation used by default in `XContentBuilder` from `BytesStreamOutput` to a `ByteArrayOutputStream` (an `OutputStream` can still be specified manually) This is groundwork to allow us to decouple `XContent*` from the rest of the ES core code so that it may be factored into a separate jar. Since `BytesStreamOutput` was not using the recycling instance of `BigArrays`, this should not affect the circuit breaking capabilities elsewhere in the system. Relates to #28504
sebasjm
pushed a commit
to sebasjm/elasticsearch
that referenced
this pull request
Mar 10, 2018
elastic#28945) This switches the underlying byte output representation used by default in `XContentBuilder` from `BytesStreamOutput` to a `ByteArrayOutputStream` (an `OutputStream` can still be specified manually) This is groundwork to allow us to decouple `XContent*` from the rest of the ES core code so that it may be factored into a separate jar. Since `BytesStreamOutput` was not using the recycling instance of `BigArrays`, this should not affect the circuit breaking capabilities elsewhere in the system. Relates to elastic#28504
jasontedor
added a commit
to jasontedor/elasticsearch
that referenced
this pull request
Mar 12, 2018
* master: (28 commits) Maybe die before failing engine (elastic#28973) Remove special handling for _all in nodes info Remove Booleans use from XContent and ToXContent (elastic#28768) Update Gradle Testing Docs (elastic#28970) Make primary-replica resync failures less lenient (elastic#28534) Remove temporary file 10_basic.yml~ Use different pipeline id in test. (pipelines do not get removed between tests extending from ESIntegTestCase) Use fixture to test the repository-gcs plugin (elastic#28788) Use String.join() to describe a list of tasks (elastic#28941) Fixed incorrect test try-catch statement Plugins: Consolidate plugin and module loading code (elastic#28815) percolator: Take `matchAllDocs` and `verified` of the sub result into account when analyzing a function_score query. Build: Remove rest tests on archive distribution projects (elastic#28952) Remove FastStringReader in favor of vanilla StringReader (elastic#28944) Remove FastCharArrayReader and FastCharArrayWriter (elastic#28951) Continue registering pipelines after one pipeline parse failure. (elastic#28752) Build: Fix ability to ignore when no tests are run (elastic#28930) [rest-api-spec] update doc link for /_rank_eval Switch XContentBuilder from BytesStreamOutput to ByteArrayOutputStream (elastic#28945) Factor UnknownNamedObjectException into its own class (elastic#28931) ...
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This switches the underlying byte output representation used by default in
XContentBuilderfromBytesStreamOutputto aByteArrayOutputStream(anOutputStreamcan still be specified manually)This is groundwork to allow us to decouple
XContent*from the rest of the EScore code so that it may be factored into a separate jar.
Since
BytesStreamOutputwas not using the recycling instance ofBigArrays,this should not affect the circuit breaking capabilities elsewhere in the
system.
Relates to #28504