-
Notifications
You must be signed in to change notification settings - Fork 9.8k
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
etcdserver: gracefully handle ENOSPC #4744
Comments
duplicate with #2393? |
Similar but not quite the same. This one is both limiting storage space utilization and being able to start in case of ENOSPC. |
I do not quite follow this? How? More aggressively clean up snaps/wals? |
@xiang90 My thinking was some sort of recovery/maintenance mode. It could reject puts but still serve gets, compactions, defrags, and deletes. |
@heyitsanthony Will this node continue participating raft or it will just ignore all raft requests? How will this affect raft layer? |
I don't think the node would be capable of participating in raft. For the multi-node case the enospc node could throw away its data and reload via raft snapshot once some keys have been deleted (but maybe this should require user-intervention since it's sort of risky). For single node case, the deletes could go through as normal. |
Related #8935 (comment). |
This issue has been automatically marked as stale because it has not had recent activity. It will be closed after 21 days if no further activity occurs. Thank you for your contributions. |
I started V3 on a small tmpfs and put until it exhausted all space. etcd promptly died.
On restart, I get:
Possible (partial) solution: introduce a tiny quota layer to storage or backend that checks the db size before submitting a put.
The text was updated successfully, but these errors were encountered: