Use IndexWriter.getFlushingBytes() rather than tracking it ourselves#33582
Merged
romseygeek merged 3 commits intoelastic:masterfrom Sep 11, 2018
romseygeek:iw-flushing-bytes
Merged
Use IndexWriter.getFlushingBytes() rather than tracking it ourselves#33582romseygeek merged 3 commits intoelastic:masterfrom romseygeek:iw-flushing-bytes
romseygeek merged 3 commits intoelastic:masterfrom
romseygeek:iw-flushing-bytes
Conversation
Collaborator
|
Pinging @elastic/es-distributed |
Contributor
|
I think we need to keep the version map in the picture but it's straight forward I think: diff --git a/server/src/main/java/org/elasticsearch/index/engine/LiveVersionMap.java b/server/src/main/java/org/elasticsearch/index/engine/LiveVersionMap.java
index 18d3cedb37e..d1d96c76372 100644
--- a/server/src/main/java/org/elasticsearch/index/engine/LiveVersionMap.java
+++ b/server/src/main/java/org/elasticsearch/index/engine/LiveVersionMap.java
@@ -434,6 +434,12 @@ final class LiveVersionMap implements ReferenceManager.RefreshListener, Accounta
return maps.current.ramBytesUsed.get();
}
+ /**
+ * Returns how much RAM is currently being freed up by refreshing. This is {@link #ramBytesUsed} except does not include tombstones
+ * because they don't clear on refresh.
+ */
+ long getRefreshingBytes() { return maps.old.ramBytesUsed.get(); }
+
@Override
public Collection<Accountable> getChildResources() {
// TODO: useful to break down RAM usage here?
I also think the |
Contributor
Author
|
Maybe it should be called |
s1monw
approved these changes
Sep 11, 2018
Contributor
s1monw
left a comment
There was a problem hiding this comment.
Maybe it should be called LiveVersionMap#getFlushingBytes() as well, to keep in line with the IndexWriter method name?
I am ok either way
Contributor
Author
|
Thinking more about it, I'll keep the names as they are. The IndexWriter is flushing, but the LiveVersionMap is refreshing, and the total is what is being written. So it all makes sense :) |
jasontedor
added a commit
to jasontedor/elasticsearch
that referenced
this pull request
Sep 11, 2018
* master: Preserve cluster settings on full restart tests (elastic#33590) Use IndexWriter.getFlushingBytes() rather than tracking it ourselves (elastic#33582) Fix upgrading of list settings (elastic#33589) Add read-only Engine (elastic#33563) HLRC: Add ML get categories API (elastic#33465) SQL: Adds MONTHNAME, DAYNAME and QUARTER functions (elastic#33411) Add predicate_token_filter (elastic#33431) Fix Replace function. Adds more tests to all string functions. (elastic#33478) [ML] Rename input_fields to column_names in file structure (elastic#33568)
jasontedor
added a commit
to martijnvg/elasticsearch
that referenced
this pull request
Sep 11, 2018
* master: (91 commits) Preserve cluster settings on full restart tests (elastic#33590) Use IndexWriter.getFlushingBytes() rather than tracking it ourselves (elastic#33582) Fix upgrading of list settings (elastic#33589) Add read-only Engine (elastic#33563) HLRC: Add ML get categories API (elastic#33465) SQL: Adds MONTHNAME, DAYNAME and QUARTER functions (elastic#33411) Add predicate_token_filter (elastic#33431) Fix Replace function. Adds more tests to all string functions. (elastic#33478) [ML] Rename input_fields to column_names in file structure (elastic#33568) Add full cluster restart base class (elastic#33577) Validate list values for settings (elastic#33503) Copy and validatie soft-deletes setting on resize (elastic#33517) Test: Fix package name SQL: Fix result column names for arithmetic functions (elastic#33500) Upgrade to latest Lucene snapshot (elastic#33505) Enable not wiping cluster settings after REST test (elastic#33575) MINOR: Remove Dead Code in SearchScript (elastic#33569) [Test] Remove duplicate method in TestShardRouting (elastic#32815) mute test on windows Update beats template to include apm-server metrics (elastic#33286) ...
romseygeek
added a commit
that referenced
this pull request
Sep 11, 2018
…33582) Currently we keep track of how many bytes are currently being written to disk in an AtomicLong within InternalEngine, updating it on refresh. The IndexWriter has its own accounting for this, and exposes it via a getFlushingBytes method in the latest lucene 8 snapshot. This commit removes the InternalEngine tracking in favour of just using the IndexWriter method.
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.
Currently we keep track of how many bytes are currently being written to disk
in an AtomicLong within
InternalEngine, updating it on refresh. The IndexWriterhas its own accounting for this, and exposes it via a
getFlushingBytesmethodin the latest lucene 8 snapshot. This commit removes the InternalEngine tracking
in favour of just using the IndexWriter method.