Re: Cocoa Newbie & MySQL
Re: Cocoa Newbie & MySQL
- Subject: Re: Cocoa Newbie & MySQL
- From: Joshua Tidsbury <email@hidden>
- Date: Wed, 28 Apr 2010 13:57:09 -0400
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@hidden)
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:
This email sent to email@hidden