New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Improve IndexingMemoryController a bit #13548
Improve IndexingMemoryController a bit #13548
Conversation
- promptly push indexing buffer changes to IndexWriter, instead of waiting for next refresh/flush - don't wait for merges to finish before dropping a shards's indexing buffer to 512 KB - fix NPE if indices.memory.index_buffer_size is in node's settings with a bytes (not %) unit - add some more logger.debug
* This setting is <b>not</b> realtime updateable. | ||
* Index setting to control the initial index buffer size. NOTE: this setting is somewhat | ||
* useless, since IndexingMemoryController will take over quickly and partition the | ||
* indices.memory.index_buffer_size for this node across all shards. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
do we want to remove it for 2.0 then?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
do we want to remove it for 2.0 then?
+1, but I'll open a separate issue.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
+1, but I'll open a separate issue.
I opened #13563 for this.
Thx mike. Left comments/questions here and there. |
…uffer size in node settings on node init took
Thanks @bleskes, I folded in the feedback! |
|
||
this.interval = this.settings.getAsTime(SHARD_INACTIVE_INTERVAL_TIME_SETTING, TimeValue.timeValueSeconds(30)); | ||
|
||
logger.debug("using indexing buffer size [{}], with {} [{}], {} [{}], {} [{}], {} [{}]", |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
++
LGTM. Thx @mikemccand |
Improve IndexingMemoryController a bit: - promptly push indexing buffer changes to IndexWriter, instead of waiting for next refresh/flush - don't wait for merges to finish before dropping a shards's indexing buffer to 512 KB once it's inactive - fix NPE if indices.memory.index_buffer_size is in node's settings with a bytes (not %) unit - add some more logger.debug
Improve IndexingMemoryController a bit: - promptly push indexing buffer changes to IndexWriter, instead of waiting for next refresh/flush - don't wait for merges to finish before dropping a shards's indexing buffer to 512 KB once it's inactive - fix NPE if indices.memory.index_buffer_size is in node's settings with a bytes (not %) unit - add some more logger.debug
Improve IndexingMemoryController a bit: - promptly push indexing buffer changes to IndexWriter, instead of waiting for next refresh/flush - don't wait for merges to finish before dropping a shards's indexing buffer to 512 KB once it's inactive - fix NPE if indices.memory.index_buffer_size is in node's settings with a bytes (not %) unit - add some more logger.debug
I started by trying to explain the test failure in #13487, but failed so far, but then in the process found some other things to fix:
IndexingMemoryController
sets indexing buffer sizes for each shard, but then doesn't always push those changes down toIndexWriter
indices.memory.index_buffer_size
in the node settings to a bytes (not %) value, you'll hit NPE on starting up the nodeI think we should separately fix these (this PR) ... but I'll keep trying to explain the original test failure.
I did add some more
logger.debug
so maybe next failure reveals something.