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

Control memory use in memcache #3495

Merged
merged 3 commits into from
May 19, 2024
Merged

Control memory use in memcache #3495

merged 3 commits into from
May 19, 2024

Conversation

scudette
Copy link
Contributor

Under high load we need to create pushback to keep the server under control:

  1. When the number of cached bytes goes over the limit writes are switched to synchronous - this pushes back against the clients and keeps server memory in check.
  2. Journal sync operations are now done in worker pool to avoid uncontrolled goroutine creation. When the pool is full async journal writes are converted to synchronous writes to create pushback.

Under high load we need to create pushback to keep the server under
control:

1. When the number of cached bytes goes over the limit writes are
   switched to synchronous - this pushes back against the clients and
   keeps server memory in check.
2. Journal sync operations are now done in worker pool to avoid
   uncontrolled goroutine creation. When the pool is full async
   journal writes are converted to synchronous writes to create
   pushback.
@scudette scudette merged commit 64460c6 into master May 19, 2024
3 checks passed
@scudette scudette deleted the memcache_memory branch May 19, 2024 09:19
scudette added a commit that referenced this pull request May 21, 2024
Under high load we need to create pushback to keep the server under
control:

1. When the number of cached bytes goes over the limit writes are
switched to synchronous - this pushes back against the clients and keeps
server memory in check.
2. Journal sync operations are now done in worker pool to avoid
uncontrolled goroutine creation. When the pool is full async journal
writes are converted to synchronous writes to create pushback.
scudette added a commit that referenced this pull request May 21, 2024
Under high load we need to create pushback to keep the server under
control:

1. When the number of cached bytes goes over the limit writes are
switched to synchronous - this pushes back against the clients and keeps
server memory in check.
2. Journal sync operations are now done in worker pool to avoid
uncontrolled goroutine creation. When the pool is full async journal
writes are converted to synchronous writes to create pushback.
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.

None yet

1 participant