From mboxrd@z Thu Jan 1 00:00:00 1970 From: Florian Weimer Subject: Re: Proposal for a new lock type Date: Sun, 15 Aug 2010 19:11:01 +0200 Message-ID: <87mxsner8a.fsf@mid.deneb.enyo.de> References: <871v9zkj8t.fsf@mid.deneb.enyo.de> <20100815165858.GF12892@parisc-linux.org> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Cc: linux-fsdevel@vger.kernel.org To: Matthew Wilcox Return-path: Received: from ka.mail.enyo.de ([87.106.162.201]:50949 "EHLO ka.mail.enyo.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932161Ab0HORLE (ORCPT ); Sun, 15 Aug 2010 13:11:04 -0400 In-Reply-To: <20100815165858.GF12892@parisc-linux.org> (Matthew Wilcox's message of "Sun, 15 Aug 2010 10:58:58 -0600") Sender: linux-fsdevel-owner@vger.kernel.org List-ID: * Matthew Wilcox: > On Sun, Aug 15, 2010 at 05:06:58PM +0200, Florian Weimer wrote: >> It seems that it might be useful to have a locally shared, globally >> exclusive file lock. "Local" is defined as "when the file is mapped >> shared, memory accesses follow the architecture memory model across >> threads and processes, and shared POSIX mutexes work". This could be >> used to make the new WAL code in SQLite 3.7 more foolproof, but there >> are other applications which would benefit as well. > > This sounds like you're trying to fix a problem with NFS. I think there > are network filesystems which practice mmap coherency. In the sense that I described? This surprises me. (I know that there is something called Distributed Shared Memory. But it's generally got different properties than a mapped file, AFAIK.) >> It seems to me that this would not need changes to network file >> systems because you can implement it by acquring a traditional >> fcntl()-style exclusive lock on the network side, without creating a >> corresponding local lock. > > fcntl locks are advisory ... That's not a problem for this use case. It's about making sure that an SQLite-using application cannot accidentally access the same database without proper locking because the mutexes are not visible across a network file system.