Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1nmVCI-0006yF-Oe for pgsql-hackers@arkaria.postgresql.org; Thu, 05 May 2022 06:42:46 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1nmVBI-0007Ps-NI for pgsql-hackers@arkaria.postgresql.org; Thu, 05 May 2022 06:41:44 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1nmVBI-0007Pb-BG for pgsql-hackers@lists.postgresql.org; Thu, 05 May 2022 06:41:44 +0000 Received: from mail-pj1-x1034.google.com ([2607:f8b0:4864:20::1034]) by magus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.92) (envelope-from ) id 1nmVBF-0000kF-NM for pgsql-hackers@lists.postgresql.org; Thu, 05 May 2022 06:41:43 +0000 Received: by mail-pj1-x1034.google.com with SMTP id a15-20020a17090ad80f00b001dc2e23ad84so7164043pjv.4 for ; Wed, 04 May 2022 23:41:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=SlZU51HlctIwg5I33r9CIjFgpeLZlXQPwdtDI9AzRvA=; b=T5UEH8faWWYySe9D2JURCn0ae3RTKL948EvGBwHyPyTZ0zkfggrba41MsWP6sLMvS9 gLSgtxu6Pxa7Sn9naMiTtDveSluLy7cwZWv467rV4fuicCa8sUMr4hjW7gGuu4aIVZpY giuebUKBKZHc2mwTDD44OP6MYzE3/tgDg8aNc4619KQedyjkFAPhmTPjh0ZhiGjNYQ7M k11oxe01OjofIQDPf9nLuhKLaqzvwHj93pc1nGFmIfJUaAxikkcZWMgthN31CuOV494Q 96XsoqehtuD1qa/S88xsY3F+woO+uZr7M9I56CEDAzYtCtY+4LWBtjmhIXi7l9cSvQnL 209A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=SlZU51HlctIwg5I33r9CIjFgpeLZlXQPwdtDI9AzRvA=; b=O7yeXCWrOJqNRvWI7R9/G0sYcPcjTLuqOaBZswoigiUxtjdUgz7T/MEXNsQB3HZ1vm 3GvYaWKuYciina0vP032lxxc/UNRIj7a2Z6UdOwfiUA5bBGhjUBrRDqnGNdro/J9+Oy5 08LGfUSFtjLKnr+KwrS9Oz8YqAkcaJNG491jmg4CZO5T8TTRpcd/+hlQtIEBJQQJw7Xz v53P/yodtfdOHYpw8a8CD7hDyj6Zhk+xk9dofk9AL2zoCSggOf+b1OoPX0bazvr7Cyv9 EfR6kALI4wWruEaTj203pQxrPfYbgH5HVNjBBMSq1x0pmiZbvE1LkJg7j6WDY1gZnfbd xUSA== X-Gm-Message-State: AOAM531rRyaUH1541SWfU0WM3ZA1puNL2P29s6KrU4qFsA++V8WYFb8F 6PDRpxkU3cOSMU3jDHSVYxiBMDdE3JNd9CVXglQ= X-Google-Smtp-Source: ABdhPJwyyfusTR8zDSCC60Gaa8jvUw1n8Bz7a5Sw16z6aB+d73KjIKzOjbEXF1eM/as9aQcBNmP+JfFlybyKBUWgjn0= X-Received: by 2002:a17:903:41c9:b0:15e:ae15:294f with SMTP id u9-20020a17090341c900b0015eae15294fmr15711117ple.44.1651732898694; Wed, 04 May 2022 23:41:38 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Bharath Rupireddy Date: Thu, 5 May 2022 12:11:27 +0530 Message-ID: Subject: Re: Progress report removal of temp files and temp relation files using ereport_startup_progress To: Ashutosh Bapat Cc: PostgreSQL Hackers Content-Type: multipart/mixed; boundary="000000000000b0f5da05de3e08ba" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --000000000000b0f5da05de3e08ba Content-Type: text/plain; charset="UTF-8" On Mon, May 2, 2022 at 6:26 PM Ashutosh Bapat wrote: > > Hi Bharath, > > > On Sat, Apr 30, 2022 at 11:08 AM Bharath Rupireddy > wrote: > > > > Hi, > > > > At times, there can be many temp files (under pgsql_tmp) and temp > > relation files (under removal which after crash may take longer during > > which users have no clue about what's going on in the server before it > > comes up online. > > > > Here's a proposal to use ereport_startup_progress to report the > > progress of the file removal. > > > > Thoughts? > > The patch looks good to me. > > With this patch, the user would at least know which directory is being > scanned and how much time has elapsed. There's a problem with the patch, the timeout mechanism isn't being used by the postmaster process. Postmaster doesn't InitializeTimeouts() and doesn't register STARTUP_PROGRESS_TIMEOUT, I tried to make postmaster do that (attached a v2 patch) but make check fails. Now, I'm thinking if it's a good idea to let postmaster use timeouts at all? > It would be better to know how > much work is remaining. I could not find a way to estimate the number > of files in the directory so that we can extrapolate elapsed time and > estimate the remaining time. Well, we could loop the output of > opendir() twice, first to estimate and then for the actual work. This > might actually work, if the time to delete all the files is very high > compared to the time it takes to scan all the files/directories. > > Another possibility is to scan the sorted output of opendir() thus > using the current file name to estimate remaining files in a very > crude and inaccurate way. That doesn't look attractive either. I can't > think of any better way to estimate the remaining time. I think 'how much work/how many files remaining to process' is a generic problem, for instance, snapshot, mapping files, old WAL file processing and so on. I don't think we can do much about it. > But at least with this patch, a user knows which files have been > deleted, guessing how far, in the directory structure, the process has > reached. S/he can then take a look at the remaining contents of the > directory to estimate how much it should wait. Not sure we will be able to use the timeout mechanism within postmaster. Another idea is to have a generic GUC something like log_file_processing_traffic = {none, medium, high} (similar idea is proposed for WAL files processing while replaying/recovering at [1]), default being none, when set to medium a log message gets emitted for every say 128 or 256 (just a random number) files processed. when set to high, log messages get emitted for every file processed (too verbose). I think this generic GUC log_file_processing_traffic can be used in many other file processing areas. Thoughts? [1] https://www.postgresql.org/message-id/CALj2ACVnhbx4pLZepvdqOfeOekvZXJ2F%3DwJeConGzok%2B6kgCVA%40mail.gmail.com Regards, Bharath Rupireddy. --000000000000b0f5da05de3e08ba Content-Type: application/octet-stream; name="v2-0001-pgsql_tmp-ereport_startup_progress.patch" Content-Disposition: attachment; filename="v2-0001-pgsql_tmp-ereport_startup_progress.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_l2smtmzo0 RnJvbSAwNTkwOTljNDY5YzQwZWU5ZDkxYTNiMzdiODk2MGIzNjU1N2U2MDMwIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBCaGFyYXRoIFJ1cGlyZWRkeSA8YmhhcmF0aC5ydXBpcmVkZHlm b3Jwb3N0Z3Jlc0BnbWFpbC5jb20+CkRhdGU6IFdlZCwgNCBNYXkgMjAyMiAxNDoxNzoyNCArMDAw MApTdWJqZWN0OiBbUEFUQ0ggdjJdIHBnc3FsX3RtcCBlcmVwb3J0X3N0YXJ0dXBfcHJvZ3Jlc3MK Ci0tLQogc3JjL2JhY2tlbmQvcG9zdG1hc3Rlci9wb3N0bWFzdGVyLmMgfCAxMSArKysrKysrKysr Kwogc3JjL2JhY2tlbmQvc3RvcmFnZS9maWxlL2ZkLmMgICAgICAgfCAxNSArKysrKysrKysrKysr KysKIDIgZmlsZXMgY2hhbmdlZCwgMjYgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdpdCBhL3NyYy9i YWNrZW5kL3Bvc3RtYXN0ZXIvcG9zdG1hc3Rlci5jIGIvc3JjL2JhY2tlbmQvcG9zdG1hc3Rlci9w b3N0bWFzdGVyLmMKaW5kZXggOTY0YTU2ZGVjNC4uMjYxYTVhNTkxMSAxMDA2NDQKLS0tIGEvc3Jj L2JhY2tlbmQvcG9zdG1hc3Rlci9wb3N0bWFzdGVyLmMKKysrIGIvc3JjL2JhY2tlbmQvcG9zdG1h c3Rlci9wb3N0bWFzdGVyLmMKQEAgLTExNiw2ICsxMTYsNyBAQAogI2luY2x1ZGUgInBvc3RtYXN0 ZXIvaW50ZXJydXB0LmgiCiAjaW5jbHVkZSAicG9zdG1hc3Rlci9wZ2FyY2guaCIKICNpbmNsdWRl ICJwb3N0bWFzdGVyL3Bvc3RtYXN0ZXIuaCIKKyNpbmNsdWRlICJwb3N0bWFzdGVyL3N0YXJ0dXAu aCIKICNpbmNsdWRlICJwb3N0bWFzdGVyL3N5c2xvZ2dlci5oIgogI2luY2x1ZGUgInJlcGxpY2F0 aW9uL2xvZ2ljYWxsYXVuY2hlci5oIgogI2luY2x1ZGUgInJlcGxpY2F0aW9uL3dhbHNlbmRlci5o IgpAQCAtNjg5LDYgKzY5MCwxMSBAQCBQb3N0bWFzdGVyTWFpbihpbnQgYXJnYywgY2hhciAqYXJn dltdKQogCXBxc2lnbmFsX3BtKFNJR1hGU1osIFNJR19JR04pOwkvKiBpZ25vcmVkICovCiAjZW5k aWYKIAorCUluaXRpYWxpemVUaW1lb3V0cygpOwkJLyogZXN0YWJsaXNoZXMgU0lHQUxSTSBoYW5k bGVyICovCisKKwlSZWdpc3RlclRpbWVvdXQoU1RBUlRVUF9QUk9HUkVTU19USU1FT1VULAorCQkJ CQlzdGFydHVwX3Byb2dyZXNzX3RpbWVvdXRfaGFuZGxlcik7CisKIAkvKgogCSAqIE9wdGlvbnMg c2V0dXAKIAkgKi8KQEAgLTExMDQsNiArMTExMCw5IEBAIFBvc3RtYXN0ZXJNYWluKGludCBhcmdj LCBjaGFyICphcmd2W10pCiAJLyogV3JpdGUgb3V0IG5vbmRlZmF1bHQgR1VDIHNldHRpbmdzIGZv ciBjaGlsZCBwcm9jZXNzZXMgdG8gdXNlICovCiAJd3JpdGVfbm9uZGVmYXVsdF92YXJpYWJsZXMo UEdDX1BPU1RNQVNURVIpOwogCisJLyogUHJlcGFyZSB0byByZXBvcnQgcHJvZ3Jlc3Mgb2YgdGhl IHRlbXBvcmFyeSBmaWxlcyByZW1vdmFsIHBoYXNlICovCisJYmVnaW5fc3RhcnR1cF9wcm9ncmVz c19waGFzZSgpOworCiAJLyoKIAkgKiBDbGVhbiBvdXQgdGhlIHRlbXAgZGlyZWN0b3J5IHVzZWQg dG8gdHJhbnNtaXQgcGFyYW1ldGVycyB0byBjaGlsZAogCSAqIHByb2Nlc3NlcyAoc2VlIGludGVy bmFsX2ZvcmtleGVjLCBiZWxvdykuICBXZSBtdXN0IGRvIHRoaXMgYmVmb3JlCkBAIC0xMTEzLDYg KzExMjIsOCBAQCBQb3N0bWFzdGVyTWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdKQogCSAqIGNv bmZsaWN0aW5nIFBvc3RncmVzIHByb2Nlc3NlcyBpbiB0aGlzIGRhdGEgZGlyZWN0b3J5LgogCSAq LwogCVJlbW92ZVBnVGVtcEZpbGVzSW5EaXIoUEdfVEVNUF9GSUxFU19ESVIsIHRydWUsIGZhbHNl KTsKKworCWRpc2FibGVfdGltZW91dChTVEFSVFVQX1BST0dSRVNTX1RJTUVPVVQsIGZhbHNlKTsK ICNlbmRpZgogCiAJLyoKZGlmZiAtLWdpdCBhL3NyYy9iYWNrZW5kL3N0b3JhZ2UvZmlsZS9mZC5j IGIvc3JjL2JhY2tlbmQvc3RvcmFnZS9maWxlL2ZkLmMKaW5kZXggMjQ3MDRiNmEwMi4uYzc5MzMw M2JkOCAxMDA2NDQKLS0tIGEvc3JjL2JhY2tlbmQvc3RvcmFnZS9maWxlL2ZkLmMKKysrIGIvc3Jj L2JhY2tlbmQvc3RvcmFnZS9maWxlL2ZkLmMKQEAgLTEwMiw2ICsxMDIsNyBAQAogI2luY2x1ZGUg InN0b3JhZ2UvaXBjLmgiCiAjaW5jbHVkZSAidXRpbHMvZ3VjLmgiCiAjaW5jbHVkZSAidXRpbHMv cmVzb3duZXJfcHJpdmF0ZS5oIgorI2luY2x1ZGUgInV0aWxzL3RpbWVvdXQuaCIKIAogLyogRGVm aW5lIFBHX0ZMVVNIX0RBVEFfV09SS1MgaWYgd2UgaGF2ZSBhbiBpbXBsZW1lbnRhdGlvbiBmb3Ig cGdfZmx1c2hfZGF0YSAqLwogI2lmIGRlZmluZWQoSEFWRV9TWU5DX0ZJTEVfUkFOR0UpCkBAIC0z MTU2LDYgKzMxNTcsMTIgQEAgUmVtb3ZlUGdUZW1wRmlsZXModm9pZCkKIAlESVIJCSAgICpzcGNf ZGlyOwogCXN0cnVjdCBkaXJlbnQgKnNwY19kZTsKIAorCS8qCisJICogUHJlcGFyZSB0byByZXBv cnQgcHJvZ3Jlc3Mgb2YgdGhlIHRlbXBvcmFyeSBhbmQgdGVtcG9yYXJ5IHJlbGF0aW9uIGZpbGVz CisJICogcmVtb3ZhbCBwaGFzZS4KKwkgKi8KKwliZWdpbl9zdGFydHVwX3Byb2dyZXNzX3BoYXNl KCk7CisKIAkvKgogCSAqIEZpcnN0IHByb2Nlc3MgdGVtcCBmaWxlcyBpbiBwZ19kZWZhdWx0ICgk UEdEQVRBL2Jhc2UpCiAJICovCkBAIC0zMTg1LDYgKzMxOTIsOCBAQCBSZW1vdmVQZ1RlbXBGaWxl cyh2b2lkKQogCiAJRnJlZURpcihzcGNfZGlyKTsKIAorCWRpc2FibGVfdGltZW91dChTVEFSVFVQ X1BST0dSRVNTX1RJTUVPVVQsIGZhbHNlKTsKKwogCS8qCiAJICogSW4gRVhFQ19CQUNLRU5EIGNh c2UgdGhlcmUgaXMgYSBwZ3NxbF90bXAgZGlyZWN0b3J5IGF0IHRoZSB0b3AgbGV2ZWwgb2YKIAkg KiBEYXRhRGlyIGFzIHdlbGwuICBIb3dldmVyLCB0aGF0IGlzICpub3QqIGNsZWFuZWQgaGVyZSBi ZWNhdXNlIGRvaW5nIHNvCkBAIC0zMjI5LDYgKzMyMzgsOSBAQCBSZW1vdmVQZ1RlbXBGaWxlc0lu RGlyKGNvbnN0IGNoYXIgKnRtcGRpcm5hbWUsIGJvb2wgbWlzc2luZ19vaywgYm9vbCB1bmxpbmtf YWxsKQogCQlzbnByaW50ZihybV9wYXRoLCBzaXplb2Yocm1fcGF0aCksICIlcy8lcyIsCiAJCQkJ IHRtcGRpcm5hbWUsIHRlbXBfZGUtPmRfbmFtZSk7CiAKKwkJZXJlcG9ydF9zdGFydHVwX3Byb2dy ZXNzKCJyZW1vdmluZyB0ZW1wb3JhcnkgZmlsZXMgdW5kZXIgcGdzcWxfdG1wIGRpcmVjdG9yeSwg ZWxhcHNlZCB0aW1lOiAlbGQuJTAyZCBzLCBjdXJyZW50IGZpbGU6ICVzIiwKKwkJCQkJCQkJIHJt X3BhdGgpOworCiAJCWlmICh1bmxpbmtfYWxsIHx8CiAJCQlzdHJuY21wKHRlbXBfZGUtPmRfbmFt ZSwKIAkJCQkJUEdfVEVNUF9GSUxFX1BSRUZJWCwKQEAgLTMzMTksNiArMzMzMSw5IEBAIFJlbW92 ZVBnVGVtcFJlbGF0aW9uRmlsZXNJbkRic3BhY2UoY29uc3QgY2hhciAqZGJzcGFjZWRpcm5hbWUp CiAJCXNucHJpbnRmKHJtX3BhdGgsIHNpemVvZihybV9wYXRoKSwgIiVzLyVzIiwKIAkJCQkgZGJz cGFjZWRpcm5hbWUsIGRlLT5kX25hbWUpOwogCisJCWVyZXBvcnRfc3RhcnR1cF9wcm9ncmVzcygi cmVtb3ZpbmcgdGVtcG9yYXJ5IHJlbGF0aW9uIGZpbGVzIHVuZGVyIHBnX3RibHNwYyBkaXJlY3Rv cnksIGVsYXBzZWQgdGltZTogJWxkLiUwMmQgcywgY3VycmVudCBmaWxlOiAlcyIsCisJCQkJCQkJ CSBybV9wYXRoKTsKKwogCQlpZiAodW5saW5rKHJtX3BhdGgpIDwgMCkKIAkJCWVyZXBvcnQoTE9H LAogCQkJCQkoZXJyY29kZV9mb3JfZmlsZV9hY2Nlc3MoKSwKLS0gCjIuMjUuMQoK --000000000000b0f5da05de3e08ba--