Return-Path: Received: from mta4.srv.hcvlny.cv.net (mta4.srv.hcvlny.cv.net [167.206.4.199]) by krbdev.mit.edu (Postfix) with ESMTP id 6909B3E6AB for ; Wed, 28 Aug 2013 18:48:45 -0400 (EDT) Received: from tardis.internal.bright-prospects.com (ool-4a5a27d7.dyn.optonline.net [74.90.39.215]) by mta4.srv.hcvlny.cv.net (Sun Java System Messaging Server 6.2-8.04 (built Feb 28 2007)) with ESMTP id <0MS9009X3JD8R1J0@mta4.srv.hcvlny.cv.net> for rt-comment@krbdev.mit.edu; Wed, 28 Aug 2013 18:48:45 -0400 (EDT) Received: from localhost (localhost [127.0.0.1]) by tardis.internal.bright-prospects.com (Postfix) with ESMTP id 1D7C58B53C; Wed, 28 Aug 2013 18:48:44 -0400 (EDT) Received: from tardis.internal.bright-prospects.com ([127.0.0.1]) by localhost (tardis.internal.bright-prospects.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id aUD8iWbbsZDX; Wed, 28 Aug 2013 18:48:43 -0400 (EDT) Received: from BASCHT520 (basch-t520.internal.bright-prospects.com [192.168.15.61]) by tardis.internal.bright-prospects.com (Postfix) with ESMTPS id 5D7678B503; Wed, 28 Aug 2013 18:48:43 -0400 (EDT) Date: Wed, 28 Aug 2013 18:48:43 -0400 From: Richard Basch Subject: RE: [krbdev.mit.edu #7695] krb5-1.11.3/1.10.6 - full resync may fail and still result in ulog being updated In-Reply-To: To: 'Richard Basch' , rt-comment@krbdev.mit.edu Message-ID: <07a801cea440$bf5da290$3e18e7b0$@mit.edu> MIME-Version: 1.0 X-Mailer: Microsoft Office Outlook 12.0 Content-Type: text/plain; charset=us-ascii Content-Language: en-us Content-Transfer-Encoding: 7BIT Thread-Index: Ac6kOyDDDvoyFAFXRWWfXC0DxqpI8gAA+IyAAABtlTA= X-Virus-Scanned: amavisd-new at mail.bright-prospects.com References: RT-Send-Cc: X-RT-Original-Encoding: us-ascii Content-Length: 1711 My concern was within restore_dump()... it calls krb5_db_put_principal() which in turn calls ulog_lock for each record (this was a major performance hit especially with a database with about a half-million principals). Under Kerberos 1.10, I found it only took 2-3 minutes to load the database (and another 2-3 to send it over the wire), but I was seeing inordinately long load times which I could trace back to the ulog_lock/unlock for every record. I will have to review the master branch carefully, but if that code also exists in the master branch, see how long it takes to do a dump/restore for a database with about 500,000 principals (and compare it with the time it took under Kerberos 1.10.x). And I agree with you that I might have introduced the performance issue with my first patch (when I moved the iproprole setting, which is why I set it to IPROP_NULL as it was in the original state before I patched it). I am confused how you say the third patch is broken, as by this point, the ulog is mapped and I am setting the ulog at the end of the restore. During the restore, you do not want to be touching the ulog at all (e.g. IPROP_NULL) because the database being restored is "on the side". Once it is promoted, one might argue the first thing should be to set it to IPROP_SLAVE, then set the information, but that is not what was in the code originally either. The goal should be not to allow any ulog processing or locking during the restore (which is to a temp db anyway), and then set the ulog state after the restore. I will play around with the master branch (what I supplied was based on the 1.11 branch and empirical testing, but the two branches have deviated enough at this point).