Return-Path: Delivered-To: apmail-jackrabbit-dev-archive@www.apache.org Received: (qmail 37291 invoked from network); 5 Oct 2010 09:57:02 -0000 Received: from unknown (HELO mail.apache.org) (140.211.11.3) by 140.211.11.9 with SMTP; 5 Oct 2010 09:57:02 -0000 Received: (qmail 50527 invoked by uid 500); 5 Oct 2010 09:57:02 -0000 Delivered-To: apmail-jackrabbit-dev-archive@jackrabbit.apache.org Received: (qmail 50130 invoked by uid 500); 5 Oct 2010 09:56:58 -0000 Mailing-List: contact dev-help@jackrabbit.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@jackrabbit.apache.org Delivered-To: mailing list dev@jackrabbit.apache.org Received: (qmail 50122 invoked by uid 99); 5 Oct 2010 09:56:57 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 05 Oct 2010 09:56:57 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.22] (HELO thor.apache.org) (140.211.11.22) by apache.org (qpsmtpd/0.29) with ESMTP; Tue, 05 Oct 2010 09:56:55 +0000 Received: from thor (localhost [127.0.0.1]) by thor.apache.org (8.13.8+Sun/8.13.8) with ESMTP id o959uX7J013496 for ; Tue, 5 Oct 2010 09:56:33 GMT Message-ID: <4906681.544791286272593394.JavaMail.jira@thor> Date: Tue, 5 Oct 2010 05:56:33 -0400 (EDT) From: "Jukka Zitting (JIRA)" To: dev@jackrabbit.apache.org Subject: [jira] Updated: (JCR-2699) Improve read/write concurrency In-Reply-To: <575335.157691280930355704.JavaMail.jira@thor> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-JIRA-FingerPrint: 30527f35849b9dde25b450d4833f0394 X-Virus-Checked: Checked by ClamAV on apache.org [ https://issues.apache.org/jira/browse/JCR-2699?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ] Jukka Zitting updated JCR-2699: ------------------------------- Attachment: ConcurrentReadWriteTest.png ConcurrentReadTest.png I've now implemented all of the above improvements (except ACL evaluation changes, which are better handled in JCR-2573) and some other changes like allowing concurrent reads on pooled bundle db persistence managers. Apart from the ACL handling, I think I've now cleared all the major concurrency bottlenecks above the persistence manager layer. Most notably a cache miss is no longer enough to block all concurrent readers. The attached plots show the current performance in comparison to previous 2.x releases. The test case randomly accesses 1000 nodes out of a hierarchy of 10,000 nodes (100x100) while 20 other readers are also concurrently accessing the nodes. In the read/write case a single random writer thread is also included. The lower bound (10th percentile) of all tests is at about 25ms, which corresponds to the case where all accessed content is immediately available in the item state or bundle cache. The median and the higher bound (90th percentile) show the effect of one or more cache misses. The performance improvements are about 20-25% compared to Jackrabbit 2.1. Note that these tests were run with the default Jackrabbit configuration, i.e. without access controls. > Improve read/write concurrency > ------------------------------ > > Key: JCR-2699 > URL: https://issues.apache.org/jira/browse/JCR-2699 > Project: Jackrabbit Content Repository > Issue Type: Improvement > Components: jackrabbit-core > Reporter: Jukka Zitting > Assignee: Jukka Zitting > Attachments: AccessControlProviderHolder.java, ConcurrentReadTest.png, ConcurrentReadTest.png, ConcurrentReadWriteTest.png, DynamicSecurityManager-JCR2699.patch > > > I'd like to set up a few performance tests to help identify our worst bottlenecks for various kinds of concurrent read-only and read-write access patterns. > Once identified, I'm hoping to fix at least some of those bottlenecks. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.