Return-Path: X-Original-To: python-list@python.org Delivered-To: python-list@mail.python.org X-Spam-Status: OK 0.001 X-Spam-Evidence: '*H*': 1.00; '*S*': 0.00; 'essentially': 0.04; 'exit': 0.07; 'problem:': 0.07; 'blocked': 0.09; 'once;': 0.09; 'postgres': 0.09; 'received:80.91': 0.09; 'received:80.91.229': 0.09; 'received:gmane.org': 0.09; 'received:list': 0.09; 'record.': 0.09; 'sqlite': 0.09; 'commit': 0.15; '"file': 0.16; 'competitor': 0.16; 'competitors': 0.16; 'crud': 0.16; 'readers,': 0.16; 'received:80.91.229.3': 0.16; 'received:plane.gmane.org': 0.16; 'sqlite3': 0.16; 'whatever,': 0.16; 'writer': 0.16; 'instance': 0.17; 'handles': 0.18; 'app': 0.19; 'feb': 0.19; 'load': 0.19; 'written': 0.20; 'trying': 0.21; 'fairly': 0.21; 'allows': 0.25; 'handling': 0.27; 'header:X-Complaints-To:1': 0.28; 'concern': 0.29; 'handful': 0.29; 'locking': 0.29; 'read,': 0.29; 'fri,': 0.30; 'point': 0.31; '(and': 0.32; 'system,': 0.32; 'could': 0.32; 'url:home': 0.33; 'handle': 0.33; 'to:addr:python- list': 0.33; 'likely': 0.33; 'entry': 0.33; 'open': 0.35; 'doing': 0.35; 'subject:?': 0.35; 'there': 0.35; 'received:org': 0.36; 'but': 0.36; 'anything': 0.36; 'charset:us-ascii': 0.36; 'enough': 0.36; 'why': 0.37; 'data': 0.37; 'subject:: ': 0.38; 'things': 0.38; 'instead': 0.39; 'to:addr:python.org': 0.39; 'application': 0.40; 'header:Received:5': 0.40; 'most': 0.61; "you've": 0.61; 'first': 0.61; 'situation': 0.62; 'different': 0.63; 'management': 0.65; 'readers': 0.65; '2013': 0.84; 'fly,': 0.84; 'locally': 0.84; 'monte': 0.84; 'subject:over': 0.84; 'dennis': 0.91 X-Injected-Via-Gmane: http://gmane.org/ To: python-list@python.org From: Dennis Lee Bieber Subject: Re: PyQT app accessible over network? Date: Fri, 22 Feb 2013 19:20:42 -0500 Organization: > Bestiaria Support Staff < References: <20130222164513.9377097f0cf2add2a6d16204@gmx.net> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Gmane-NNTP-Posting-Host: adsl-76-253-107-131.dsl.klmzmi.sbcglobal.net X-Newsreader: Forte Agent 3.3/32.846 X-No-Archive: YES X-BeenThere: python-list@python.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: General discussion list for the Python programming language List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Newsgroups: comp.lang.python Message-ID: Lines: 35 NNTP-Posting-Host: 2001:888:2000:d::a6 X-Trace: 1361578848 news.xs4all.nl 6910 [2001:888:2000:d::a6]:37103 X-Complaints-To: abuse@xs4all.nl Path: csiph.com!usenet.pasdenom.info!news.stben.net!border3.nntp.ams.giganews.com!border1.nntp.ams.giganews.com!nntp.giganews.com!feeder2.cambriumusenet.nl!feed.tweaknews.nl!194.109.133.81.MISMATCH!newsfeed.xs4all.nl!newsfeed2.news.xs4all.nl!xs4all!post.news.xs4all.nl!not-for-mail Xref: csiph.com comp.lang.python:39633 On Fri, 22 Feb 2013 08:50:05 -0800, Monte Milanuk declaimed the following in gmane.comp.python.general: > My concern is that using postgres or mysql for this would be akin to > using a sledgehammer to swat a fly, when sqlite could most likely handle > the load well enough (I think) since the handful of people doing data > entry would rarely (if ever) be trying to write to the same record. > That would be the whole point of having multiple people doing data entry > in this situation - each one handling a different competitors entry form > or submitted scores. > Problem: SQLite3 (and M$ JET/Access) are considered "file server" databases. Each instance of the program accessing the database is directly opening the database file(s). While SQLite3 has a fairly complex locking system, the normal locking is NOT "per record". Instead it allows for multiple readers to be active at once; the first connection/cursor to attempt to write anything will block any new attempts to read, and will be blocked until all other active readers exit (and none of those other readers can attempt to write). When there are no other open readers, the writer can finish and commit changes. > That is why I was looking at things in terms of having one central app > that handles the database, whether locally via sqlite or postgres or > whatever, but have the clients access go through that main application > in order to ensure that all they have is a limited set of CRUD abilities > for competitor registration and entering scores. > At which point you've essentially written the conflict management that a client/server system already provides. -- Wulfraed Dennis Lee Bieber AF6VN wlfraed@ix.netcom.com HTTP://wlfraed.home.netcom.com/