From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp10.migadu.com ([2001:41d0:2:bcc0::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms5.migadu.com with LMTPS id 0DeLJtmo2mJ6yQAAbAwnHQ (envelope-from ) for ; Fri, 22 Jul 2022 15:40:41 +0200 Received: from aspmx1.migadu.com ([2001:41d0:2:bcc0::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp10.migadu.com with LMTPS id UNCCJdmo2mLecQAAG6o9tA (envelope-from ) for ; Fri, 22 Jul 2022 15:40:41 +0200 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id 380CCD7B6 for ; Fri, 22 Jul 2022 15:40:41 +0200 (CEST) Received: from localhost ([::1]:46516 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1oEstU-00023J-8V for larch@yhetil.org; Fri, 22 Jul 2022 09:40:40 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:46408) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1oEsst-00021S-3Q for guix-patches@gnu.org; Fri, 22 Jul 2022 09:40:03 -0400 Received: from debbugs.gnu.org ([209.51.188.43]:50697) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1oEsss-0002tA-MA for guix-patches@gnu.org; Fri, 22 Jul 2022 09:40:02 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1oEsss-0003lP-BQ for guix-patches@gnu.org; Fri, 22 Jul 2022 09:40:02 -0400 X-Loop: help-debbugs@gnu.org Subject: [bug#51427] [PATCH] nix: libstore: Do not remove unused links when deleting specific items. Resent-From: Maxime Devos Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Fri, 22 Jul 2022 13:40:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 51427 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: Ludovic =?UTF-8?Q?Court=C3=A8s?= , Liliana Marie Prikler Cc: 51427@debbugs.gnu.org, Tobias Geerinckx-Rice , maxim.cournoyer@gmail.com, zimon.toutoune@gmail.com Received: via spool by 51427-submit@debbugs.gnu.org id=B51427.165849716014412 (code B ref 51427); Fri, 22 Jul 2022 13:40:02 +0000 Received: (at 51427) by debbugs.gnu.org; 22 Jul 2022 13:39:20 +0000 Received: from localhost ([127.0.0.1]:40446 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oEssC-0003kO-4l for submit@debbugs.gnu.org; Fri, 22 Jul 2022 09:39:20 -0400 Received: from laurent.telenet-ops.be ([195.130.137.89]:34510) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1oEss9-0003kC-J9 for 51427@debbugs.gnu.org; Fri, 22 Jul 2022 09:39:18 -0400 Received: from [IPV6:2a02:1811:8c09:9d00:5dba:d409:33f7:a16] ([IPv6:2a02:1811:8c09:9d00:5dba:d409:33f7:a16]) by laurent.telenet-ops.be with bizsmtp id yDfD2700120ykKC01DfEmG; Fri, 22 Jul 2022 15:39:15 +0200 Message-ID: <4b81f06f-3e89-5a33-ae30-1710e447f849@telenet.be> Date: Fri, 22 Jul 2022 15:39:12 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.11.0 Content-Language: en-US References: <20211027034918.4591-1-maxim.cournoyer@gmail.com> <87o8795j61.fsf@gnu.org> <5c2dd60acfaa7d74b7554babb3e223bc855bac8a.camel@gmail.com> <87h7cxp9tl.fsf@gnu.org> <87sfwg7w9z.fsf@gmail.com> <87ee7tmdbd.fsf@gnu.org> <86k0hhnqss.fsf@gmail.com> <871r3f2j7y.fsf@gnu.org> <867dd7roi2.fsf@gmail.com> <87o7xmy14l.fsf_-_@gnu.org> <2441c768fea8faee800947a17aef896c35173845.camel@gmail.com> <87sfmxv6ue.fsf@gnu.org> <8538dc9925eb499ea2b728e349d98296eedeb14d.camel@gmail.com> <877d48lx41@nckx> <877d46n7n5.fsf_-_@gnu.org> <12c768df412e23b4d69e87631cd805f741c38ce3.camel@gmail.com> <87ilnpibu1.fsf@gnu.org> From: Maxime Devos In-Reply-To: <87ilnpibu1.fsf@gnu.org> Content-Type: multipart/signed; micalg=pgp-sha256; protocol="application/pgp-signature"; boundary="------------ACUVo004QgkJizK09nIr3V1Y" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=telenet.be; s=r22; t=1658497155; bh=5HT3YYZ4BRqneo6N3NByGVuu18swYsyZB2wRq3/73e0=; h=Date:To:Cc:References:From:Subject:In-Reply-To; b=X08e7jMMcEffCtA7ssbH8TuocMLW0xLZ7zsRbw9xMvgzdpmUnQ12QnQ1V6FtNq6ih 5UiExaRPeZbfJoGLGhAVhgq4TxOkvoNuNmJB5eMIQ3XNSpO5lI91N5zbY8wMyNtzEx HvKPBf9ZB92C6BMSQl8B51RahdfIdikIoyA5FysUVJYcJiDYIVTeuiul0fIVs59D4l iubH1hGpIjzUFpXsBFug+UqDYssm+6T9MjVac6Y7Po9LbDygHGmdvhYgtru1dm+zCV a1r7wiJlEk7XDBK/Nns640Q7yjw6dty2VwogTJtC84GLRHSqFW+O9rTwbIeY3U/hg0 KpkTBZ+4yVfww== X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: guix-patches@gnu.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+larch=yhetil.org@gnu.org Sender: "Guix-patches" X-Migadu-Flow: FLOW_IN X-Migadu-To: larch@yhetil.org X-Migadu-Country: US ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1658497241; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type:resent-cc:resent-from:resent-sender: resent-message-id:in-reply-to:in-reply-to:references:references: list-id:list-help:list-unsubscribe:list-subscribe:list-post: dkim-signature; bh=A7AnPIwNwEi7ectEYdjpBdRjbmCCIL9oqzL5DYRgJLY=; b=Wvl9QCgnyGKN7rgRtV8wwYetiaWsgfhi6knKxp7xp7YjGIepiTkj57JTrEQ4TpQUK5Lu2m 37ikcnseC7qKSkYaRlYJ/b1sEeyOd4uS3iyIIelpvAq0aEqFDfgKgqVulXbCcIgJJVKv9j DIDCcmxvAGBAkyFxuxnwbB7RoKIClJ6zsHZ4NQ7+F3WehEt6PDG3UOWefgDod2BfNT+s/x gB5taJJB0UmPWarD/NTkby5FtQnsR/1AxJCcYjxZh2NyJQsUMA4LlhOO8SuKyw+rC3L0wO 1RhfbPZCz3gWldZwoTGsbjSv1Bb7CPf6adzmb10orJZC4fcdL1zKXat+NP/H0g== ARC-Seal: i=1; s=key1; d=yhetil.org; t=1658497241; a=rsa-sha256; cv=none; b=TGuFjLexnpmsmM/7fD6DWAr/o6Rhbhugk4Igz9NpxFFgZ5qtiuJVgCS6wZahgoxEh/qJH9 os38cnzPXCFO6fnyrmCkmu47I9+AfqaJLWIc8TnWzcZvrXq+iV2AK0FGiINdxg1MzQB9pN gtE1Byngn9y7ARVZAvK4/8k/ElrwmXLJ47zdDVlggaqX82wfcjctgQv7RMDlyHluhlu06R 9RgvLkHrimdifhD93pj+3Ns9iP/o1/psUrf+Ng1rezHEHmWbojK+oNokZVQ2o02B8Q9y33 cnaVxwUUh6VGg93Ws0HborLM1po4/iSw0na4xB+pX0oCbJTNhcNNTP9Ke91OOg== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=fail ("body hash did not verify") header.d=telenet.be header.s=r22 header.b=X08e7jMM; dmarc=fail reason="SPF not aligned (relaxed)" header.from=telenet.be (policy=none); spf=pass (aspmx1.migadu.com: domain of "guix-patches-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="guix-patches-bounces+larch=yhetil.org@gnu.org" X-Migadu-Spam-Score: 6.67 Authentication-Results: aspmx1.migadu.com; dkim=fail ("body hash did not verify") header.d=telenet.be header.s=r22 header.b=X08e7jMM; dmarc=fail reason="SPF not aligned (relaxed)" header.from=telenet.be (policy=none); spf=pass (aspmx1.migadu.com: domain of "guix-patches-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="guix-patches-bounces+larch=yhetil.org@gnu.org" X-Migadu-Queue-Id: 380CCD7B6 X-Spam-Score: 6.67 X-Migadu-Scanner: scn0.migadu.com X-TUID: isUA2BCTi4RW This is an OpenPGP/MIME signed message (RFC 4880 and 3156) --------------ACUVo004QgkJizK09nIr3V1Y Content-Type: multipart/mixed; boundary="------------OvQG20pyzt0HL7SMs0kZ52xg"; protected-headers="v1" From: Maxime Devos To: =?UTF-8?Q?Ludovic_Court=c3=a8s?= , Liliana Marie Prikler Cc: 51427@debbugs.gnu.org, Tobias Geerinckx-Rice , maxim.cournoyer@gmail.com, zimon.toutoune@gmail.com Message-ID: <4b81f06f-3e89-5a33-ae30-1710e447f849@telenet.be> Subject: Re: [bug#51427] [PATCH] nix: libstore: Do not remove unused links when deleting specific items. References: <20211027034918.4591-1-maxim.cournoyer@gmail.com> <87o8795j61.fsf@gnu.org> <5c2dd60acfaa7d74b7554babb3e223bc855bac8a.camel@gmail.com> <87h7cxp9tl.fsf@gnu.org> <87sfwg7w9z.fsf@gmail.com> <87ee7tmdbd.fsf@gnu.org> <86k0hhnqss.fsf@gmail.com> <871r3f2j7y.fsf@gnu.org> <867dd7roi2.fsf@gmail.com> <87o7xmy14l.fsf_-_@gnu.org> <2441c768fea8faee800947a17aef896c35173845.camel@gmail.com> <87sfmxv6ue.fsf@gnu.org> <8538dc9925eb499ea2b728e349d98296eedeb14d.camel@gmail.com> <877d48lx41@nckx> <877d46n7n5.fsf_-_@gnu.org> <12c768df412e23b4d69e87631cd805f741c38ce3.camel@gmail.com> <87ilnpibu1.fsf@gnu.org> In-Reply-To: <87ilnpibu1.fsf@gnu.org> --------------OvQG20pyzt0HL7SMs0kZ52xg Content-Type: multipart/mixed; boundary="------------SfdoER7oWCxvW92wZ0mqTahK" --------------SfdoER7oWCxvW92wZ0mqTahK Content-Type: multipart/alternative; boundary="------------0b4sugD09ohCYJ8CicKZrorY" --------------0b4sugD09ohCYJ8CicKZrorY Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: base64 DQpPbiAyMi0wNy0yMDIyIDE0OjE0LCBMdWRvdmljIENvdXJ0w6hzIHdyb3RlOg0KPiBIaSwN Cj4NCj4gTGlsaWFuYSBNYXJpZSBQcmlrbGVyPGxpbGlhbmEucHJpa2xlckBnbWFpbC5jb20+ ICBza3JpYmlzOg0KPg0KPj4gSSBkb24ndCB0aGluayBkZWxldGluZyBsaW5rcyB3aWxsIGV2 ZXIgYmUgZmFzdCBvbiB0aGF0IGRpc2suICBCdXQgd2hhdA0KPj4gSSd2ZSBiZWVuIHNheWlu ZyB0aGUgd2hvbGUgdGltZSBpcyB0aGF0IEkgZG9uJ3QgYWx3YXlzIG5lZWQgdGhlIGxpbmtz DQo+PiBkZWxldGVkLiAgSSB0aGluayBhZGRpbmcgImV4cGVydCIgc3dpdGNoZXMgdG8gc2tp cCB0aGVzZSBwaGFzZXMgbWlnaHQNCj4+IGFjdHVhbGx5IGJlIGVub3VnaCDigJMgYWZ0ZXIg YWxsLCBpZiBJIGV2ZXIgZG8gd2FudCB0byBydW4gYSBmdWxsIEdDLCB0aGUNCj4+IGluZm9y bWF0aW9uIG91Z2h0IHRvIGJlIHRoZSBzYW1lLCBubz8NCj4gVGhlIGV4cGVydCB3aWxsIGhh dmUgdG8ga25vdyB0aGF0IHNraXBwaW5nIHRoYXQgcGhhc2Ugd2lsbCBoYXZlIHRoZQ0KPiBl ZmZlY3Qgb2YgKm5vdCogZnJlZWluZyBzcGFjZSBvbiB0aGUgZGV2aWNlLCBzb+KApg0KDQpJ IGJlbGlldmUgdGhlIHdvcmQgImV4cGVydCIgaW1wbGllcyB0aGF0IHRoZSBleHBlcnQga25v d3MgdGhhdCwgDQpvdGhlcndpc2UgdGhleSBhcmUsIGJ5IGRlZmluaXRpb24sIG5vdCBhbiBl eHBlcnQsIHNvIEkgZG9uJ3Qgc2VlIHlvdXIgDQpwb2ludC4gU28gLi4uIHdoYXQgZG9lcyB0 aGUgLi4uIGFmdGVyIHRoZSAnc28nIGhpZGUgaGVyZT8gSSBkb24ndCANCnVuZGVyc3RhbmQg d2hhdCBwb2ludCB5b3UgYXJlIHRyeWluZyB0byBtYWtlIGhlcmUuDQoNClRoZSBpZGVhIGlz IHRvLCB3aGVuIGRlbGV0aW5nIHNwZWNpZmljIGl0ZW1zLCBqdXN0IGRvIHRoYXQsIGFuZCBu b3QgDQpzdGFydCBpdGVyYXRpbmcgb3ZlciBhbGwgKCopIHRoZSBvdGhlciB0aGluZ3MgaW4g dGhlIHN0b3JlLg0KDQpUaGlzIGlzIGltcG9ydGFudCBmb3IsIHNheSwgdGVzdGluZyBzdWJz dGl0dXRpb24gY29kZSBlZmZpY2llbnRseSAob3IgDQpTV0ggY29kZSBhcyBtZW50aW9uZWQg cHJldmlvdXNseSwgZXRjKS4NCg0KVGhlcmUsIHRoZSBsYWNrIG9mIGZyZWVpbmcgc3BhY2Ug aXMgbm90IGEgY29uY2Vybi7CoCBUaGlzIGFwcGVhcnMsIGFmdGVyIA0KcmVhZGluZyBkZWJi dWdzLCB0byBiZSBhbHJlYWR5IG1lbnRpb25lZCBhdCANCmh0dHBzOi8vZGViYnVncy5nbnUu b3JnL2NnaS9idWdyZXBvcnQuY2dpP2J1Zz01MTQyNyMyMC4NCg0KTWF5YmUgc29tZXRoaW5n IHRoYXQgd291bGQgYmUgYWNjZXB0YWJsZSB0byBhbGwgcGFydGllczogV2hlbiBkZWxldGlu ZyANCnNwZWNpZmljIHN0b3JlIGl0ZW1zLCBkb24ndCByZW1vdmUgX2FsbF8gdGhlIHVudXNl ZCBsaW5rcywgYnV0IG9ubHkgDQpyZW1vdmUgdGhlIHVudXNlZCBsaW5rcyB0aGF0IGNvcnJl c3BvbmQgdG8gZGVsZXRlZCBmaWxlcy4gV2hpY2ggYWZ0ZXIgDQpyZWFkaW5nIDUxNDI3IGFw cGVhcnMgdG8gYWxyZWFkeSBoYXZlIGJlZW4gcHJvcG9zZWQuDQoNCj4gTWF5YmUgdGhhdCBw cm9wb3NhbCBpcyBib2d1cyB0aG91Z2ggYmVjYXVzZSB5b3XigJlkIG5lZWQgdG8ga25vdyB0 aGUgaGFzaA0KPiBvZiB0aGUgZmlsZXMgYmVpbmcgcmVtb3ZlZCwgd2hpY2ggbWVhbnMgcmVh ZGluZyB0aGVt4oCmDQpJIGRvbid0IHNlZSB0aGUgcHJvYmxlbSAtLSB3aGVuIGRlbGV0aW5n IGEgc3BlY2lmaWMgc3RvcmUgaXRlbSwgcmVhZCB0aGUgDQpmaWxlcyBvbmUtYnktb25lLCBo YXNoIHRoZW0gb25lLWJ5LW9uZSwgYW5kIGRlbGV0ZSB0aGUgbGluayBpZiBhcHByb3ByaWF0 ZS4NCg0KID4gVGhpbmdzIGFib3V0IGh0dHBzOi8vZGViYnVncy5nbnUub3JnL2NnaS9idWdy ZXBvcnQuY2dpP2J1Zz0yNDkzNyANCmxlc3NlbmluZyB0aGUgbmVlZA0KDQpTdXJlLCBidXQg YXMgaW5mb3JtYWxseSBtZW50aW9uZWQgYnksIHNheSwgTGlsaWFuYSwgZXZlbiBhZnRlciB0 aGF0IA0KdGhpbmdzIHJlbWFpbiB+IE8obikgKG9yIHByb2JhYmx5IE8obiBsZyBuKSBpZiB0 aGUgZmlsZSBzeXN0ZW0gdXNlcyBzb21lIA0KdHJlZSBzdHJ1Y3R1cmUpIHdoZXJlIG49c2l6 ZSBvZiB0aGUgc3RvcmUsIHdoaWNoIGluIGFueSByZWFsaXN0aWMgDQpzaXR1YXRpb24gaXMg Z29pbmcgdG8gYmUgd2F5IHNsb3dlciB0aGFuIE8obSksIHdoZXJlIG0gPSB0aGUgbnVtYmVy IG9mIA0KaW5kaXZpZHVhbCBzdG9yZSBpdGVtcyB0byBkZWxldGUsIGZvciByZWFzb25hYmxl IGltcGxlbWVudGF0aW9ucyBvZiANCiJkZWxldGUgaW5kaXZpZHVhbCBzdG9yZSBpdGVtIi4g KCopDQoNClRoZSBwb2ludCBpc24ndCB0byB3b3JrLWFyb3VuZCBzbG93ICJkZWxldGluZyB1 bnVzZWQgbGlua3MiIA0KaW1wbGVtZW50YXRpb24sIGJ1dCByYXRoZXIgdG8gYXZvaWQgaW5o ZXJpdCBzbG93bmVzcyBvZiBkZWxldGluZyANCmV2ZXJ5dGhpbmcgd2hlbiBkZWxldGluZyBh IGZldyB0aGluZ3Mgc3VmZmljZS4NCg0KU3VtbWFyaXNlZCwgSSBkb24ndCB1bmRlcnN0YW5k IHRoZSByZWx1Y3RhbmNlIHRvIG1lcmdlIGFuIGltcGxlbWVudGF0aW9uIA0Kb2YgImRlbGV0 ZSBpbmRpdmlkdWFsIHN0b3JlIGl0ZW0iIC0tIHllcywgdGhlIGRlbGV0ZSBsaW5rIHBoYXNl IGlzIHNsb3cgDQphbmQgY291bGQgcG9zc2libHkgYmUgaW1wcm92ZWQsIHllcyB3aGVuIHVz aW5nIGNlcnRhaW4gaW1wbGVtZW50YXRpb25zIA0KdmVyeSBsaXR0bGUgZGlzayBpcyBmcmVl ZCwgYnV0IHRob3NlIGFyZW4ndCB0aGUgcG9pbnQgb2YgdGhlIHBhdGNoIA0KQUZBSUNULCB0 aGV5IGFyZSBvcnRob2dvbmFsIGNvbmNlcm5zLg0KDQpHcmVldGluZ3MsDQpNYXhpbWUuDQoN CigqKSBZZXMsIEknbSBuZWdsZWN0aW5nIHRoZSBkaWZmZXJlbmNlIGJldHdlZW4gbnVtYmVy IG9mIHN0b3JlIGl0ZW1zIGFuZCANCmxpbmtzIGFuZCBzaXplIG9mIHN0b3JlIGl0ZW1zIGhl cmUsIGJ1dCB0aG9zZSBkb24ndCBtYWtlIGEgZGlmZmVyZW5jZSB0byANCnRoZSBjb25jbHVz aW9uIGhlcmUuDQoNCg== --------------0b4sugD09ohCYJ8CicKZrorY Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable


On 22-07-2022 14:14, Ludovic Court=C3=A8= s wrote:
Hi,

Liliana Marie Prikler <liliana.prikler@gmail.com> skribis:

I don't think deleting lin=
ks will ever be fast on that disk.  But what
I've been saying the whole time is that I don't always need the links
deleted.  I think adding "expert" switches to skip these phases might
actually be enough =E2=80=93 after all, if I ever do want to run a full G=
C, the
information ought to be the same, no?=20
The expert will have to know that skipping that phase will have the
effect of *not* freeing space on the device, so=E2=80=A6

I believe the word "expert" implies that the expert knows that, otherwise they are, by definition, not an expert, so I don't see your point. So ... what does the ... after the 'so' hide here? I don't understand what point you are trying to make here.

The idea is to, when deleting specific items, just do that, and not start iterating over all (*) the other things in the store.

=

This is important for, say, testing substitution code efficiently (or SWH code as mentioned previously, etc).

There, the lack of freeing space is not a concern.=C2=A0 This appe= ars, after reading debbugs, to be already mentioned at https://debbugs.gnu.org/cgi/bugreport.c= gi?bug=3D51427#20.

Maybe something that would be acceptable to all parties: When deleting specific store items, don't remove _all_ the unused links, but only remove the unused links that correspond to deleted files. Which after reading 51427 appears to already have been proposed.

Maybe that proposal is bogus though becaus=
e you=E2=80=99d need to know the hash
of the files being removed, which means reading them=E2=80=A6
I don't see the problem -- when deleting a specific store item, read the files one-by-one, hash them one-by-one, and delete the link if appropriate.

> Things about https://debbugs.gnu.org/cgi/bugreport.cgi?= bug=3D24937 lessening the need

Sure, but as informally mentioned by, say, Liliana, even after that things remain ~ O(n) (or probably O(n lg n) if the file system uses some tree structure) where n=3Dsize of the store, which= in any realistic situation is going to be way slower than O(m), where m =3D the number of individual store items to delete, for reasonable implementations of "delete individual store item". (*)

The point isn't to work-around slow "deleting unused links" implementation, but rather to avoid inherit slowness of deleting everything when deleting a few things suffice.

Summarised, I don't understand the reluctance to merge an implementation of "delete individual store item" -- yes, the delete link phase is slow and could possibly be improved, yes when using certain implementations very little disk is freed, but those aren't the point of the patch AFAICT, they are orthogonal concerns.

Greetings,
Maxime.

(*) Yes, I'm neglecting the difference between number of store items and links and size of store items here, but those don't make a difference to the conclusion here.

--------------0b4sugD09ohCYJ8CicKZrorY-- --------------SfdoER7oWCxvW92wZ0mqTahK Content-Type: application/pgp-keys; name="OpenPGP_0x49E3EE22191725EE.asc" Content-Disposition: attachment; filename="OpenPGP_0x49E3EE22191725EE.asc" Content-Description: OpenPGP public key Content-Transfer-Encoding: quoted-printable -----BEGIN PGP PUBLIC KEY BLOCK----- xjMEX4ch6BYJKwYBBAHaRw8BAQdANPb/d6MrGnGi5HyvODCkBUJPRjiFQcRU5V+m xvMaAa/NL01heGltZSBEZXZvcyA8bWF4aW1lLmRldm9zQHN0dWRlbnQua3VsZXV2 ZW4uYmU+wpAEExYIADgWIQTB8z7iDFKP233XAR9J4+4iGRcl7gUCX4ch6AIbAwUL CQgHAwUVCgkICwUWAgMBAAIeAQIXgAAKCRBJ4+4iGRcl7japAQC3opZ2KGWzWmRc /gIWSu0AAcfMwyinFEEPa/QhUt2CogD/e2RdF4CYAgaRHJJmZ9WU7piKbLZ7llB4 LzgezVDHggzNJU1heGltZSBEZXZvcyA8bWF4aW1lZGV2b3NAdGVsZW5ldC5iZT7C kAQTFggAOBYhBMHzPuIMUo/bfdcBH0nj7iIZFyXuBQJf56ycAhsDBQsJCAcDBRUK CQgLBRYCAwEAAh4BAheAAAoJEEnj7iIZFyXujpQBAKV1SwDDl4f24rXciDlB9L8W ycZt30CgbewMSRQk4mvbAP9dFMbVVixYBd6C8cfhR+NsOBGiOJnQABlUmgNuqGFJ Dc44BF+HIegSCisGAQQBl1UBBQEBB0BOlzIWiJzgobMF6/cqwLaLk7jIcFSZ++c0 k9cCNT6YXwMBCAfCeAQYFggAIBYhBMHzPuIMUo/bfdcBH0nj7iIZFyXuBQJfhyHo AhsMAAoJEEnj7iIZFyXuMr0BAJc8cl5PGvVmVuSQVKjleNl4DK1/XAaPAYPe34AE fZJPAP9IqLCQhH/FeJanHqBP8gNdGNI2qn8RnnLVfRJgUjZ1BA=3D=3D =3DOVqp -----END PGP PUBLIC KEY BLOCK----- --------------SfdoER7oWCxvW92wZ0mqTahK-- --------------OvQG20pyzt0HL7SMs0kZ52xg-- --------------ACUVo004QgkJizK09nIr3V1Y Content-Type: application/pgp-signature; name="OpenPGP_signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="OpenPGP_signature" -----BEGIN PGP SIGNATURE----- wnsEABYIACMWIQTB8z7iDFKP233XAR9J4+4iGRcl7gUCYtqogAUDAAAAAAAKCRBJ4+4iGRcl7jFU AP9e6n9FHLvCAs98yaJhJFIJfPYLLxFDzKjx+1vgecY7fAD9G0EiPA0ZM3YBDznFPQvMeskZxUqB VJHIZLlO0ApenQQ= =fDe6 -----END PGP SIGNATURE----- --------------ACUVo004QgkJizK09nIr3V1Y--