Create 'storage area' API in Go for large temporary files (e.g. repo bundles)
I’ve been thinking about the bundle import/export RPC’s. what bugs me is the temporary storage that it needs
[6:18] the problem with temporary storage is that you need to clean it up
[6:18] and even though you mean to clean it up when the request is done, you can’t count on that happening
[6:18] so there needs to be a sort of cleanup cron job
[6:18] in addition, there is the problem of what filesystem to use
[6:19] you can’t assume that /tmp is large enough to hold the bundle of any repository
[6:19] so my thinking is we should default to a special purpose tmp directory inside one of the storage roots
[6:19] because the storage root must be on a file system large enoug to hold the repos
[6:20] all this stuff feels a little complicated to work out ‘in theory’ in an issue for the import/export calls
[6:21] I should probably be the one writing the code that manages the temp dir and the cleanup
[6:24] if this sounds complicated, I have reasons. what I don’t want is us putting large tempfiles in /tmp where they don’t fit. or putting them “near” the repo they will become in the tree because then you need to walk a huge tree if you want to clean them up
[6:25] the way things are we can’t walk the full repository hierarchy in one job