Skip to content
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

SHS-NG M4.7: Remove JobProgressListener. #13

Closed
wants to merge 1 commit into from
Closed

Conversation

vanzin
Copy link
Owner

@vanzin vanzin commented Apr 17, 2017

The only remaining use of this class was the SparkStatusTracker, which
was modified to use the new state store. The test code to wait for
executors was moved to TestUtils and now uses the SparkStatusTracker API.

As part of this change I also modified the streaming UI to read the needed
data from the store, which was missed in the previous patch that made
JobProgressListener redundant.

To avoid having the writes to the status store stall the listener bus
thread, this change adds a caching layer that also does writes
asynchronously.

The write layer avoids high memory usage by de-duplicating writes;
this is done by "overwriting" previous write operations to the same
key that haven't yet been written to the underlying store. The read
path is kept up to date with these operations, so that the listener
that is doing the writes gets a consistent view of the store.

Note the caching only works for single reads (i.e. not iteration).
Because of that, the status listener needs to keep track of some
extra information in memory so that it doesn't need to rely on
data being written to the underlying store for handling certain
events.

On top of those, there's a lot of work in this change to keep track
of certain metrics that can help us measure how well the cache is
working and whether it needs some tuning.

Tested with pretty large log files with lots of tasks and verified
that the write queue doesn't grow too much.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant