{"id":25778,"date":"2019-06-25T16:47:00","date_gmt":"2019-06-25T20:47:00","guid":{"rendered":"https:\/\/mjtsai.com\/blog\/?p=25778"},"modified":"2020-07-03T16:51:39","modified_gmt":"2020-07-03T20:51:39","slug":"superduper-3-2-5","status":"publish","type":"post","link":"https:\/\/mjtsai.com\/blog\/2019\/06\/25\/superduper-3-2-5\/","title":{"rendered":"SuperDuper 3.2.5"},"content":{"rendered":"<p><a href=\"https:\/\/www.shirt-pocket.com\/blog\/index.php\/shadedgrey\/comments\/superduper_v325_now_available\/\">Dave Nanian<\/a>:<\/p>\n<blockquote cite=\"https:\/\/www.shirt-pocket.com\/blog\/index.php\/shadedgrey\/comments\/superduper_v325_now_available\/\"><p>So if that code was right, why the heck were <strong>some<\/strong> users getting <strong>occasional<\/strong> multiple runs? And why wasn&rsquo;t it happening to us here at Shirt Pocket HQ?<\/p><p>[&#8230;]<\/p><p>Previously, in order to work around problems with Clean My Mac (which, for some reason, incorrectly disables our scheduling when a cleanup pass is run, much to my frustration), we changed SuperDuper to reload our LaunchAgents when it starts, in order to self-repair.<\/p><p>[&#8230;]<\/p><p>Readers may recall that launchd&rsquo;s <code>ThrottleInterval<\/code> doesn&rsquo;t really control how often a job might launch, &ldquo;throttling&rdquo; it to only once every <code>n<\/code> seconds. It actually forces a task to relaunch if it doesn&rsquo;t run for at least <code>n<\/code> seconds.<\/p><p>It does this even if a task succeeds, exits normally, and is set up to run, say, <strong>every minute<\/strong>.<\/p><p>[&#8230;]<\/p><p>So, in 3.2.5, we&rsquo;ve changed this so that rather than write a file &ldquo;optimally&rdquo;, maximizing the number of holes, we write it &ldquo;accurately&rdquo;. That is, we <strong>exactly<\/strong> replicate the sparse structure on the source. This speeds things up tremendously. For example, with a typical sparse docker image, the OS&rsquo;s low-level <code>copyfile<\/code> function takes 13 minutes to copy with full fidelity, <code>rsync<\/code> takes 3 minutes and doesn&rsquo;t provide full fidelity, whereas SuperDuper 3.2.5 takes 53 seconds and exactly replicates the source.<\/p><\/blockquote>\n\n<p>Previously:<\/p>\n<ul>\n<li><a href=\"https:\/\/mjtsai.com\/blog\/2019\/06\/06\/backing-up-macos-10-15-beta\/\">Backing Up macOS 10.15 Beta<\/a><\/li>\n<li><a href=\"https:\/\/mjtsai.com\/blog\/2019\/03\/15\/esellerate-shutting-down\/\">eSellerate Shutting Down<\/a><\/li>\n<li><a href=\"https:\/\/mjtsai.com\/blog\/2019\/02\/05\/mojave-privacy-protection-aftermath\/\">Mojave Privacy Protection Aftermath<\/a><\/li>\n<li><a href=\"https:\/\/mjtsai.com\/blog\/2018\/11\/01\/superdupers-smart-wake\/\">SuperDuper&rsquo;s Smart Wake<\/a><\/li>\n<\/ul>\n\n<p id=\"superduper-3-2-5-update-2019-07-01\">Update (2019-07-01): <a href=\"https:\/\/twitter.com\/dnanian\/status\/1144347705809997824\">Dave Nanian<\/a>:<\/p>\n<blockquote cite=\"https:\/\/twitter.com\/dnanian\/status\/1144347705809997824\">\n<p>One of the new things in SuperDuper! 3.2.5: more guidance when granting us full disk access. Basically, working around Apple&rsquo;s inadequate and confusing UI.<\/p>\n<\/blockquote>","protected":false},"excerpt":{"rendered":"<p>Dave Nanian: So if that code was right, why the heck were some users getting occasional multiple runs? And why wasn&rsquo;t it happening to us here at Shirt Pocket HQ?[&#8230;]Previously, in order to work around problems with Clean My Mac (which, for some reason, incorrectly disables our scheduling when a cleanup pass is run, much [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"apple_news_api_created_at":"2019-06-25T20:47:03Z","apple_news_api_id":"4ef11de9-38dc-46fc-8980-f12dd5bffafe","apple_news_api_modified_at":"2020-07-03T20:51:42Z","apple_news_api_revision":"AAAAAAAAAAAAAAAAAAAABA==","apple_news_api_share_url":"https:\/\/apple.news\/ATvEd6TjcRvyJgPEt1b_6_g","apple_news_coverimage":0,"apple_news_coverimage_caption":"","apple_news_is_hidden":false,"apple_news_is_paid":false,"apple_news_is_preview":false,"apple_news_is_sponsored":false,"apple_news_maturity_rating":"","apple_news_metadata":"\"\"","apple_news_pullquote":"","apple_news_pullquote_position":"","apple_news_slug":"","apple_news_sections":"\"\"","apple_news_suppress_video_url":false,"apple_news_use_image_component":false,"footnotes":""},"categories":[2],"tags":[1395,146,1829,500,30,32,1609,1666,369,1960],"class_list":["post-25778","post","type-post","status-publish","format-standard","hentry","category-technology","tag-apple-file-system-apfs","tag-backup","tag-cleanmymac","tag-launchd","tag-mac","tag-macapp","tag-macos-10-14","tag-macos-10-15","tag-superduper","tag-transparency-consent-and-control-tcc"],"apple_news_notices":[],"_links":{"self":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts\/25778","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/comments?post=25778"}],"version-history":[{"count":5,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts\/25778\/revisions"}],"predecessor-version":[{"id":25914,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts\/25778\/revisions\/25914"}],"wp:attachment":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/media?parent=25778"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/categories?post=25778"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/tags?post=25778"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}