Stack check-out/check-in
Richard Gaskin
ambassador at fourthworld.com
Thu Jan 28 11:59:00 EST 2021
Marty Knapp wrote:
> I have an app that allows user to create specialized editable
> documents (stacks) that open in my app. Some customers use Dropbox,
> iCloud, OneDrive or similar to store these documents so that they
> can be accessed from 2 different computers. Is there a way to tell
> if a stack is already open on one computer? I need to prevent them
> from opening a 2nd instance of the stack on the other computer so
> that Dropbox (or other cloud sync service) does not create a
> conflicted copy.
Nextcloud is the only file syncing system I know of that provides an API
for file locking, but given the nature of syncing systems it comes with
a good many caveats, noted here:
https://docs.nextcloud.com/server/20/admin_manual/configuration_files/files_locking_transactional.html
I have a similar need to support distributed workflows through syncing
systems, and after reviewing those notes and other discussions it's
became clear to me that with sufficient editing frequency conflict files
are unavoidable, so now I'm focusing on smarter conflict-file resolution.
> If there is not a way to tell, has anyone created some sort of stack
> check-out/check-in system that they'd be willing to share?
File syncing involves latency, and in those delays between saves and
updates across all distributed clients there will inevitably be conflicts.
Even if you use a lock file as a semaphore for other clients to know
that a file is being edited, that semaphore itself needs to be
distributed through the same inherently-latent system, and therefore is
prone to arriving too late to be of any value.
When data integrity is critical and conflict-file resolution is not a
clean option, I can think of no other solution than to maintain storage
of the files on a server, where check-in/check-out can be handled
explicitly and immediately.
--
Richard Gaskin
Fourth World Systems
Software Design and Development for the Desktop, Mobile, and the Web
____________________________________________________________________
Ambassador at FourthWorld.com http://www.FourthWorld.com
More information about the use-livecode
mailing list