From mboxrd@z Thu Jan 1 00:00:00 1970 Delivery-date: Wed, 12 Apr 2023 11:57:50 +0200 Received: from metis.ext.pengutronix.de ([2001:67c:670:201:290:27ff:fe1d:cc33]) by lore.white.stw.pengutronix.de with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1pmXEb-000xnS-CL for lore@lore.pengutronix.de; Wed, 12 Apr 2023 11:57:50 +0200 Received: from localhost ([127.0.0.1] helo=metis.ext.pengutronix.de) by metis.ext.pengutronix.de with esmtp (Exim 4.92) (envelope-from ) id 1pmXEb-00033c-II; Wed, 12 Apr 2023 11:57:49 +0200 Received: from drehscheibe.grey.stw.pengutronix.de ([2a0a:edc0:0:c01:1d::a2]) by metis.ext.pengutronix.de with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1pmXEQ-00033L-Bo; Wed, 12 Apr 2023 11:57:38 +0200 Received: from [2a0a:edc0:0:900:1d::77] (helo=ptz.office.stw.pengutronix.de) by drehscheibe.grey.stw.pengutronix.de with esmtp (Exim 4.94.2) (envelope-from ) id 1pmXEP-00AhvA-H6; Wed, 12 Apr 2023 11:57:37 +0200 Received: from localhost ([127.0.0.1]) by ptz.office.stw.pengutronix.de with esmtp (Exim 4.94.2) (envelope-from ) id 1pmXEO-00CVzT-Fm; Wed, 12 Apr 2023 11:57:36 +0200 Message-ID: <3dd18840cf2d9cbce2da69bf9e86623cb52687ff.camel@pengutronix.de> From: Jan =?ISO-8859-1?Q?L=FCbbe?= To: Alexandre Gambier , "rauc@pengutronix.de" Date: Wed, 12 Apr 2023 11:57:36 +0200 In-Reply-To: <5496f060c3934cc9a523fe40975acb39@iemgroup.com> References: <5496f060c3934cc9a523fe40975acb39@iemgroup.com> Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable User-Agent: Evolution 3.48.0 (by Flathub.org) MIME-Version: 1.0 Subject: Re: [RAUC] Future update method tree-rsync-checksum X-BeenThere: rauc@pengutronix.de X-Mailman-Version: 2.1.29 Precedence: list List-Id: RAUC Project - Discussion List List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "RAUC" X-SA-Exim-Connect-IP: 127.0.0.1 X-SA-Exim-Mail-From: rauc-bounces@pengutronix.de X-SA-Exim-Scanned: No (on metis.ext.pengutronix.de); SAEximRunCond expanded to false Hi Alexandre, it seems we missed this mail, sorry. On Fri, 2023-01-06 at 15:00 +0000, Alexandre Gambier wrote: > I'm currently evaluating RAUC to replace our current casync implementatio= n and > after a look to your article > :https://www.pengutronix.de/en/blog/2022-10-12-rauc-adaptive-updates.html= , I > was wondering if there's any public roadmap or if you can tell me when th= e > future update method tree-rsync-checksum will be available. Are you using casync directly or via RAUC? Most of our feature improvements are developed in customer projects and dri= ven by a specific use-case. Currently, we don't have a project which requires t= he tree-rsync-checksum method. We've started a discussion with the rsync maintainer regarding a feature we= 'd need in rsync [1], but it seems it will not be simple to get that into an r= sync release. > Our product is battery powered and uses a Cat-M1 4G modem with a very > expensive and limited data plain. > So we need to download only the required files so we won't exceed the dat= a > plain and the machine can goes to sleep mode as fast as possible. > The current update method block-hash-index downloads more packets than it= is > really necessary. Yes. The block-hash-index is a different trade-off: It's very simple, usabl= e for verified boot setups and works with any old version on the target device. A= s a down-side, it will need to download more data. For your scenario, where you're likely paying for every packet, different approaches would probably be more efficient. Either something like the tree-rsync-checksum approach, which would still w= ork with any version on the target devices. It would still need to compare the = hash for every file, which still generates some traffic, and then download any changed file completely. To reduce the download size even more, you could use a delta approach: The bundle would contain 'patches' to update from a set of old version you know= are in the field. During installation, RAUC would select and downlaod only the = one matching patch. This would also avoid downloading *parts* of files that are unchanged. For file trees, we could use rsync batch files. For raw filesyst= em images, zstd in --patch-from mode could be used. To implement one of these approaches, we could take the commercial path (vi= a sales@pengutronix.de). Alternatively, we'd of course also take a PR adding support for these from the community. Best regards, Jan L=C3=BCbbe [1] https://github.com/WayneD/rsync/discussions/423 --=20 Pengutronix e.K. | | Steuerwalder Str. 21 | http://www.pengutronix.de/ | 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 | Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |