[SERVER-3540] Automatically enable --smallfiles if less than 100GB disk free Created: 05/Aug/11  Updated: 26/Jun/15  Resolved: 26/Jun/15

Status: Closed
Project: Core Server
Component/s: Storage, Usability
Affects Version/s: None
Fix Version/s: None

Type: Improvement Priority: Minor - P4
Reporter: Mathias Stearn Assignee: Mathias Stearn
Resolution: Won't Fix Votes: 0
Labels: None
Remaining Estimate: Not Specified
Time Spent: Not Specified
Original Estimate: Not Specified

Participants:

 Description   

More important now with journal prealloc auto on.

File::freeSpace()

Issues:
1) How does this interact with --directoryPerDB
2) Do we continue checking during runtime and toggle if free space drops below the threshold?



 Comments   
Comment by Ian Whalen (Inactive) [ 26/Jun/15 ]

Closing as Won't Fix given the introduction of the WiredTiger storage engine.

Comment by Dwight Merriman [ 05/Oct/11 ]

if they are below the amount of freespace to prealloc lets abend with appropriate error

Comment by Mathias Stearn [ 01/Oct/11 ]

Lets take 5-10 minutes next week and figure out what we actually want to do here.

Comment by Dwight Merriman [ 09/Aug/11 ]

a much much simpler (albeit less automatic) option would be to simply log "hey you should think about using --smallfiles as you only have __ disk space".

Comment by Dwight Merriman [ 09/Aug/11 ]

I would say do this with the journal files (i.e. use the 256MB size rather than 1GB per file).
Regardless of prealloc: prealloc would use 3GB min but without still will use 2GB.
I'd not do the smallfiles behavior for the data files as they start at a pretty reasonable size already (64MB).
I'd say a lower threshold such as 50GB. using 3GB of 100 is not so bad.

I suppose for journal files the behavior changing per restart could be pretty easy/clean as we start fresh with no journal files (after recovery) anyway. The one nuance is that prealloc files persist across restarts. Thus there may be nuances here like going from smaller prealloc files to a new restart that decides to use big ones, or vice versa. Can be handled and may even do reasonable things as-is but because of this this should only be added if there is a test for that scenario.

What about: imagine i make a 20GB dedicated volume for journal files. I wouldn't want the smaller ones to be used in that case.

Imagine I have a 1TB volume and it's just getting full and there is now 100GB free. I wouldn't want the journal file sizes to then change, say i'd been using mongod for a year and disk is just getting fullish. Changing to different size files would be surprising then and it might behave slightly differently even.

Comment by Scott Hernandez (Inactive) [ 05/Aug/11 ]

2.) Yes, this should happen on each alloc. (IMHO)

Generated at Thu Feb 08 03:03:21 UTC 2024 using Jira 9.7.1#970001-sha1:2222b88b221c4928ef0de3161136cc90c8356a66.