InnoDB data file size management
InnoDB currently has a very limited ability to cleanly handle an out of disk space situation. Once in an out of space state, InnoDB may sometimes sit in a simple read-only state or even be in an difficult to recover state of asserting during an attempted rollback of a transaction that failed due to an out of space error (https:/
We propose to make this more reliable by implementing the following:
- Create a pair of new InnoDB options:
- innodb-
- inoodb-
The overhead this would add is a statfs() call whenever innodb attempts to extend a data file. This should be of negligible impact as in this case we are doing a sync and holding mutexes anyway. This should be achievable by modifying fil_extend_
We will also need to modify fil_extend_
Blueprint information
- Status:
- Not started
- Approver:
- None
- Priority:
- Low
- Drafter:
- George Ormond Lorch III
- Direction:
- Needs approval
- Assignee:
- George Ormond Lorch III
- Definition:
- Drafting
- Series goal:
- None
- Implementation:
- Unknown
- Milestone target:
- None
- Started by
- Completed by
Related branches
Related bugs
Bug #1079596: Percona Server crashes with segmentation fault when disk quota is reached | Fix Released |
Sprints
Whiteboard
What about purge and ibuf merge operations from the "intention"
That is a good point Laurynas. I obviously had not thought about that and yes, I think you are correct in that ibuf merges should be allowed to proceed through the hard limit at the risk of hitting the real ENOSPC. This does raise an interesting question though about the effectiveness of this proposal when used in conjunction of ibuf and a schema that promotes its use. In a way it allows user inserts to 'bypass' this hard limit testing since the limit tests will only be done when space actually needs to be extended. I suppose though that this may still work if the limits are still observed/enforced during ibuf page allocations/
Ohh yeah, thanks for the feedback!
Would innodb_