Andreas Probst wrote:
On 4 Aug 2004 at 9:26, Oliver Zeigermann wrote:
Andreas Probst wrote:
On 3 Aug 2004 at 10:49, Oliver Zeigermann wrote:
What you describe is the locking the RDBMS / file store would do anyway. However, if you acquire all those locks atomically at the very beginning of the request deadlocks are impossible, I guess. Do you do that? May be a good idea...
Yes, I simply don't start a transaction if I can't get all the locks. So no dead lock anymore.
What kind of lock do you use?
I just use URI String objects. For instance if a thread has an exclusive lock on the String "/files", no other thread can get any lock on "/files". I developed some classes organizing these locking stuff. This way also no thread can get any lock on "/files/col". As long as the thread can't get the lock, it can't get into the store -> so no database action. It waits until the lock is released.
The actual challenge is to know, which lock (shared/exclusive) to acquire for which part of the URI.
You described the problem with the history folder. If a new VHR is created, then /history needs to be exclusively locked. If the lastmodified would not be set on /history - and I think it's meaningless there - then /history only needs a shared lock, which means other threads/clients can create VHR's too. Is it OK with Binding and DeltaV not to set the lastmodified?
As Slide explicitely represents child-parent relationship the history folder needs to be updated as soon as it gets a new child.
Oliver
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
