Return-Path: Delivered-To: apmail-jackrabbit-dev-archive@www.apache.org Received: (qmail 81058 invoked from network); 16 May 2007 14:42:42 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 16 May 2007 14:42:42 -0000 Received: (qmail 27873 invoked by uid 500); 16 May 2007 14:42:46 -0000 Delivered-To: apmail-jackrabbit-dev-archive@jackrabbit.apache.org Received: (qmail 27792 invoked by uid 500); 16 May 2007 14:42:46 -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 27610 invoked by uid 99); 16 May 2007 14:42:45 -0000 Received: from herse.apache.org (HELO herse.apache.org) (140.211.11.133) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 16 May 2007 07:42:45 -0700 X-ASF-Spam-Status: No, hits=-100.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO brutus.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Wed, 16 May 2007 07:42:38 -0700 Received: from brutus (localhost [127.0.0.1]) by brutus.apache.org (Postfix) with ESMTP id 30C18714074 for ; Wed, 16 May 2007 07:42:18 -0700 (PDT) Message-ID: <31484264.1179326538194.JavaMail.jira@brutus> Date: Wed, 16 May 2007 07:42:18 -0700 (PDT) From: "Stefan Guggisberg (JIRA)" To: dev@jackrabbit.apache.org Subject: [jira] Commented: (JCR-314) Fine grained locking in SharedItemStateManager MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-Virus-Checked: Checked by ClamAV on apache.org [ https://issues.apache.org/jira/browse/JCR-314?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12496317 ] Stefan Guggisberg commented on JCR-314: --------------------------------------- > - Accept the patch ISMLocking.patch and discuss a locking implementation/strategy that's better suited than the current one. +1 btw, i did a couple of test runs using ConcurrentReadWriteTest against a) current trunk b) a) with ISMLocking.patch applied (using DefaultISMLocking) c) b) with FineGrainedISMLocking.patch applied (using FineGrainedISMLocking) environment: macbook pro (intel, 2ghz), os-x 10.4.9, jre 1.4.2 results: a) ** ~2'300 #writes ~2'300'000 #reads b) ** ~2'300 #writes ~2'300'000 #reads c) ** ~1'700 #writes ~2'300'000 #reads => c) shows a significant decrease in #writes while #reads doesn't seem to be affected. i guess that FineGrainedISMLocking still has room for improvement ;) > Fine grained locking in SharedItemStateManager > ---------------------------------------------- > > Key: JCR-314 > URL: https://issues.apache.org/jira/browse/JCR-314 > Project: Jackrabbit > Issue Type: Improvement > Components: core > Affects Versions: 0.9, 1.0, 1.0.1, 1.1, 1.1.1, 1.2.1, 1.2.2, 1.2.3 > Reporter: Marcel Reutegger > Attachments: FineGrainedISMLocking.patch, ISMLocking.patch > > > The SharedItemStateManager (SISM) currently uses a simple read-write lock to ensure data consistency. Store operations to the PersistenceManager (PM) are effectively serialized. > We should think about more sophisticated locking to allow concurrent writes on the PM. > One possible approach: > If a transaction is currently storing data in a PM a second transaction may check if the set of changes does not intersect with the first transaction. If that is the case it can safely store its data in the PM. > This fine grained locking must also be respected when reading from the SISM. A read request for an item that is currently being stored must be blocked until the store is finished. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.