On Jul 14, 2008, at 8:12 AM, Jens Alfke wrote:

Second, CoreData really isn't meant for having two clients (whether users or processes) accessing the database at once. I think it's possible to do this, but it requires extra work to get each client to detect when the other has changed the db, and invalidate its caches.

Core Data does support multiple simultaneous access to a SQLite persistent store. That's why each NSManagedObjectContext has a staleness interval and a merge policy associated with it, and also why it supports refreshing in-memory objects with the option to merge changes into the refreshed objects.

However, managing simultaneous access by *different users* to a SQLite persistent store is slightly trickier -- they must all access the persistent store in ways that have compatible file locking. This is necessary to maintain database integrity. However, if all you have are a couple of users on a LAN working with a database stored on a shared AFP (AppleShare, Personal File Sharing) volume, that should be fine.

The real difficulty is scaling. Any database that works via a shared filesystem will have significant limits to its scalability. You won't want to have more than a few users sharing the same file.

  -- Chris

_______________________________________________

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

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