You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
8462: dolt gc --full: Implement a flag for GC which will collect everything, including the old gen.
Dolt GC is generational. By default, it moves all chunks reachable from commits into the old gen, and it leaves uncommitted data in the new gen. By default, it never revisits the chunks in the old gen. This means that if a branch with a lot of unique data exists during a GC, and then gets deleted, the storage taken up by that branch is never reclaimed by future garbage collection.
This PR implements dolt gc --full, which performs a collection on the entire database, ignoring the generational aspects of previous collections and visiting the entire set of live data. At the end of a successful dolt gc --full, only data which was reachable at the start of the run and data which has been written during the run will be present in the database.
Note: dolt gc --full visits every reachable chunk in the database and can be resource intensive. As a consequence of running dolt gc --full, any previously archived table files will be unarchived, and storage savings from the archiving will be lost. dolt gc --full involves copying chunks into new storage files, and fully materializing the new files before the old files are deleted; as a consequence, peak disk utilisation while running dolt gc --full can be up to 2x the existing size of the database.
8461: Serialize schema names in foreign key constraints