{"id":255,"date":"2014-02-06T09:11:20","date_gmt":"2014-02-06T08:11:20","guid":{"rendered":"http:\/\/blogs.gentoo.org\/mgorny\/?p=255"},"modified":"2014-02-06T09:11:20","modified_gmt":"2014-02-06T08:11:20","slug":"using-deltas-to-speed-up-squashfs-updates","status":"publish","type":"post","link":"https:\/\/blogs.gentoo.org\/mgorny\/2014\/02\/06\/using-deltas-to-speed-up-squashfs-updates\/","title":{"rendered":"Using deltas to speed up SquashFS updates"},"content":{"rendered":"<p>The\u00a0ebuild repository format that is used by\u00a0Gentoo generally fits well in\u00a0the\u00a0developer and\u00a0power user work flow. It has a\u00a0simple design that makes reading, modifying and\u00a0adding ebuilds easy. However, the\u00a0large number of\u00a0separate small files with many similarities do not make it very space efficient and\u00a0often impacts performance. The\u00a0update (rsync) mechanism is relatively slow compared to distributions like Arch Linux, and\u00a0is only moderately bandwidth efficient.<\/p>\n<p>There were various attempts at\u00a0solving at\u00a0least some of\u00a0those issues.  Various filesystems were used in\u00a0order to reduce the\u00a0space consumption and\u00a0improve performance. Delta updates were introduced through the\u00a0<i>emerge-delta-webrsync<\/i> tool to save bandwidth. Sadly, those solutions usually introduce other inconveniences.<\/p>\n<p>Using a\u00a0separate filesystem for the\u00a0repositories involves additional maintenance. Using a\u00a0read-only filesystem makes updates time-consuming.  Similarly, the\u00a0delta update mechanism \u2014 while saving bandwidth \u2014 usually takes more time than plain rsync update.<\/p>\n<p>In\u00a0this article, the\u00a0author proposes a\u00a0new solution that aims both to save disk space and\u00a0reduce update time significantly, bringing Gentoo closer to the\u00a0features of\u00a0binary distributions. The\u00a0ultimate goal of\u00a0this project would be to make it possible to use the\u00a0package manager efficiently without having to perform additional administrative tasks such as\u00a0designating an\u00a0extra partition.<\/p>\n<p><a rel=\"external\" href=\"http:\/\/dev.gentoo.org\/~mgorny\/articles\/using-deltas-to-speed-up-squashfs-ebuild-repository-updates.pdf\">Read on\u2026 [PDF]<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>The\u00a0ebuild repository format that is used by\u00a0Gentoo generally fits well in\u00a0the\u00a0developer and\u00a0power user work flow. It has a\u00a0simple design that makes reading, modifying and\u00a0adding ebuilds easy. However, the\u00a0large number of\u00a0separate small files with many similarities do not make it very space efficient and\u00a0often impacts performance. The\u00a0update (rsync) mechanism is relatively slow compared to distributions like &hellip; <a href=\"https:\/\/blogs.gentoo.org\/mgorny\/2014\/02\/06\/using-deltas-to-speed-up-squashfs-updates\/\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;Using deltas to speed up SquashFS updates&#8221;<\/span><\/a><\/p>\n","protected":false},"author":137,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_publicize_message":"","jetpack_is_tweetstorm":false,"jetpack_publicize_feature_enabled":true},"categories":[5],"tags":[],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/blogs.gentoo.org\/mgorny\/wp-json\/wp\/v2\/posts\/255"}],"collection":[{"href":"https:\/\/blogs.gentoo.org\/mgorny\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blogs.gentoo.org\/mgorny\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blogs.gentoo.org\/mgorny\/wp-json\/wp\/v2\/users\/137"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.gentoo.org\/mgorny\/wp-json\/wp\/v2\/comments?post=255"}],"version-history":[{"count":3,"href":"https:\/\/blogs.gentoo.org\/mgorny\/wp-json\/wp\/v2\/posts\/255\/revisions"}],"predecessor-version":[{"id":258,"href":"https:\/\/blogs.gentoo.org\/mgorny\/wp-json\/wp\/v2\/posts\/255\/revisions\/258"}],"wp:attachment":[{"href":"https:\/\/blogs.gentoo.org\/mgorny\/wp-json\/wp\/v2\/media?parent=255"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.gentoo.org\/mgorny\/wp-json\/wp\/v2\/categories?post=255"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.gentoo.org\/mgorny\/wp-json\/wp\/v2\/tags?post=255"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}