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

Expire schemas from Avro cache based on age instead of recency. #28

Closed
wants to merge 1 commit into from

Conversation

wagnermarkd
Copy link
Contributor

@wagnermarkd wagnermarkd commented Mar 30, 2017

Guava's cache performs poorly under high loaded when tracking recency. The details are in google/guava#2408. The short version is that each access is tracked and aggregated. If there's constant read access by more threads than there are cores (as happens for the AvroSerde in a Presto worker), the whole thing gets backed up and ultimately leads to a lengthy GC pause and query timeouts.

Expiring based on age instead of recency avoids the issue.

@wagnermarkd
Copy link
Contributor Author

@electrum, could you take a look? We've been running this in production for a couple weeks now and have had much better stability with it.

@electrum
Copy link
Contributor

Merged, thanks!

@electrum electrum closed this May 12, 2017
@electrum
Copy link
Contributor

Sorry for the delay, I missed this one. I copied the description into the commit message.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants