Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1wa5Qf-001WMQ-30 for pgsql-hackers@arkaria.postgresql.org; Thu, 18 Jun 2026 05:36:42 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1wa5Qe-009cWd-2j for pgsql-hackers@arkaria.postgresql.org; Thu, 18 Jun 2026 05:36:40 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1wa5Qe-009cWV-18 for pgsql-hackers@lists.postgresql.org; Thu, 18 Jun 2026 05:36:40 +0000 Received: from mail-japanwestazon11021095.outbound.protection.outlook.com ([40.107.74.95] helo=OS0P286CU010.outbound.protection.outlook.com) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.98.2) (envelope-from ) id 1wa5Qb-00000000vCg-4A8j for pgsql-hackers@postgresql.org; Thu, 18 Jun 2026 05:36:38 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector10001; d=microsoft.com; cv=none; b=Sga/iUvDn84ytYKLufKF3m++hd8hS4dvR8/KIuDLm5iN/z/enfhARqiA6pJ5/wDH1rd8lNdU1YJxg2oxh35+81hXhCedX6EatFrqV118EQBmPCYhqs3Rx46DV1jl2pQF+U/GB7WsA2ZdX+dmRih5gn0MBz+fpdBXfYSL3I8dYFqjyYNcisQCZUCxLaaCxIFXuq/0NZCRtqhF6NBlaVHofnLp92Ppm7kX8lbN89EjvrkEezVq2Szp7FCS9Sj+pGn2GCJym+eKYidIXTAHRJFTsQY+LiGlkZ/X68RomY9SbCK7xnHHI7as35sUKMhc+Ffg5NEDgKGnYBmmmlQLCCWj/w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector10001; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=DsSHOuC1bJ7AJW+LiB2Y10rfKz4C/ih4aqumWt+4+lk=; b=GxfQoiiwO5f62SEqJfLchEeiZo0hQIRfxxbk0OipsxFcIbZXCx0YDojbeYlVVZ2qOKaFFPFZ8uHeRuLd3cuNyWb8IsgSqDZPXE/eh2Is/5304K1s7K+wuqiwMXW39LPlLvzUdgQS8DIPayLapSic4NrgtmASbAmobr5PvVSYlaQtyICpNZpa9gbjRIV2KwSR9UTAG5ycLSklY0jQn0XxFxcAZMY4q8zzkF6uWaYIEx+rCNaLNLRyOe+c6rJESi1DC+XGVbT4U71J/DpsqcvobCtdKieWnNDSNF9DexXugl7HfRXu2mTgvzg0H7BfJ1JkTw3+Pfo+FIzXcZRotL02Mw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=sraoss.co.jp; dmarc=pass action=none header.from=sraoss.co.jp; dkim=pass header.d=sraoss.co.jp; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sraoss.co.jp; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=DsSHOuC1bJ7AJW+LiB2Y10rfKz4C/ih4aqumWt+4+lk=; b=OtOpDJ5glDEgTfMAzaCW43pMYTwDMrv+KvVpDmr0fE9cfSQJ1ONL0t4z1MdOHiOm6przJCusBbR2dPLH25rwfI7Zz73S5sTk9F4cm+Ya6loZl0ApAki7QdHZndn4kVheDdRo2x+wbcLC8RaDOjeuihpdYPc1l13Ki1mFspfRMy75Pu50lCGFAr85RKMLj/sNj1IUfcH9mQqXZeu2wvMDu2HWM2/Yw+vs8c6/knzB2x8lQgPbNerHx39DeaVsMTsJfs6v2v67cjxWmQ/9p2RxZqNbI9GCebuRXz3Sh/dUcrwVVaT4En+/YLhI1Q7tslf/gvl16eCNW0lyWQKXuoUrng== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=sraoss.co.jp; Received: from OSZP286MB2160.JPNP286.PROD.OUTLOOK.COM (2603:1096:604:189::12) by TYXP286MB5654.JPNP286.PROD.OUTLOOK.COM (2603:1096:405:2a2::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.21.139.13; Thu, 18 Jun 2026 05:36:32 +0000 Received: from OSZP286MB2160.JPNP286.PROD.OUTLOOK.COM ([fe80::406d:15ce:1e21:6f81]) by OSZP286MB2160.JPNP286.PROD.OUTLOOK.COM ([fe80::406d:15ce:1e21:6f81%6]) with mapi id 15.21.0139.011; Thu, 18 Jun 2026 05:36:32 +0000 Date: Thu, 18 Jun 2026 14:36:31 +0900 From: Yugo Nagata To: Chao Li Cc: PostgreSQL-development , Fujii Masao , Rintaro Ikeda Subject: Re: pgbench --continue-on-error: clarify TPS and failure reporting Message-Id: <20260618143631.25c2ed34b1d7527ee2d92a17@sraoss.co.jp> In-Reply-To: <597C9755-4386-488D-A289-16D50AD81FBF@gmail.com> References: <597C9755-4386-488D-A289-16D50AD81FBF@gmail.com> X-Mailer: Sylpheed 3.8.0beta1 (GTK+ 2.24.33; x86_64-pc-linux-gnu) Content-Type: text/plain; charset=ISO-2022-JP Content-Transfer-Encoding: 7bit X-ClientProxiedBy: TYCP301CA0004.JPNP301.PROD.OUTLOOK.COM (2603:1096:400:386::12) To OSZP286MB2160.JPNP286.PROD.OUTLOOK.COM (2603:1096:604:189::12) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: OSZP286MB2160:EE_|TYXP286MB5654:EE_ X-MS-Office365-Filtering-Correlation-Id: 6422d639-1b97-4136-6981-08deccfb8ddf X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0;ARA:13230040|23010399003|10070799003|366016|1800799024|376014|56012099006|22082099003|18002099003; X-Microsoft-Antispam-Message-Info: vMfYlSKR7DN5KGxRXswj0kYFLkwxSLqG1xflbquWOQmMG3Z7l/cBollNlUkUAmbfH4boIIrPdl/LPQHnrkXQdXOLpMhMVUpLPNtIZVYjA7zmMGyHDKedS2LJv04nlmB4pRu7shpzaDbDhn+PpH/ejsj/n/NUf1qgKRoXCQfg+yO2rW1WF8cu2ukPbgei+/yvkpvPLZ6ktqyEqCRrRQ3gBkeiOoKpZx3hmDXyHqEbG1KOKqiqDn5XVb+SHVcwEIpPti8x7riVfYtA4LIy7jYRKXnkP50KdxQU7g5L78AFtqO2dAydR0c9FPDwMDYGJ8X1dmIKpEIwdJgkgWSgmuFJnuIaB6GAbhH42r8RBQKUXLwtRaUtlaxYMJZTvMbBId3xFcmqEdQndjvQnfF1bpzrm3BViAnz9oiQ7DgqwYf0sVyLMtEWKR4HVAhaub72ZMc109WJ8QtUFm7IS6bXKN3igkxDlI3g6dKwN2vS7PTPO+kaO6nihXoAyqRvBZpxWx3xbvjRmIm6SVeLKhvXxfqSrbuL3FEH/wGMNDiQIFOC2daduyFMWGs6wZ+e8c0WY0r9/r30GNKCNLUwB8LzPfAIpdNgvu4k0Jhs1uR8b2OaVtx7RyH+lR3OiApB0QqBGnFQXcA8FJ7VQZuvuQtqbSkgovMkHDyviWRAtG2szxhv0SSigPo2KUOVp58+kN7H49r6 X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:OSZP286MB2160.JPNP286.PROD.OUTLOOK.COM;PTR:;CAT:NONE;SFS:(13230040)(23010399003)(10070799003)(366016)(1800799024)(376014)(56012099006)(22082099003)(18002099003);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 2 X-MS-Exchange-AntiSpam-MessageData-0: =?iso-2022-jp?B?NHV4eGwrRUJ3MWVNNEdoWFhwVEhNUUNJN0trR2tVQjFFYUhHRVNQZ1dU?= =?iso-2022-jp?B?aTRueTJNaG1LYnlNZzlIc2V0ZXFlckZMdG4zQ0lWYVdGVHgrdUFXNDdH?= =?iso-2022-jp?B?UnFaRWJjMGNBNTRpakJpUVdBU1JvOFJJdFZYS1dsOGViNHpJRGxVcFRG?= =?iso-2022-jp?B?bE5xT25Cb2ZaU2xmSmw3ZHo1dXcwQjBGbmRkZDBock5WaUJ4T2FXNnpa?= =?iso-2022-jp?B?YzNlUTVvNjB0OVp2cHI0ZU90NGZkeklnUXpvYmdMblA0M1dHZmRRZ09v?= =?iso-2022-jp?B?eGRuWVdhSFlnR0FXdzkrQkxjSVZqaFhEelJzWWIrYUQ1c2hSR2tINlYy?= =?iso-2022-jp?B?MU1PYjhoNWlubFlhS25xNXRGWFdkRUVMN2N3RTZXSW44bVRmdXc5U2to?= =?iso-2022-jp?B?Q2RGMFF2cW0vNmlVM05pNkZLUjZKbWEreXh1WlNHU25rSXJzSGw1aHB3?= =?iso-2022-jp?B?alVDMTNWMnZCdi83ZWNzMFluSnh0Y2wwclpSbHZRSGM1dHZ3YnZXTFM5?= =?iso-2022-jp?B?a2RxL0dyb1JPZkV1bkhKSDJMTnZQd0JGVnVWNW1qQ25NNjR0M0FROGtS?= =?iso-2022-jp?B?OTVIdXhHWER0dEFTeG9nSGhYRFYxazBEb3dzbDNHcXpDenNBWnpYNXhH?= =?iso-2022-jp?B?V010WC82VmVxZEdwbEdOWThlc280NlEzcDVDYjZTZmY1VVBLamhiRkQw?= =?iso-2022-jp?B?R3A3Vm4zdnplT29Kbis5djg5Q0o1MzRQbmpjRFYzTTYrd2xtcFlCTlRq?= =?iso-2022-jp?B?ckQ0eDhDRXd3RnJFcVU5Q1ExMVBLSnROV3MvQWJaNm1seThKT0VFclAr?= =?iso-2022-jp?B?eURxaFJGVWtWNlJtQlViMkpCb3lZK1dBbHVZdG1nQ0FqVm5mUTFROVlv?= =?iso-2022-jp?B?WFUzdTR4aVFWYWc3RUo2elgxcHZ1TEdzZkZoMzFyU2lpUHVvMHl1eUQ5?= =?iso-2022-jp?B?MlhOSVdKbHZXNEk2NktDWVdQZXNWT2FCZVpicnRGVVRmdnZURnltbU9a?= =?iso-2022-jp?B?aUN5WVQzYndwVURtVDRNVUpwS3N0dXhLME5abkpiRTZKTmZXbTlZOVFj?= =?iso-2022-jp?B?ckt2MS81dHc5eGpMSEh2aG1oRE0wUUlETEN4VG1KbnRtNWRERXZWblpz?= =?iso-2022-jp?B?NzVNbFI1cHVSb0wwTUE4a3VkVlFMRkdrR0NBcC80VmhDUy9HZGVvVVN2?= =?iso-2022-jp?B?c1hvSmZ3N2dQSmcrR2hTZGlBVk9ERTlrbVhjNzk0d0dIcnhjM1lSMWlI?= =?iso-2022-jp?B?Z2JHVkpnTnZBS1E4RkhkbjFBdTVqNXQvcUlEb0RJZkllampaaVpNQ0hx?= =?iso-2022-jp?B?enRDYmtTb21zSTNrcXExUTRrcm5pcGVldXVKeWREb08xcTc5dlNvb04w?= =?iso-2022-jp?B?OUoxTFdQczNCR3JvbTUzNWZ1WmJPNDFXSmlQdkF5NVRwNTVobmk4OUtK?= =?iso-2022-jp?B?Ui9mZ2JDS1RtOW12WVV3aTBGSThGUUduV0J0LzIzWHJoTlFkclFwdnBw?= =?iso-2022-jp?B?bUxVd1piV09RUzM3eHo3c0JsdUZXRjY2ejlWalFXK2NNRE56WGdTRkN6?= =?iso-2022-jp?B?UndHVjhxem1oQ2QyWTVLa1NRaFNhSVUwdXBFZ1FpZUJVZWh2SGFEak5p?= =?iso-2022-jp?B?WElibkFXZnhEdzYzWll2QWkyVVd3UW95bWszRnNVY0tJZm9BOHo2Q0w3?= =?iso-2022-jp?B?VTNCMFA5YmliU25vTnJWaE1RMmRaVFJlalZuTkRjNTROaTYrWUszQmQr?= =?iso-2022-jp?B?b3luMkNmeGtWdDVzcmFWSmJCT2x6UHBja2FEb1owWTNiZlRPS2xmdUxT?= =?iso-2022-jp?B?ZUkxVkhzR21hZlNRc3djcWlzdnB3V293ZmNqY1U3VHJFQUIyZUFyM2p4?= =?iso-2022-jp?B?cjZ4enZ5K29IcVpZYjdKOW5BOWh2YjZnM2RWREVQUEtscVNZR1E5VTQ3?= =?iso-2022-jp?B?VnBDc2NXK2FMbzhBOXZFVUJzbXpOb3hWV3dudFlCeVRtbnJNMSs4eWtZ?= =?iso-2022-jp?B?OUNMVE9kNWJJMGJ6bFg0bGk1bjJLM2tEZVAvQk40SlorNmhkbDBkWE53?= =?iso-2022-jp?B?bmt5UXlibkVDSExsOURhSlMvaE5UeEdIaTJTWklWOFN0cFNTaWlmRURi?= =?iso-2022-jp?B?bnBDSFRlZHR4TlMvaUlSZkhjQkN4emNneUZIakxuYXhpbmFsMm1QQ3E5?= =?iso-2022-jp?B?T25mUVZkVk9zY0d1bjlIaTRGZ2t6THFCL1lGeG50TkJmSWcxRGZmR0Z0?= =?iso-2022-jp?B?N2h0MWJZcElDd2R1UFFXUjhVUUttTWNMbnJ3SmY0b045b0pNUHhxU2s0?= =?iso-2022-jp?B?RkJlMllXcmhocjFzbEx5K3JhbkZjRmp2R0tMa3V0K2dMUWlkYWorVk5x?= =?iso-2022-jp?B?Vmlmekd5TDlQM0RNck82QUtBc2cvQlFHSVhqdVBIMXNoYUphZVNYUEJQ?= =?iso-2022-jp?B?UGl5ZWZYaGkzMmlPZEpVYWtYVWkvTGc3MGpEbnJ0QWVTUWZnZlBzcjFT?= =?iso-2022-jp?B?VUc5U1dwbkhreXBKajVaQmVEbjZZOFZrSTVOb1hkMk9ScHA0Z1JndHJr?= =?iso-2022-jp?B?QVd0ajlnZ2p6TGtYQWNhWkpvR2Uzc1RMQi9yaFFoNkNRQkVx?= X-MS-Exchange-AntiSpam-MessageData-1: bUpfnRpg07pVxQ== X-OriginatorOrg: sraoss.co.jp X-MS-Exchange-CrossTenant-Network-Message-Id: 6422d639-1b97-4136-6981-08deccfb8ddf X-MS-Exchange-CrossTenant-AuthSource: OSZP286MB2160.JPNP286.PROD.OUTLOOK.COM X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Jun 2026 05:36:32.3152 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 75db6c32-352e-4063-ae79-cafb8623f6db X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: cTPXv9XLv14wK0ak0P3JhCh4DU5tFTzx4jjtjaTsxX+q/fxJNrZO65wzWd+7ZkqCfU83wqZgQmaXKxNbO1V7cA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: TYXP286MB5654 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk On Thu, 18 Jun 2026 11:24:04 +0800 Chao Li wrote: > Hi > > While testing “[0ab208fa5] pgbench: Add --continue-on-error option”, I got a question about the doc: > ``` > > This option is useful when your custom script may raise errors > such as unique constraint violations, but you want the benchmark > to continue and measure performance including those failures. > > ``` > > The phrase “measure performance including those failures” gives the impression that failed transactions might be counted in TPS, but they are not. I agree with your point. The original phrasing "including those failures" is indeed ambiguous and could mislead users into thinking failed transactions are included in the TPS calculation. > In my test, all transactions failed, and TPS was reported as 0: > ``` > % pgbench -d evantest -n -t 5 --continue-on-error --failures-detailed -f pgbench-coe.sql > pgbench (19beta1) > transaction type: pgbench-coe.sql > scaling factor: 1 > query mode: simple > number of clients: 1 > number of threads: 1 > maximum number of tries: 1 > number of transactions per client: 5 > number of transactions actually processed: 0/5 > number of failed transactions: 5 (100.000%) > number of serialization failures: 0 (0.000%) > number of deadlock failures: 0 (0.000%) > number of other failures: 5 (100.000%) > latency average = 0.389 ms (including failures) > initial connection time = 4.172 ms > tps = 0.000000 (without initial connection time) > ``` > > If this behavior is intended, I wonder if we should clarify the TPS counting logic more explicitly. For example: > ``` > > This option is useful when your custom script may raise errors > such as unique constraint violations, but you want the benchmark > to continue despite individual statement failures. Failed transactions > are reported separately and included in latency statistics, but are not > counted as transactions actually processed for TPS. > > ``` Your proposed documentation change is much clearer and accurately reflects the actual behavior. I prefer this version as well. Regards, Yugo Nagata -- Yugo Nagata