Thank you all for your helpful replies so far - greatly appreciated!

To add some clarity: The application is essentially a server side app that will 
manage various background file moving/archiving processes and store metadata 
about the files in a database.  The heavy lifting in terms of file analysis and 
moving the materials around and storing the metadata in the database will 
entirely be done by a Cocoa application running on a server. I want the end 
users to be able to browse/search the metadata from a web based application for 
the sake of cross-platform compatibility, and ultimately their actions within 
the web app will trigger jobs within the server app. I was planning on some 
sort of SOAP interface in the Cocoa app to accept commands from the web 
application to trigger the jobs.

I haven't yet decided on the framework for the web app (often use Rails for 
standalone web apps, may use PHP), but just don't want to box myself into a 
corner by a bad decision early on.  Obviously, the notion of being able to use 
Core Data/SQLite on the server is highly appealing due to the clean integration 
with the Cocoa app.  But would I be foolish to assume that performance (at 
most, 50 web users at a time) would be fine with the web app also querying that 
same database?

Thanks again,
Josh


On 2010-04-28, at 1:39 PM, Bill Bumgarner wrote:

> 
> On Apr 28, 2010, at 10:35 AM, Jens Alfke wrote:
> 
> > SQLite works fine with multiple clients — it uses file locking to support 
> > transactions and ACID properties. I’ve used it that way myself. It just 
> > doesn’t scale as well as a full server-based system, because doing locking 
> > via the filesystem is slower than doing it in memory. But this is unlikely 
> > to affect you unless you’re doing really heavy-duty stuff. On the plus 
> > side, sqlite is already installed in the OS and is a zillion times easier 
> > to maintain than mysql (since the database is just a file, with no special 
> > access/permissions issues.)
> 
> Only if the underlying filesystem absolutely positively gets locking right.   
> Fine for HFS+, not so fine for various network filesystems and/or other 
> operating systems.   Even in the network filesystem case where locking is 
> correct, it may be horrendously inefficient.   Coherency can be an issue, 
> too, depending on filesystem.
> 
> I.e. avoid network filesystems with SQLite & multiple clients.  Down that 
> path lies pain.
> 
> Related, don't use SQLite modifications as an IPC mechanism.  If you need app 
> A to detect changes to the database from app B, use some other notification 
> mechanism beyond watching the database file for changes.
> 
> b.bum
> 
> 

_______________________________________________

Cocoa-dev mailing list ([email protected])

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to [email protected]

Reply via email to