-
Notifications
You must be signed in to change notification settings - Fork 50
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
WIP content-sqlite: preallocate space to avoid outside diskfull events #6217
base: master
Are you sure you want to change the base?
Commits on Aug 20, 2024
-
Problem: Some new features will require a slightly larger tmpfs for testing than the current 1m one. Add an additionl 5m tmpfs mount for testing.
Configuration menu - View commit details
-
Copy full SHA for bc19543 - Browse repository at this point
Copy the full SHA bc19543View commit details -
content-sqlite: split truncate out of function
Problem: In the near future we may wish to open the sqlite multiple times within the content-sqlite module. The current content_sqlite_opendb() takes a "truncate" parameter that would truncate the db on every open. This is not what we want if we are closing/opening the database multiple times. Solution: Split out the truncate into a new "setup" function. This setup function will be called once when the module is loaded.
Configuration menu - View commit details
-
Copy full SHA for d6ce14b - Browse repository at this point
Copy the full SHA d6ce14bView commit details -
content-sqlite: initialize variables on close db
Problem: In the near future we may need to close the sqlite db and reopen it. It would be wise to re-initialize context variables when closing the db to avoid re-using older configs. Init all appropriate variables in the content-sqlite context when closing the sqlite db.
Configuration menu - View commit details
-
Copy full SHA for 1f95a3d - Browse repository at this point
Copy the full SHA 1f95a3dView commit details -
content-sqlite: open db given input parameters
Problem: In the near future, we may need to open the sqlite db with different settings during setup. Solution: Have the content_sqlite_opendb() function take journal_mode and synchronous as input parameters.
Configuration menu - View commit details
-
Copy full SHA for ffa16c3 - Browse repository at this point
Copy the full SHA ffa16c3View commit details -
content-sqlite: support preallocate config
Problem: When a disk runs out of space, the content-sqlite module can no longer work. It would be convenient if space could be reserved ahead of time to prevent these types of problems. Support a new preallocate module and config option that takes a byte maximum as input. This option will internally create a new special database and write data to that database until the byte max is reached. Then this database will be dropped. This internally reserves space for the sole use of sqlite. Note that this feature will not work if any type of journaling or write ahead log is used, as that will also require disk space.
Configuration menu - View commit details
-
Copy full SHA for cdbea4b - Browse repository at this point
Copy the full SHA cdbea4bView commit details -
t: cover content-sqlite preallocate
Problem: There is no coverage for the new content-sqlite preallocate config. Add tests in t0012-content-sqlite.t and t0090-content-enospc.t.
Configuration menu - View commit details
-
Copy full SHA for f366ae4 - Browse repository at this point
Copy the full SHA f366ae4View commit details -
content-sqlite: disable journaling if hit ENOSPC
Problem: If a disk fills up, sqlite may no longer be able to operate because journal files can no longer be written to disk. However, if space was pre-allocated, sqlite can still be used if we turn off journaling. If ENOSPC is hit and pre-allocated space was configured, turn off journaling in an attempt to keep the content-sqlite module functional, although with slower performance.
Configuration menu - View commit details
-
Copy full SHA for a0e7c60 - Browse repository at this point
Copy the full SHA a0e7c60View commit details -
t: cover preallocate with journaling
Problem: There is no coverage to test if content-sqlite preallocate works if journaling was initially enabled. Add coverage in t/t0090-content-enospc.t.
Configuration menu - View commit details
-
Copy full SHA for 82eb65e - Browse repository at this point
Copy the full SHA 82eb65eView commit details -
doc: document new content-sqlite config
Problem: The new journal_mode, synchronous, and preallocate configs for the content-sqlite module are not documented. Add them in new doc/man5/flux-config-content-sqlite.rst.
Configuration menu - View commit details
-
Copy full SHA for 816fae5 - Browse repository at this point
Copy the full SHA 816fae5View commit details -
Configuration menu - View commit details
-
Copy full SHA for 297057f - Browse repository at this point
Copy the full SHA 297057fView commit details -
Configuration menu - View commit details
-
Copy full SHA for 059d388 - Browse repository at this point
Copy the full SHA 059d388View commit details