On Tue, 17 Feb 2009 18:33:17 -0800
"C. Titus Brown" <[email protected]> wrote:

> How about just using a simple write lock around any sections that
> modify pygr.Data, or (even simpler) around any XML-RPC-exposed
> functions that modify pygr.Data?
I thought about that, there is however an issue of multiple servers
running independently on top of the same back-end(s) - how would they
exchange locking information? The problem isn't in my opinion purely
theoretical, as there are two examples which immediately come to mind:
 - an SSL and a non-SSL server run in two separate processes on the
same machine;
 - multiple servers using files on a common remote file systems or
connecting to the same SQL database.

Unless I haven't spotted some other option, it seems back-end-level
locking is required to address such issues. Fortunately AFAIK all
back-ends we use provide such capabilities, then again we'd need to
investigate what exactly they offer, whether it is done
automatically or not etc.

> I don't have a sense of how hard it would be to be able to manipulate
> remote data -- do you mean download & then manipulate? -- but I
> suspect it would be useful ;)
The easiest way would likely indeed be download-then-manipulate, so so
I think. Or we could begin by providing simple remote-write support and
only think about extending it to actual manipulation of remote data
later.

Anyway, the way I see it remote-write support would require the
following, or similar, RPC methods:
 - authenticate with remote server (preferably split into several
sub-methods to avoid the risk of having credentials accidentally sent
over the network in plain text);
 - lock back-end (if needed);
 - upload object to server and have it written to the back-end;
 - unlock back-end (if needed);
 - clear authentication cache (servers should periodically do this even
when unprompted but it's nice to allow explicit deauthentication).

Any comments or suggestions, guys?

-- 
MS

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"pygr-dev" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/pygr-dev?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to