I can't answer most of these, but I'll take a crack at a)

>From my understanding of the clojure code, the answer to long running
transactions will depend on your application. If you have one writer,
and 100 readers, you'll be fine. The readers will read the old value
while the writer is updating the ref to the new value. You will run
into problems if you have 100 writers and 1 reader, however. Your
program won't hang or deadlock, but you may have the case where the
same 1 minute chunk of code is recalculated several times. Having a
transaction re-run may not be a big issue if the transaction's values
take 1ms to calculate, but 1 minute would probably be a bit more of an
issue.

Timothy


> a) can STM transactions contain calculations that take a 'long' time,
> let's say computing the cryptographic hash of a plaintext. I'd
> 'ensure' the input parameters such as plain text, hash algo and bit-
> length, compute the hash (can be slow) and store the hash in a ref.
> What I'd need here is that the calculation is interrupted if the
> transaction is aborted for a retry. No need to complete the long
> calculation if we aren't going to store the result anyway. The
> existing convention in Java is to set the interrupt flag on a thread
> which is queried ever now and then by long-running calculations. This
> is a convention that many Java libraries adhere to. So how to do this
> interrupting?
>

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en

Reply via email to